MOD module format (.mod)

"The first file format for tracked music on the Commodore Amiga": introduced in a basic form by Karsten Obarski's Ultimate SoundTracker, extended by NoiseTracker and protracker with more effects, longer samples and more patterns; PC trackers later added channels, panning and octaves (source: s-openmpt-manual-module-formats). Lars Hamre's PT.FileFormat.txt (summary: s-protracker-23-readme-and-docs) is the ProTracker description.

Layout (ProTracker)#

20-byte song name · 31 sample records of 30 bytes — 22-character name, length in words (× 2 = bytes), finetune as a signed nibble (07 = 0…+7, 8F = −8…−1), volume $00$40, repeat point and repeat length in words · song length 1–128 · a byte set to 127 ("Noisetracker uses this byte for restart, but we don't") · 128 song positions holding pattern numbers 0–63 · the tag M.K. at offset 1080 — "something Mahoney & Kaktus inserted when they increased the number of samples from 15 to 31" (Startrekker: FLT4/FLT8; 100-pattern ProTracker modules: M!K!) · patterns of 1024 bytes, four bytes per note: sample number split across two nibbles, a 12-bit period and the effect · samples after the patterns. Period table for finetune 0: C-1B-1 = 856, 808, 762, 720, 678, 640, 604, 570, 538, 508, 480, 453; C-2B-2 = 428 … 226; C-3B-3 = 214 … 113 (sources: s-protracker-23-readme-and-docs, s-protracker-23d-help).

Limits#

Four channels (OpenMPT allows up to 99, "few support more than 32"; 6/8-channel FastTracker MODs exist), 8-bit samples up to 128 KB in OpenMPT — 64 k in ProTracker — with one loop each, no instruments, 64 rows always, no stored tempo or time signature, three octaves on the Amiga (C-1B-3 in PT naming, C-4B-6 in OpenMPT's, C-3B-5 in ST3's), no volume column ("you can't have both a volume and an effect on the same row"), coarse finetune (1/8 semitone) (sources: s-openmpt-manual-module-formats, s-openmpt-manual-samples, s-st3-manual, s-protracker-23d-help).

Effects#

0F and E0EF as on the protracker cheat sheet; FastTracker and OpenMPT keep the same numbers in XM (effect-command-crosswalk). Playback quirks a MOD player may or may not emulate: VBlank timing (F20 and up as speed), one-shot loops (a loop starting at 0 plays the whole sample once, then the loop — so trim after the loop or start it later), panning commands ignored, sample swapping by a lone instrument number at the loop end, the ramp-down tremolo bug, note delays past the row played on the next row, tempo changes on the second tick; in OpenMPT's ProTracker 1/2 mode arpeggios wrap around above B-6 and vibrato/tremolo skip the first tick (sources: s-openmpt-manual-compatible-playback, s-openmpt-manual-song-properties, s-openmpt-manual-samples).

Four channels as a discipline#

trixter (Hornet), November 1995: "some of today's best PC music" was still four-channel MODs, and fewer channels demand more skill — Nuke of Anarchy as the Amiga master of the form; four-channel compos at Assembly and The Party kept the format alive (source: s-tw033-4channel-lives-on; see channel-interleaving, compos).

Writing MOD from other trackers#

scream-tracker-3's Mod Edit Mode turns non-MOD data red and its export converts extra-fine slides, drops tremor and the retrig volume slide and approximates finetune from C4Spd (source: s-st3-manual); fasttracker-2 refuses to save MOD with the linear frequency table or envelopes in use (source: s-ft2-manual) — and what it does save may not play on an Amiga: zalt's practical warning of December 1995 is that FT2 can write 32-channel .MOD and gives no warning when notes fall outside the ProTracker range; a friend's chiptune with sixth-octave notes "all became Bs in the 5th" on the compo machine and placed last, so check the note range before entering a four-channel compo (source: s-tw040-interview-zalt; see compos); openmpt offers MOD (Amiga) and MOD (PC) and advises re-opening a finished file to check which quirks it guesses (source: s-openmpt-manual-module-formats).

protracker · s3m-format · xm-format · it-format · openmpt · chiptune · chip-samples · amiga-paula · fasttracker-2 · compos

Sources#

s-protracker-23-readme-and-docs · s-protracker-23d-help · s-openmpt-manual-module-formats · s-openmpt-manual-compatible-playback · s-openmpt-manual-song-properties · s-openmpt-manual-samples · s-st3-manual · s-ft2-manual · s-tracker-history-notes · s-tw033-4channel-lives-on · s-tw040-interview-zalt

source file wiki/entities/mod-format.md · graph