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 every channel. The rules come from ProTracker, which the PC trackers followed; they mixed all the channels in software instead of handing four of them to the Amiga’s sound chip.
Timing
Time is counted in ticks. A row lasts speed ticks, 6 at the start of
every song, and the length of a tick comes from the tempo, 125 at the
start. Both are changed with the
Fxx effect: 1 to 31 sets
the speed, 32 to 255 the tempo. As ProTracker counts it,
tick = (1,773,447 / tempo) / 709,379 seconds (about 2.5 / tempo)
row = speed × tick
At the defaults a tick is 20 ms, a row 0.12 s and a pattern of 64 rows 7.68 s. The
files examined for this site include a 28-channel module that sets both speed and tempo
with F throughout.
What happens on a tick
- On tick 0 of a row, each channel reads its cell. A sample number loads that sample’s volume, finetune and loop; a note looks up its period and restarts the sample, unless the effect is a tone portamento or a note delay; and the effects that act on tick 0 run.
- On ticks 1 to speed − 1, the effects that act on ticks run: slides, vibrato, arpeggio, retrigger, note cut, note delay.
- After the last tick the next row starts, or the row is held again by a pattern delay (EEx).
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, or after a row with a pattern break (Dxy) or a position jump (Bxx). A pattern loop (E6x) repeats rows within a pattern. After the last position, ProTracker goes back to position 0; most players stop at the end of the order list, or when a jump would play again what has already been played.
Samples and loops
Each channel plays its sample from the start, for its length, or to the end of the loop when the loop start is not 0, and then repeats the loop for as long as the note lasts (see loops). A sample with a loop length of 1 plays once and then the channel is silent. A sample number without a note changes the volume at once and loads the new sample’s loop, which takes over when the sample that is playing reaches its end, as on the Amiga.
Left and right
The Amiga sends channels 1 and 4 to the left and 2 and 3 to the right. Multichannel modules carry no panning of their own, so players extend that order: left, right, right, left, then again for channels 5 to 8 and so on.
| Channel | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| Side | left | right | right | left | left | right | right | left |
Many PC players also read an 8xx effect as panning, which can move a
channel anywhere between the two sides.
In the explorer
The explorer plays these files with ProTracker 2.3D’s replay routine extended to the
channel count, with one change of its own for notes outside ProTracker’s three octaves
(see Patterns and
notes). It holds each sample byte for its period, as the Amiga does, and averages
over each output sample; it places the channels hard left and right in the order
above, ignores 8xx, and brings up the level of a quiet mix of many
channels, by at most four times. It plays the song once, to the end of the order list,
a jump back, or F00, at 44.1 kHz, or at a lower rate for a very long song.