ADL File Creation Software

  • Thread starter Thread starter Jerry M
  • Start date Start date
J

Jerry M

New member
Hi everyone.

I've been lurking on the board for a few weeks now, enjoying reading the comments. I got my MR-8 just before Christmas and I've been enjoying it a bunch. I especially got interested in its inner workings after reading mrx's post regarding the ADL file. For me, It is tedious to create a new song when I have to name it using the MR-8 keys and I thought it might be faster to just replicate the file and directory structure on the card through the computer, either using a CF adapter or the MR-8 connected directly through USB.
With that in mind, I wrote a little proggie called MR8_ADL. It builds an ADL file to your specifications and creates the proper song directories. Although it is pretty basic, it seems to work well for me. Would anyone be interested in trying it out? (better use it with caution--I'd hate for it to blow up your masterpiece!) I didn't include several MR-8 functions and no MIDI parameters at all. They would be very easy to add if anyone is interested (at least I THINK they would!). In fact, I fantasize expanding the application to take the place of the Fostex WAV Manager, but I want to know if what I have is of any use first. It's freeware. The Zip file is 232647 so it won't fit as an attachment but you can email me if you'd like a copy.

Jerry
jkmclain@srcaccess.net
 
Jerry -

Did you do anything with pre-existing tracks? I've been looking at the numbers after the duration figures and wonder if they are responsible for the '0D' error.
 
At this point, no. I haven't touched the track information at the end of the file. I left everything as 00:00:0000 etc. as initialized. The next thing I'd like to do is work on that. It's one step closer to a WAV Manager clone.

Jerry
 
What did you write it in? I think that guy Phineas is a programmer, too. Would be nice if we could avoid duplicating our efforts.
 
I noticed Phineas' post, and waited a couple of days, but he hadn't done anything so I took a shot at it. He sounded like he knew a lot more about programming than I do.

I use Delphi 5 and I can do Visual Basic a little, too, but I'm no expert.
 
I went down this road with the Korg, but unfortunately after spending hours hacking their version of the .ADL (a proprietary binary file with their own goofy checksum scheme - quite nasty) it turned out the unit still couldn't accept externally generated track data (.MP2 files with some filtering that Korg refused to detail.)

I've never used Delphi, but can do VB (or maybe some C DLL's if you can call those from Delphi), and would be able to help out with some of the system-level stuff (getting details from the WAV files themselves, parsing everything in the .ADL, etc.)

It would probably help to get some ideas from other users to see what people would like in an MR-8 utility, to avoid getting painted into a corner. In my case, I was looking to build something that would create a new song from WAVs created on the PC, and a tool to manage the life-cycle of track data - for example, if I create a dozen tracks for one song (by recording, backing up to the PC, recording more, etc.), it would be nice to not have to manually create folders, copy, rename, etc.
 
Let me think about that for awhile. Since no one has expressed interest in what I have so far, I guess what I have now is only useful to me.

I'll work on some of the directory management and file renaming stuff to make something that will make a management tool to go along with the Fostex WAV Manager. Then, we can try to figure out how the ADL file is affected by the inclusion of new WAV data--and what your 0D error is all about. It shouldn't be as difficult to tweak the ADL file as the Korg deal, since the Fostex version file is all text and tabs.

Meantime, if anyone has suggestions about what kinds of features they would like to see, we can add those to the list.

Jerry
 
Sounds good. I was studying the .ADL spec and the stuff after the track length (|1728, for example) is the sample rate ('|' = 44.1KHZ) and what appear to be the number of samples 'left over' after rounding to the minute/second/frame, etc.

The multiple values on each line are for tracks that start mid-way into the song.

Once the basic file/song management is covered, I wonder if the DirectX API would make it relatively easy to add some basic mastering functionality. I had checked it out for MIDI, but it looked like there was a lot of stuff for handling multiple wavs. It's like someone suggested on the Fostex site in December - basically an MR-8 "emulator" that would bring the same ease of use to a PC, with more extensive editing capabilities.
 
You guys just keep right on gettin up! I think it's great that guys like you are on this board. All this stuff you're talking about is over my head, but I know I'd like to be one of the first recipients of whatever you do finally end up with. Maybe one of the features you can try to put in there is something that will send a message to the mr-8 for more precise punch-in/out locations. Maybe some kind of marker that you can stick in there for synch purposes when doing a cut/paste.


bd

btw..the midiman oxygen-8 has usb connection, I think it would be great if a person could end up with a complete system loop using mr-8/ drum machine/ controller/ computer/ mr-8. Maybe I did too many drugs in the 60's.....
 
DirectX9

I have developed a simple application for backing up my song data.

The program puts all songs in one directory on the computer. When backing up the user can either create a new song or select an existing one. The user then specifies the "version" title for the current backup. For example: the song is entitled "FOO" and the present song folder is C:\Songs\. If I call the version "Guitars Only" and the Song title on the MR-8 is "A" then then backup would go in C:\songs\Foo\Guitars Only\. Into that directory the folder "A" from the MR-8 gets coppied.

There is also a restore feature which copies everything from the selected song & version folder back to the MR-8. The restore excludes the mix folder.

I looked into DirectX9, but I was having problems playing more than one wav at a time. I could play two waves, but they didn't start at exactly the same time, so they didn't match up exactly. DirectX9 does offer most everything else required to do the mastering (effects, recording, volume control, balance (3D), etc.)

My program is written in VB.NET and the DirectX stuff is written in C++.NET since DirectMusic is not exposed to VB.NET.

I'd love to add single file importing to mirror the functionality of the Fostex WavManager... If anybody is interested in using my program or helping develop it, please let me know. I could really use some advice on scheduling wav playback.
 
This sounds cool. Meanwhile, I've expanded the little program I've been working on to include file and directory management and auditioning a single WAV file. I'm still working on it and the next step will be to add import and export like FOSTEX WAV Manager. It's not quite ready for prime time yet.

As I mentioned in an earlier post, my proggie is done in Delphi and Delphi's ability to use pre-written components is a real plus. I'm not sure about playing multiple files for mastering. There's a WAVMIX.DLL file floating around on the web for doing that sort of thing, but it may not allow you to start files at exactly the same time.

Regarding languages, it would seem to me that C++ would be the best way to go if you want superior performance and VB would NOT be the way to go (great language, just S-L-O-W).

Meanwhile, mrx has me worried with all the details involved in counting samples, etc. to tell the ADL file when you export to the MR-8, so that is going to take a lot more work. Still, looking at the simplistic WAV Manager FOSTEX provided, how hard can it be to come up with something better than that?
 
Sounds like we're all looking in the same areas. The problem with wavmix is that it knocks everything down to 8bit audio - it was designed for games where the fidelity wasn't as important as controling multiple sounds. It's interesting that DirectX is resulting in sync issues - maybe the playback code needs to be written by hand. I had a similar issue with a MIDI app I was writing. I found a few sources for the WAV format - I can write a component to extract that data. VB.NET (or .NET, in general) would be cool since users could pull down the run time form Microsoft, making the exe's very small and easy to email.

As for performance, it's like everything else. Well written VB will still run better than poorly written C. Also, most functionality is encapsulated in the framework, which is already optimized.

(And I love the idea of using an external app to set loop points. Great idea!)
 
DirectX Sync Issue

I believe DirectX will support simultaneous (or scheduled) playback. I think I'm going about it wrong. I can't find any documentation explaining exactly how this works, and I haven't spent a ton of time with it.

After DirectX scheduling is solved and the problem of counting frames in wav files (example. 00.00.04.04|0824 from the ADL file) is solved, the steps needed to build a much more robust backup/restore/edit system to replace the Fostex WavManager are few.
 
As usual, I spoke hastily the other day when I wondered how hard recreating FOSTEX WAV Manager could be.....has anyone figured out the math used to count the frames, samples, whatever? I've played around with it a little (with no real success yet). And if that's not bad enough, I'm finding that WAV Manager calculates a slightly different time than the WAV header shows and writes that to the ADL file....then there's still the problem of what they use to calculate the extra frames....

....is my ignorance showing or is there something going on with the WAV Manager translation that I'm missing?
 
The spec talked about the frame stuff being used to maintain sync with video. I know the MR-8 supports various frame rates for MIDI sync, and I wonder if those also affect the ADL numbers. For example, if your MIDI sync is set to 25 frames, then each 'second' is divided into 25 parts, and the extra number is the amount of of samples "left over" after counting to the nearest the frame (fraction of second). It's also possible the MR-9 uses an internal number, like 0 - 99 for 100th's of a second resolution on the counter.

What has me puzzled are the /#### numbers after the start position, as if the wav does not start at absolute zero...
 
Give me another day or two, and i will have the base code for a MR8 Song maker/Import utility. I have the code for it, just have not had time to test it yet. Anyone who programs in VB, just email me if you want the source.

Phineas

phineas@engineer.com
 
Back
Top