A module holds no timeline and no recorded mix. A player builds the sound as it goes: it steps through the positions of the order table, plays each pattern’s rows one after another, and on every tick updates the Amiga’s four voices. The Soundtrackers’ own replay routines differed from version to version and are not described in the sources used for these pages; what follows is how OpenMPT reads these files, which is how the explorer plays them.
Timing
Time is counted in ticks, and a row lasts speed ticks, 6 at the start.
From Soundtracker III on, Fxx changes the speed, reading only its low
four bits (1 to 15). The length of a tick comes from the
tempo byte at offset 471:
tempo byte 0 or 120: tick = 20 ms (50 a second, 125 BPM)
otherwise: tick = (240 − tempo) × 122 / 709,379 seconds
| Tempo byte | Speed | Tick | Row | Pattern of 64 rows |
|---|---|---|---|---|
| 120 | 6 | 20 ms | 0.12 s | 7.68 s |
| 150 | 6 | 15.5 ms | 0.093 s | 5.94 s |
| 100 | 6 | 24.1 ms | 0.144 s | 9.25 s |
Song flow
Positions are played in order, from 0 to song length − 1, each playing the pattern
the order table names from its
first row. The next position starts at the end of the pattern. From D.O.C.
Soundtracker 2.0, a position jump (B) or a pattern break
(D00) can end a pattern early. The explorer plays the song once, to the
end of the order list or until a jump would play again what has already been
played.
Samples and loops
Each channel is one of the Amiga’s four voices. When a note starts, the voice is given a sample to read:
- A sample without a loop (loop length 1) is read from its first byte for its length, once. The voice then falls silent.
- A sample with a loop is read from its loop start, in bytes, for the loop length, and repeated for as long as the note lasts. Nothing before the loop start is played, not even the first time: as OpenMPT notes, looped samples in Ultimate Soundtracker “seem to ignore all sample data before the actual loop start”.
The voice holds each sample byte for the number of colour clock cycles that the note’s period gives, so the sample plays faster for higher notes.
Stereo
The Amiga sends channels 1 and 4 to the left output and channels 2 and 3 to the right, with no panning in between. The explorer places the channels the same way.
In the explorer
The explorer plays these files with its ProTracker 2.3D replayer, set for Soundtracker: ticks from the tempo byte, loop starts in bytes, looped samples played from the loop, no finetune, and the effects read as Ultimate Soundtracker’s or as the later Soundtrackers’, whichever the patterns suggest. It holds each sample byte for its period and averages over each output sample, plays at 44.1 kHz, or at a lower rate for a very long song, and does not model the Amiga’s filters.