Skip to content

Tracker Music

Music written as scrolling columns of notes, played from samples

Tracker music is music composed in a tracker: a program that shows a song as columns of notes scrolling up the screen, one column per sound channel, each note playing a recorded sample. It began with Karsten Obarski's Ultimate Soundtracker on the Amiga at the end of 1987, spread through free rewrites such as NoiseTracker and ProTracker, reached the Atari ST and the PC, and by 1993 a magazine could say that most Amiga game soundtracks were made with trackers. Demo-scene musicians trained in it went on to score commercial games.

“You’ll find that most of the soundtracks for Amiga games are produced using trackers,” Amiga Format told its readers in July 1993, handing them one on the coverdisk. A tracker is a music program with an unusual screen. Instead of staves or a piano roll, it shows the song as columns of notes and numbers that scroll up the display as the music plays, one column for each of the computer’s sound channels. Every note triggers a recorded sound, a sample, so a four-channel tune could have a real drum kit, a slap bass and a choir. The first tracker was Karsten Obarski’s Ultimate Soundtracker, sold in Germany at the end of 1987 for the Amiga. Within a few years its descendants were free, its file format had reached the Atari ST and the PC, and the teenagers who learnt music on it were writing the scores for commercial games.

Fast facts

  • First tracker: Ultimate Soundtracker, Karsten Obarski, Amiga, end of 1987.
  • Amiga successors: the hacked Soundtrackers, NoiseTracker, StarTrekker, ProTracker; also MED and JamCracker.
  • PC trackers: Scream Tracker (1990), Fasttracker and Fasttracker 2 (1992–94), Impulse Tracker (1995).
  • File: the module, song and samples in one file; on the Amiga, the MOD format.
  • Classic MOD: four channels, up to 31 samples of 8-bit sound, patterns of 64 rows.

How a tracker works

The design came straight from the Amiga’s hardware. Its sound chip, Paula, has four channels, and each one plays 8-bit samples from memory at a rate set by a number called the period. A tracker gives each channel a column. A row across the columns is a moment in time, and each cell in a row can hold three things: a note, the number of the sample to play it with, and an effect command with its value. Amiga Computing described the layout in 1990 as “a musical note (C#, D, and so on), a hex number representing a sample in memory”, followed by hexadecimal digits “used for various effects like vibrato and arpeggio”.

Sixty-four rows make a pattern. The song is a list of pattern numbers, played in order, so a chorus written once can be played as many times as it is needed. Because each sample is stored once and replayed at different pitches, a whole tune fits in one file of modest size, samples included. A tracker saved that file as a module; the program that played it in a demo or a game was a small replay routine.

The ProTracker module, byte by byte

The Amiga module format was never formally specified. It was worked out by the people who used it, and their notes were collected in 1993; the replay routine is the final word on behaviour. What follows is the common 31-sample, four-channel form written by ProTracker; the MOD format entry has more. All multi-byte numbers are big-endian, as the Amiga’s 68000 processor stores them.

Offset Bytes Contents
0 20 Song name
20 31 × 30 Sample records: 22-byte name; length in words (2 bytes); finetune, a signed 4-bit value (1 byte); volume, 0–64 (1 byte); loop start in words (2 bytes); loop length in words (2 bytes), with no loop unless it is greater than 1
950 1 Song length: how many entries of the order list to play, 1–128
951 1 Unused by ProTracker; usually 127
952 128 Order list: the pattern number to play at each song position
1080 4 The letters M.K.; a 15-sample module from the original Soundtracker has no such tag and its patterns start at offset 600
1084 1,024 each Patterns: as many as the highest number anywhere in the order list, plus one
after Sample data, signed 8-bit, one sample after another

A pattern is 64 rows × 4 channels × 4 bytes. Each 4-byte cell packs its fields like this:

Code
byte 0: SSSS PPPP    S = upper 4 bits of the sample number
byte 1: PPPP PPPP    P = 12-bit period (the pitch)
byte 2: SSSS EEEE    S = lower 4 bits of the sample number, E = effect command
byte 3: XXXX XXXX    X = effect parameter

sample = (byte0 & 0xF0) | (byte2 >> 4)
period = ((byte0 & 0x0F) << 8) | byte1
effect = byte2 & 0x0F,  parameter = byte3

A sample number of zero means “use the channel’s previous sample”, and a period of zero means no new note: the channel keeps its previous pitch. The period is the value the replay routine writes to Paula’s period register, so a smaller period is a higher note. The playback rate is the Amiga’s clock divided by twice the period: 7,093,789.2 Hz on a European (PAL) machine, so C-2, period 428, plays at about 8,287 samples a second. Channels 1 and 4 come out of the left speaker, 2 and 3 out of the right.

Time is counted in ticks. By default a tick is one 50th of a second, and speed is the number of ticks per row, 6 unless the song changes it, so a row lasts 120 milliseconds. The F command changes the speed when its value is below 32 and, in ProTracker, sets a tempo in beats per minute from 32 upwards, with 125 matching the old 50 Hz tick; F00 stops the song. The note in a row starts on the row’s first tick. Continuous effects such as slides and vibrato then act on each of the remaining ticks, five times a row at speed 6, not six, which is an easy detail to get wrong when writing a player.

Free, and hard to use

The first Ultimate Soundtracker was a commercial program, but most people used cracked and rewritten copies, and their successors were given away. The Amiga Game Maker’s Manual of 1992 told beginners that “the Soundtracker, Noisetracker and Protracker programs are now available in the public domain”, to be had from a public-domain library for around £3, and that ProTracker had been “given away free with a recent issue of CU Amiga (Disk 14)”. Its author did not pretend they were friendly. “All the PD music editors have been designed by and for hackers, who are dedicated to getting the absolute maximum out of the Amiga’s sound system. Inevitably, this adds a great deal of complication to the resulting programs.” He was not complaining, he added: “After all, we’re not actually paying for their software, are we?”

There was plenty of choice. In 1991 the Italian magazine Amiga Byte compared five trackers, MED 3.0, ProTracker 1.1, StarTrekker 1.3, NoiseTracker and JamCracker Pro, and called them all descendants of “the now legendary SoundTracker”.

Beyond the Amiga

Trackers spread to the other machines that could play samples. On the Atari ST the French ST Magazine devoted its November 1991 feature to soundtrackers, “a program for composing music on four voices using sampled sounds”, and put ProTracker on its cover disk in versions for the STF and the STE. Its public-domain pages over the next year offered ProTracker, NoiseTracker and Equinox.

The PC had further to come. “Since the PC began life equipped with nothing but a piezo-electric bleeper,” PC Review wrote in August 1992, “it is hardly surprising that it has taken over a decade for the machine to attract musical software.” It was reviewing Scream Tracker, written by Psi of the Finnish demo group Future Crew and sold in Britain for £75 with a sound board that plugged into the printer port. It had four channels and 31 instruments, could load songs made with NoiseTracker, Soundtracker and ProTracker on the Amiga, and played them through a Sound Blaster, a Covox or the PC’s own speaker. Trackers on the PC soon went past four channels. Mr. H of the Swedish group Triton wrote Fasttracker, which had eight, and with Vogue wrote Fasttracker 2 in 1994, with its own XM format. Scream Tracker 3, with its S3M files, was on sale in British shareware lists by the autumn of 1994 as a “MOD music composer”. Jeffrey Lim’s Impulse Tracker followed in 1995.

From the scene to game scores

Trackers were the demo scene’s instrument, and several of its musicians went on to score games. Jesper Kyd wrote tracker music for Amiga demos by The Silents before scoring the Hitman games and four Assassin’s Creed games. Future Crew’s Purple Motion wrote the music for Remedy’s first game, Death Rally (1996), and became an orchestral arranger and composer. His fellow musician Skaven wrote music for Unreal Tournament and Bejeweled 2, while at Remedy he worked on graphics and sound rather than music. Alexander Brandon, known in the tracker scene as Siren, was the composer of Jazz Jackrabbit, Unreal, Unreal Tournament and Deus Ex, according to the Australian magazine Hyper in 2002; Epic’s Unreal engine played its music from tracker modules.

The programs themselves have outlived their machines. ProTracker 2 has an open-source clone for modern computers, and in 2014 Jeffrey Lim published the source code of Impulse Tracker under the BSD licence.

Sources

  • Amiga Format issue 48, July 1993: ProTracker 3.10B coverdisk, “most of the soundtracks for Amiga games are produced using trackers”.
  • Stewart C. Russell, public-domain music sequencers, Amiga Computing vol. 3 no. 1, June 1990, p. 99: the row layout; SoundTracker and its derivatives.
  • Stephen Hill, Amiga Game Maker’s Manual (Sigma Press, 1992; reprinted 1993), p. 369: the trackers in the public domain, £3, CU Amiga Disk 14, “designed by and for hackers”.
  • Luca Mirabelli, “La banda dei cinque”, Amiga Byte (Italy) vol. 3 no. 35, 1991: comparison of MED, ProTracker, NoiseTracker, StarTrekker and JamCracker (in Italian).
  • ST Magazine (France) issue 56, November 1991: feature on soundtrackers; ProTracker for the STF and STE on the cover disk. Issue 67, December 1992, and issue 68, January 1993: public-domain listings of ProTracker, NoiseTracker and Equinox (in French).
  • PC Review issue 10, August 1992: review of Scream Tracker (Datamex, £75).
  • PC Gamer (UK) issue 11, October 1994: shareware advertisement, “SCREAM TRACKER 3 - MOD music composer”.
  • The Games Machine (Italy), February 1994: survey of music programs, “Mr H’s Triton Fast Tracker” with eight channels (in Italian).
  • “The History of the Future Crew”, the group’s own history, republished by apollo-X Demo Resources, December 1999 (web, secondary): Scream Tracker 2.0 in 1990, “a 4 voice music editing program inspired by the Amiga SoundTracker”. https://wayback.defacto2.net/apollo-x-demo-resources-1999-december-17/fc.htm
  • Demozoo and Pouët (web, secondary): Fasttracker dated to December 1992 and Fasttracker 2 to November 1994.
  • Hyper (Australia) issue 107, September 2002: feature on game music; Alexander Brandon’s composer credits.
  • Lars Hamre and others, MOD file format documentation compiled at ftp.cwi.nl, 1993, and Andrew Scott, “Noisetracker/Soundtracker/Protracker Module Format”, 4th revision (web, secondary): offsets, the note cell, sample records, the PAL clock and period 428, left and right channels. Scott’s revision treats F values up to 32 as speed and F00 as speed 1, which differs from ProTracker’s own routine below. https://www.eblong.com/zarf/blorb/mod-spec.txt
  • Frank Wille, ProTracker 2.3B replay routine (68000 source, public domain): default speed 6 and tempo 125; the F command’s boundary at 32; F00 stopping playback; continuous effects running on the ticks after a row’s first.
  • Wikipedia, “Alexander Brandon” (web, secondary): the handle Siren. https://en.wikipedia.org/wiki/Alexander_Brandon
  • Wikipedia, “Impulse Tracker” (web, secondary): Jeffrey Lim, 1995; the IT format in Unreal’s UMX music files. https://en.wikipedia.org/wiki/Impulse_Tracker
  • Olav Sørensen, ProTracker 2 clone (source code, BSD 3-Clause): https://16-bits.org/pt2.php
  • Jeffrey Lim, Impulse Tracker source code, published 2014, BSD 3-Clause licence (source code): https://github.com/jthlim/impulse-tracker

See also

Checked. Verified against primary sources and signed off by a person.