Introduction
The Soundtracker module is the first tracker module. Ultimate Soundtracker, written by Karsten Obarski and sold by EAS Computer Technik for the Commodore Amiga from 1987, saved songs in it, and so did the Soundtrackers that followed it: TJC Soundtracker II, the D.O.C. Soundtrackers III to IX and 2.0, Master Soundtracker and others, until the 31-sample layout replaced it in 1989. A module holds a song title, 15 samples of 8-bit sound, an order list and patterns of 64 rows by 4 channels.
It differs from the later ProTracker module in what is already there, not only in what was added: 15 sample headers instead of 31, so everything after offset 470 sits elsewhere; a tempo in the byte after the song length; a loop start counted in bytes rather than words; and no signature. It is therefore a separate format. The versions of Soundtracker differ in their effects too, but not in the layout.
Files are named .mod, or on the Amiga with a mod. prefix, as
in mod.songname; OpenMPT also uses .stk for them. Sample
names often carry the name of the Soundtracker sample disk they came from, as in
st-02:snare14.
A .mod or .stk file dropped on any page of this site opens in
the explorer, which shows the header field by field, the samples, the order list and
every pattern note by note, and plays the song.
Structure
A 600-byte header, then the patterns, then the sample data, with nothing between them. All numbers are big-endian.
0Title the song name, padded with zero bytes20 bytes20Sample headers 15 of 30 bytes: name, length, volume, loop450 bytes470Song length how many positions are played1 byte471Tempo a CIA timer setting; 120 is the standard tempo1 byte472Order table the pattern for each of 128 positions128 bytes600Patterns 64 rows × 4 channels × 4 bytes, in number order1,024 bytes each…Sample data signed 8-bit, sample 1 firstvaries
Telling it apart
There is no signature, so the explorer’s parser recognises the format by a header
that makes sense, following the checks of OpenMPT’s Soundtracker loader. Before it
looks, the file must be named like a module (.mod, .stk, or a
name starting mod.) and be at least 1,624 bytes long, the header and one
pattern. Then:
- the four bytes at 1080 are not a known 31-sample signature such as
M.K.; - every sample volume is 64 or less, and every sample length at most 37,000 words;
- the title and sample names are mostly text: bytes that are neither zero nor printable ASCII are counted, a finetune byte that is not zero counts 16, and a total above 48 turns the file down;
- the song length is 1 to 128, and the tempo byte at most 220;
- all 128 order entries are 63 or less;
- at least one sample has both data and a volume;
- no more than 16 of the 256 cells of the first pattern are not Soundtracker notes (a sample number above 15, or a period outside 100 to 1,800).
A file that fails any check is turned down. Files named .mod that are
not modules at all, such as Go and Fortran module files, fail these checks.
Variants
- ProTracker module (M.K.) – 31 samples and 4 channels, marked M.K. at offset 1080: the standard Amiga module
- Multichannel module (xCHN, xxCH) – 31 samples and 1 to 32 channels, marked 6CHN, 8CHN, 16CH and so on
- StarTrekker 8-channel module (FLT8) – 8 channels, each pattern stored as two 4-channel patterns
- Soundtracker module (15 samples) – the first modules, 1987 to 1989: 15 samples and no signature
Links
Software
- OpenMPT – free tracker that plays, edits and saves MOD files, Soundtracker ones included (Windows)
- ProTracker 2 clone – faithful remake of the Amiga ProTracker 2.3D, which also loads 15-sample modules (Windows, macOS, Linux)
- VLC media player – free player for almost any audio or video file, modules included (Windows, macOS, Linux, mobile)
Developers
- libopenmpt – OpenMPT’s playback library (C, C++)
- libxmp – module player library for MOD, S3M, XM, IT and many more (C)
Reference
- OpenMPT’s Soundtracker loader – how 15-sample modules are recognised, the tempo, loops and effects (C++)
- Tracker History Graphing Project – the Soundtracker versions, their dates and what each changed
- Ultimate Soundtracker – Wikipedia’s article on the first tracker