About the Mod: Part One

The following article is an expansion and revision of material found in my book, Linux Music and Sound, published by No Starch Press.
Of WAVs and MP3s

Fortunately the situation is not an either/or scenario. Programmer Guy Thornley has written a useful little program called GMid2Mod that converts a standard MIDI file (preferably with a General MIDI patch map) to an XM format module, employing the default Gravis Ultrasound samples used by the TiMidity MIDI player. Using GMid2Mod I converted a four-channel MIDI file (with four GM instruments) to an XM-format mod. I used the MikMod player to convert the module to a CD-quality (44.1KHz, 16-bit) stereo WAV file, and I then used BladeEnc MP3 encoder to convert the WAV to an MP3 file with a bitrate of 128KBps.

As the following comparison of the file sizes indicates, it makes better sense for the composer of mods to distribute works in the original module format:

Interlude.mid 34KB
Interlude.xm  737KB
Interlude.wav 28MB
Interlude.mp3 2.5MB

Another advantage shared by MIDI and mod files (over the WAV and MP3 formats) is the ease with which they can be studied, viewed and/or rearranged in compatible composition software. For example an XM module can be loaded into any tracker with XM support, just as a standard MIDI file can be loaded into any MIDI sequencer that supports the Standard MIDI File format. Compositions and performances in the WAV and MP3 formats are not easily rearranged or dismantled into their constituent instruments.

Incidentally, if you want to head in the other direction, Kokai Istvan has written Xm2Mid, a utility for converting XM-format mods to standard MIDI files with a GM patch layout. It works best if your module is arranged using an instrument set identical to the GM patch map.

Linux Mod Trackers

As of August 2000 I counted 13 trackers listed on the Linux Sound & Music Applications site. Which one(s) you prefer to try will depend on your available resources, particularly your graphics capabilities, as well as your interest in developing a tracker. For X users, Michael Krause's SoundTracker (see Figure 1) is designed with an excellent GTK interface graphics, while Cedric Roux's powerful Xsoundtrack (see Figure 2) uses common Xlib graphics. Jason Nunn's FunktrackerGOLD (see Figure 3) is an excellent console-based tracker requiring only the ncurses library for its graphics.

Figure 1. SoundTracker

Figure 2. Xsoundtrack

Figure 3. FunktrackerGOLD

Those three trackers have been developed to a stable and usable status. Other Linux trackers include the Sarah Tracker, Stupid Tracker [sic], and ocsatracker for the Linux console and the Industrial Tracker, the Rapid Audio Tracker, and Insotracker for X displays. All of this software is in various stages of development.

Non-Tracker Trackers

Tracker-style interfaces also appear in music software that does not create modules. Juan Linietsky's unique Shake Tracker (see Figure 4) combines the module tracking interface with MIDI output. If your soundcard includes a hardware synthesizer with SoundFont (sf2) support you can use its sound banks directly. Shake Tracker has just begun its development course, but it is already usable, and the author welcomes feedback and suggestions from users.

Figure 4. Shake Tracker

Tim Janik and Olaf Hoehmann have created the BEAST/BSE system which is an ambitious project that combines an audio synthesis network with a tracker's composition interface (see Figure 5). Currently, files are saved in the BSE format and are not compatible with mod trackers and players. Like Shake Tracker, BEAST/BSE is in early development, but it works and is already quite impressive.

Figure 5. BEAST/BSE Pattern Editor

David O'Toole's GNU-OCTAL project plans to be the Linux equivalent of the Buzz tracker for Windows. Buzz differs from other trackers because it includes generators for sound synthesis, thus eliminating the need for a separate sample library. GNU-OCTAL is similarly designed, and although still in early development, the project is definitely worth watching (or joining: remember, this is Linux, where you too can get involved in the exciting world of audio software development!).


Similis sum folio de quo ludunt venti.

Free Dummies Books
Continuous Engineering


  • What continuous engineering is
  • How to continuously improve complex product designs
  • How to anticipate and respond to markets and clients
  • How to get the most out of your engineering resources

Get your free book now

Sponsored by IBM

Free Dummies Books
Service Virtualization

Learn to:

  • Define service virtualization
  • Select the most beneficial services to virtualize
  • Improve your traditional approach to testing
  • Deliver higher-quality software faster

Get your free book now

Sponsored by IBM