Protracker

General Information
The venerable successor of Noisetracker, originally created by the Amiga Freelancers (Lars and Anders Hamre, Sven Vahsen and Rune Johnsrud), followed by Peter Hanning and Anders Ramsay for version 2.1 to 2.3, then by the Cryptoburners (Ivar Just Olsen, Tom Bech and Bjarte Andreaeassen).

Technical Information

 * File Prefix/Extension
 * mod

File format
Overall, a Protracker module is made up of these things:
 * 1 to 31 samples: 8-bit signed PCM sound samples that can be played at any frequency the Amiga OCS hardware is capable of, which is 54.1 Hz to 28.867 kHz
 * 1 to 128 patterns: each pattern has 64 notes per audio channel, and the Amiga has 4 audio channels. Notes can have effects which modify the playing note or sometimes alter the whole song (change position, pattern break, set tempo...)
 * 1 to 128 positions: instead of playing each pattern in order, a position list is used, which lists which patterns to play, in order. Patterns can be played more than once in a song

All these are contained in a single file, although Protracker is capable of saving the song independently (all data except the samples) and then relying on sample names as filenames to load samples individually.

Pattern format
Each pattern has the same structure: a table of notes: 64 rows by 4 columns, each column being an Amiga audio channel. Each note is 4 bytes in size:

Each 4-byte note has the same structure. Look at it as a 32-bit big-endian value:

The sample number should be between 0-31. If the sample number is 1-31, a note will be triggered (e.g. the sample started or restarted). If the sample number is 0, no note is triggered, although effects and period changes can be applied to any existing note in progress.

The note period is passed direct to the Amiga hardware to set the rate of sample playback. It's the number of clock ticks between each sample, which is inversely proportional to the frequency: f = clockrate / period. On a PAL Amiga, the clock is 3546895 Hz, so a period of 428 plays at 3546895 / 428 = 8287.13 Hz.

The note periods can be any value the Amiga hardware can play (from 124 to 65535), but most editors show musical notes: they assume that the sample is of an instrument sampled at C5, and have a period table to convert musical notes to periods, which they paste into the pattern. The specific period stored in the module is a combination of the desired musical note and the sample's finetune value at the time the note was added to the pattern. If the finetune value is changed later, this doesn't change the period of notes already written into patterns, so you can sometimes see oddities like the same note on the same instrument having two different period values. However, when replaying music, the period value seen in the pattern should be used; the period can be translated back to a musical note for display purposes, but shouldn't be looked up in a period table again.

Effects
Protracker supports the following effects: