It was in 1991 (or maybe 1990) when a friend showed me what would become one of the most successful products ever: the SoundBlaster card. It was capable of playing MIDI files but, most of all, could record and playback digital 8-bit samples. At the time the Amiga was the leading platform for (home) gaming and its audio capabilities were astounding: it had four independent digital channels with hardware-supported effects and awesome sound quality. The PC was blessed with a squeaky speaker and, if you were lucky, an AdLib card. But the SoundBlaster would soon start a revolution...
I was really impressed with the SoundBlaster, which contained several nice demos, but the program that really floored me was written by a German hacker, who named it the SoundTracker. The SoundTracker was able to emulate the Amiga sound hardware on a standard SoundBlaster: it would compute the output of each channel in software, emulating hardware effects if necessary, and mix all four of them into a single channel that was then sent to the SoundBlaster. The result was astonishing and I still consider the SoundTracker as a true work of art.
When I saw that, I hadn't a clue how it worked... in fact I didn't know anything about the Amiga too! But I really wanted to know more...
In 1991 internet wasn't an option down here in Italy. Best you could do was getting a modem (I started with a 300 baud model... can you imagine connecting at about 30 characters per second?) and with a bit of luck connecting to a BBS, which usually allowed you to exchange messages and download files. But I'm digressing already. The point is: there was no Google to look for info, and you had to go straight to the source... the machine code. So I disassembled and reverse engineered the SoundTracker, and was able to grab many of its secrets. Also, thanks to bits of information retrieved here and there, and with the help of Amiga friends, I was able to obtain some more info about the MOD format, and even the source of a MOD player written for the Amiga (in Assembly for the 68000 of course...).
The MOD format is simple and ingenious. It contains the sequence of notes to play (with effects and all) organized in units called patterns, as well as the digitized samples used by the song. So, a MOD is a self contained unit and you had just everything you needed packed into a single file. (Note to self: it's amazing I still remember so much of that stuff after 15 years... what was I doing night and day at the time?! Not chasing girls I suspect...)
After the MOD format was also reverse engineered, I started working on a player. My PC was a 286 when I started (later, a friend of mine gave me a used 16 MHz 386 motherboard... a huge step forward!) and there are so many things to do when playing a MOD that writing in Assembly was the only option... Eventually, the player started to work well. The code was very fast and I clocked everything on the interrupts that came from the DMA controller. This was a good choice: since the module was entirely loaded in memory and I was using only the SoundBlaster card hardware, it was possible to start the player and then shell back to DOS to work normally... the player took so little CPU that I could start it, then open the DOS prompt and run Windows 3.1, which would run flawlessly!
At that point, I also wanted to be able to create my own modules. Because there was no editor for the PC, I decided to write one and after a while... Dr. Track was born! Dr. Track was a good program and still works like a charm for editing MODs, just run it in DOSBox and see. Because Dr. Track was the first and only MOD editor for the PC, I decided to run a little experiment and published the program as shareware. IIRC, it was priced at more or less 18 euros, which included the program, an extra disk full of MODs, packing and postage. It sold well and I continued to update it until version 1.30 in 1992. Then I had to leave for one year to serve in the Army and on coming back home I was so happy that the next release was completely free. The program was finally updated to version 1.45 in 1993, and that's the last Dr. Track.
Its features includes:
Here are some screenshots:
Main screen (playing, 25 lines)
Instrument editor (43 lines, note the waveform is displayed in text mode)
Main screen/player (43 lines, the mixer output is displayed in real-time in the upper right corner)
Dr. Track was written in Assembly and Turbo Pascal, here is the source code as well as a complete installation package (just unzip it somewhere and mount the directory with DOSBox). I have also ported to HTML the original manual, which is written in Italian sorry. At any rate, the program contains a complete help system in English, so you won't have any problem to use it. Enjoy!
Copyright (c) 2005 Alessandro Scotti. All rights reserved.
Home :: Computer Programming :: Software from the old days |