XMP goes full circle: earlier this week I merged a patch from Lorence Lombardo that allows the player to work in AHI-compatible Amiga systems. Of course it’s not the most efficient way to play Amiga formats on an Amiga, but a curious development nonetheless. I was surprised to see how easy it is to configure the audio output in this port, even compared to the simple descriptor/ioctl approach used in most Unixes:
int fd;
if ((fd = open("AUDIO:B/16/F44100/C/2/BUFFER/358000, O_WRONLY)) < 0)
return -1;
write(fd, data, len);
close(fd);
I also spent some time preparing a Windows port built with MinGW. If the Amiga API above was the simplest to implement, the WinMM API is in the opposite extreme (words like “clumsy” and “design disaster” come quickly to mind). The following code does the exacly same thing using the WinMM API. Don’t read if you have a weak stomach.
Inspired by the UNIX History Graphing Project, I started to chart the relationship between different families of trackers. The result is the Tracker History Graphing Project — currently it only contains the Soundtracker and MED lineages and a few MS-DOS trackers, but to plan is to extend it to become a comprehensive map of the majority of known trackers.
It is interesting to note that many of the most famous Amiga trackers share the same codebase which was placed in public domain by the early authors. Building upon existing and testing codebase created generations of trackers through true evolution. In the PC side, on the other hand, each author was very protective regarding his code and every new tracker author reinvented the wheel creating new quirk-infested replayer routines.
Also note from the excerpt above that, contrary to popular belief that it stands from “Mahoney and Kaktus”, the “M.K.” magic ID in four-channel MODs was actually added to Soundtracker 2.3 by Michael Kleps. According to Soundtracker 2.2: “now the d.o.c news ! 1. the next soundtracker is finished ( 31 instruments ) , but only for internal use !!”. The Soundtracker History 1.05 says “12.1988 - Amiga - Soundtracker v2.2 - Unknown [Michael Kleps] Of DOC now with 31 imstruments (from now we could find M.K. inside)” but this is not the case, at least in my copy of ST 2.2.
Recent rediscovery of xmp and the amount of improvements on the player since then is proof that modplaying is still one of my obsessions favorite idle-time activities. Like coding, or reverse engineering file formats. Put them together, and what you get is a modplayer with support to strange file formats you possibly never heard of, such as STMIK (a precursor of Future Crew’s famous S3M format), MASI (used in some old DOS games such as Epic Pinball and Jazz Jackrabbit), DIGI Booster (Amiga), TCB Tracker (Atari) and so on. This time we had a different and intriguing challenge: a simple module format with a rather strange sound sample encoding. If you’re interested in retrocomputing, reverse engineering, investigative stories, or Python, read on.
After some fun with “live” mod playing, Ademar asking me about mod playing and Paul Wise offering to maintain the project, I decided to do some work on the old xmp codebase and put it back into service. Recent changes include 64bit-safe code, an OSX driver, many Digitrakker MDL fixes and support for Atari ST/Falcon module formats. The changes were not announced, and it’s nice to see that someone already noticed!
My feeling is to rediscover an old toy long forgotten, and I’m very impressed with the fact that during the last week I could easily implement or fix things that were too hard or too boring to do many years ago. Also the code looks much uglier now. Do you have old Protracker mod files (or other obscure module formats) lying around? Give xmp a try and see if it builds/works correctly for you :)
A couple of months ago I bought a synth, and have spent some time trying to learn to play it. I can tell you: the whole process is much more efficient if you have fun and the right motivation — pick a music genre you like, something (preferably not too difficult) you’d like to hear yourself playing, and… play it. I chose old Amiga tracker music.
Protracker modules have a special place in my memories, from the countless hours debugging a player that was the first application I wrote for Linux and Unix. Recent work with Takashi Iwai, who I met back in the mod player days, prompted me to publish this story. Distant Call by Ronny Nordeide (a.k.a. Mr. Man/Andromeda) was one of my favorite four-channel mods back then, and now I found it’s also an easy and enjoyable piece to play — don’t be fooled, the somewhat uninspired and unrehearsed video above doesn’t make justice to its beautiful, evocative atmosphere.
The patch I used is a modified “Nice Piano” from Roland’s XV Collection, with a higher cutoff frequency for brightness, increased release to work around the lack of a sustain pedal and transposed down one octave. It is built around a bright, chorused JD-style piano sound similar to the one used on the original track (which is possibly from a JV-80). Not a flawless performance — any modplayer does better — but overall I’m satisfied with the result. What should I try to play next?