Tracker

aliases music tracker, tracker music, tracking
sources SID-Wizard 1.8 User Manual (summary) · 0 3 7 lab — techniques & theory (summary) · Little Sound Dj v9.2.6 Operating Manual (summary) · TW #74–86 — Introduction to Musical Theory, vols 1–5 (Greg Heo) · TW #81–89 — Impulse Tracker Tip of the Week #1–8 (Pinion) and More Impulse Tracker Tips (Pulse) · TW #75 — IT Percussion Tips (Zinc) · TW #55–56 — Panning (GBlues) / Panning? Hello? (Trixter) · Impulse Tracker User's Manual — IT.TXT (summary) · TW #58–59 — The Finishing Touches (Catspaw) · TW #86 — Hexadecimal 101 (chinaski) · GoatTracker v2.72 readme (summary) · ProTracker 2.3d help file (edited by echolevel) · Scream Tracker 3.2 User's Manual (ST3.DOC) · FastTracker v2.08 Manual (Urban Jonsson, 1996) · OpenMPT manual — Song Properties (and Tempo Swing) · TW #21 — Tracking Tips (Dan Hartrell) · TW #96 — Studio Tracking Tips (Zinc) · TW #32–#34 — Tracker Survey / New Tracker (Psibelius, Jason Diamond) · 64'er 10/1986 — Musik wie noch nie: the Soundmonitor article and manual · VGMPF wiki: Soundmonitor, TFMX Editor (C64) and The Great Giana Sisters (C64) · Retrogaming Planet / EmuWiki — Interview with Chris Huelsbeck (2011) · The Brief History of SID — Jan Harries (SIDwave), Vandalism News #64 (2015) · Soundmonitor lineage and wiki pages: tracker-history/soundmonitor.txt, C64-Wiki.de, de.wikipedia · SIDin #5 — High Voltage Music Engines Collection (Stefano Tognon, 2004) · OpenMPT manual — About OpenMPT · My Computer Chronicles — Jens-Christian Huus / JCH (2017) · Old C64/PC Player/Editor Notes — Chordian (2017) · Matt Gray's Dominator subtune 6 source (PLAYER V4.2, 1987) and the Reformation driver competition · TW #3 — Music: Beginning the Tracking Experience (Psibelius) · SIDin #13 — TSM & Freedom interview (Stefano Tognon, 2010) · defMON wiki — features, interface overview, seqED key map · defMONing 101: A defMON Operator Field Guide (iLKke, 2013) · Brief introduction to Super Commands (FTC) · defMONing 102: extended field guide (iLKke et al.)
created 2026-08-30 · updated 2026-08-31

A tracker is a music editor where the song is a vertical grid: time runs downward in rows, each pattern is a block of rows for all channels, and an orderlist says which patterns play in which order. A row cell holds a note, an instrument number and effect commands; everything is written in hexadecimal. This is the common language of all three wiki focus platforms — sid-wizard on the C64, LSDJ on the Game Boy, and the PC trackers impulse-tracker / openmpt.

Anatomy of a row#

In SID-Wizard a pattern row for one of the three sid tracks is Note/Fx · Instrument/Fx · Effect · Fx-value; the note column can also carry vibrato, portamento, ring-mod and sync flags typed with key combinations, and three effects can act on one row (source: s-sid-wizard-manual). goattracker's row is note+octave · instrument · command · databyte (C-1 00 0 00), with ... rest, --- key off and +++ key on as special notes (source: s-goattracker-readme). PC trackers use the same idea with per-channel columns and usually a volume column.

Rows, beats and bars#

037-lab "thinks like a tracker": 16 rows per bar, hex row numbers, notes as C-4, a held note shown as |, a rest as ···. Rows 0 and 8 are the strong beats, 4 and 12 medium, the rest weak (source: s-037-lab) — see rhythm-and-groove. Tempo is expressed in frames per row on the C64 (SID-Wizard tempo $00–$7F per row) and as speed/BPM in PC trackers. Zinc's resolution rule: when 64 rows are not enough for a part, use 128 rows and double the speed (source: s-tw096-studio-tracking-tips).

Notes and octaves#

Note names are tracker-style with sharps only (C-4, A#3). Octave numbering differs between tools: impulse-tracker/OpenMPT call middle C C-5, 037-lab calls it C-4 (source: s-037-lab). SID-Wizard shows the current octave in the top border and selects it with C=+1..8. The PC keyboard is a chromatic scale: pressing A Z S X D C F V G B H N J M K and then 1 Q 2 W 3 E 4 R 5 T 6 Y 7 U 8 I 9 O 0 P in ST3 or FT2 steps through every semitone (some keys are silent) — Dan Hartrell's way of teaching tones and semitones to trackers who never saw a piano (source: s-tw021-tracking-tips).

Ticks#

Below the row there is the tick: the sequencer's smallest time unit, at which commands like vibrato, slides, arpeggios and retrigs update. In lsdj a phrase step lasts as many ticks as the groove says (default 6; at 125 BPM there are 50 ticks per second), so commands are specified in ticks (Dxx delay, Lxx slide when PITCH = TICK) — the same "speed × tempo" model as PC trackers, where speed is ticks per row. On the C64 the equivalent unit is the frame, and SID-Wizard's tempo is frames per row (source: s-lsdj-manual, s-sid-wizard-manual).

In S3M/impulse-tracker the same two numbers are Axx (speed = frames per row, default 06) and Txx (tempo, default 125; frames per second = 0.4 × tempo, so 125 gives 50 frames/s and A32 makes a row last a second). A tick is called a frame in the PC scene; Catspaw's definition: "a frame is a slice of time … think of a frame as a tick on a clock", and speed is "a delay in frames" — at speed 6, four rows are 24 frames (sources: s-it-manual, s-tw058-the-finishing-touches). SCx cuts a note after x ticks — SC2 at speed 6 plays a third of the row — which is how articulation (staccato vs legato) is written (source: s-tw074-intro-to-musical-theory).

In PC trackers (S3M / IT / XM)#

A row is note · instrument · volume column · effect + value. The volume column carries more than volume: panning (IT 0–64, FT2 P0–PF) and, in IT, vibrato via the ` key. Effects are a letter plus two hex digits (Axx speed, Dxy volume slide, Gxx portamento, Hxy vibrato, Jxy arpeggio, Oxx sample offset, Xxx pan …) — see the impulse-tracker cheat sheet. IT adds instruments with envelopes and new-note-actions on virtual channels, and single-row templates that stamp a prepared chord or stereo pair (sources: s-tw081-it-tip-of-the-week, s-tw075-it-percussion-tips, s-tw055-panning-debate).

Effect memory and templates (IT/S3M): a 00 parameter repeats the last value of that effect, and some effects share a memory (E/F/G, D/K/L, H/U) — smaller files and less typing (volume-slides). Patterns are 32–200 rows; the order list ends with --- and skips +++; a skip value of 0 moves the cursor to the next channel to type chords; templates stamp a copied block, transposed, on every note entered (source: s-it-manual). Hex: base 16, digits 0–9 A–F; a two-digit value is 16 × the first digit + the second, FF = 255 — the effect column is the only place IT uses it (sources: s-it-manual, s-tw086-hexadecimal-101).

The three row layouts from the manuals: ProTracker C-3 01 C20 = note, sample, effect + value (no volume column; Dxx breaks to a decimal row) (source: s-protracker-23d-help); ST3 C#4 04 25 H81 = note + octave 0–7, instrument 00–99 (decimal), volume 0–64 (decimal), effect letter, infobyte (hex); ST3's middle C is C-4 with the sample's C4Spd as its frequency (source: s-st3-manual); FT2 C-5 1 - A0F with a decimal volume column and hex effects (source: s-ft2-manual); OpenMPT names the parts channel, column, cell and event — "only one event per channel can be played at a time" (source: s-openmpt-manual-song-properties). The clock: a tick "goes back to the Amiga and means number of VBL's to wait until playing next row"; speed = ticks per row; ticks per second = BPM × 2 ÷ 5, so 125 BPM is the Amiga's 50 Hz and "the BPM is correct at speed 06" (source: s-ft2-manual); ProTracker offers VBlank timing (20 % faster on NTSC) or CIA timing in BPM (source: s-protracker-23d-help); OpenMPT's Classic mode formula is rows per minute = tempo × 24 ÷ speed with old-school rounding, its Modern mode makes the tempo exact BPM (source: s-openmpt-manual-song-properties).

In LSDj#

A phrase is 16 steps of note · instrument · command · value; chains and the song screen sit above it (orderlist). Notes read C-2 etc.; KIT/SPEECH instruments show sample names in the note column and NOISE instruments a shape byte for 15-bit noise. Nine screens on a 5×3 map, navigated with SELECT+CURSOR (source: s-lsdj-manual).

Effect commands#

Commands are written as a hex effect number plus a value. The sources mention the classic PC-tracker set — 3xx tone portamento, 4xy vibrato, Axx volume slide, Gxx tone portamento in IT — and SID-Wizard's own $01–$1F "big" and $2x–$Fx "small" effects (see the sid-wizard cheat sheet). Technique pages give the concrete commands per tool: pitch-slide-and-portamento, vibrato, chord-arpeggio.

Instruments#

On the C64 an instrument is an envelope plus per-frame instrument-tables; in sample trackers it is a sample plus envelopes. See instrument-design.

History and what musicians asked for#

For the scene's own account of where trackers came from — C64 crackers, Amiga MODs, the PC — see tracker-scene-history. What musicians wanted beyond the ProTracker command set is on record in Jason Diamond's 1995 wish list for a planned freeware tracker: tick-exact commands, several commands per event, multi-sample instruments, stereo samples and variable-length tracks (source: s-tw032-tracker-survey).

The three generations. OpenMPT's own manual places itself: "OpenMPT is a third-generation tracker — a music application with a focus on a mostly textual note representation with a strong keyboard focus", with a built-in sampler plus MIDI and VST instruments, up to 128 pattern channels each with its own volume, pan, plugin and name, and alternate tunings and temperaments for samples. Its stated limits are the shape of the tradition too: "limited control for editing of sample data" and "text-based only, no piano roll" (source: s-openmpt-manual-about-openmpt).

Why a C64 composer keeps a per-voice orderlist. JCH's brief for the jch-editor was that he wanted "tracks to follow each other so that multiple voices could be compared easily", and disliked how Amiga SoundTracker's voices were "fused together in the same pattern" — his should follow each other while having independent sequences of any size. That is a statement about what a tracker screen is for: seeing harmony you cannot hear in your head. The design also insisted on everything on one screen, "another half pane popping up on a hotkey", so editing a table never leaves the notes ("out of the zone" avoidance). His paper notes date the moment the layout arrived: the earliest sketches, "before I saw SoundTracker on Amiga", showed "the notes in horizontal bars"; later ones ditch "making it look like Ubix" for "the design of SoundTracker on Amiga" — "the beginning of the idea of having note columns going downwards" (sources: s-chordian-my-computer-chronicles, s-chordian-player-editor-notes).

What the tracker replaced, in the words of someone who did it the other way. Matt Gray's Dominator source is a bar written as a byte stream — T1: $FA,$04, $71,D2,D2, $70,F2,D2,F2, $71,G2,G2, $70,G2, $FF — where $FA nn is the instrument, $70–$F8 is a note duration (byte − $70), 0 a rest and $FF the end of the bar (source: s-matt-gray-dominator-source). Everything a tracker draws as a grid position is a byte here, and the durations are explicit — the "editor" side of the distinction below.

Learning one, in 1994. psibelius's account of starting on Renaissance's MultiTracker 1.01b with nobody to teach him is still the fastest route in: open somebody else's song, delete all the patterns, and write something new with their instruments — he had a strange "Ode to Joy" within hours. His attached rules are social, not technical: take the useful part of criticism and ignore the rest, don't call your own modules "totally awesome", and credit the person whose instruments you use (source: s-tw003-beginning-the-tracking-experience; sample-ripping).

Before the tracker: Soundmonitor (C64, 1986)#

chris-huelsbeck's soundmonitor already had the tracker's three levels, in hex: a track/step table (steps $00–$FF, one column per SID voice holding the address of a bar, plus transpose and sound-transpose columns — VGMPF: per step "a tempo, length, volume, fade-out speed; in each cell … a bar, transpose, instrument set; and on every single note, an instrument and whether to disable transpose and enable portamento and arpeggio"), bars of 32 notes shown as A-1 01 (note name, sharp or -, octave, then a byte whose low nibble is the sound), and sounds of 24 bytes. The play routine ran in the interrupt so you heard the song while editing, and bars could be recorded from the keyboard with quantize (sources: s-64er-soundmonitor-article, s-vgmpf-soundmonitor-tfmx). Hülsbeck on the note display: "Other programs that came later, like the Trackers on the Amiga used a similar format and they may have been inspired by my earlier tools" (source: s-emuwiki-huelsbeck-interview).

Whether the word came with it: SIDwave's memoir says of late 1986 "Somebody releases what is called a TRACKER, music editor" — Soundmonitor — and de.wikipedia calls it "the origin" of Amiga and PC tracker software, a claim neither source documents (unverified) (sources: s-recollection-brief-history-of-sid, s-soundmonitor-lineage-wikis).

Editor or tracker? Explicit versus implicit note length#

Stefano Tognon's hvmec collection (2004) sorts every C64 music program into two families by one criterion: an editor is "a program where note duration is explicitly declared" — a command such as DUR 05 in the pattern sets the length of the notes that follow — and a tracker is one "where note duration is not explicitly declared": "the duration is given by the number of events between two notes". His example, three notes of different length:

editortracker
DUR 03 · A4 · B4 · DUR 02 · G4A4 --- --- B4 --- --- G4 ---

(source: s-sidin05-hvmec). By this criterion soundmonitor — bars of 32 note slots with +++ for a held note — is already a tracker, while the hubbard-player's length byte, the matt-gray-player's $FD kk duration command and the note-value constants of the ocean-music-driver make those editors; SIDwave's "the first DUR editor" for Ubik's Musik uses the same word (tracker-scene-history).

Composers do take sides. Asked directly in 2010, tsm "honestly [doesn't] understand duration based editors" and freedom "absolutely prefer[s] tracker style editors" — and both arrived at goattracker from the same direction, a fasttracker-2-like interface with mouse support, an efficient packed player and good documentation, after native C64 editors failed them on other grounds (CyberTracker's beta packer produced songs that "were too big and used too much rastertime"; Odin Tracker's routines meant "too much rasterlines are required"). TSM's route to a tracker also ran through writing his own player as a machine-language exercise — "the simplest routine one could imagine, with no effects whatsoever, no hardrestart routine and no memory optimizations … uses a laughable amount of rastertime" (source: s-sidin13-tsm-freedom-interview; sid-player-routine).

The tracker without commands: defMON#

defMON is the useful edge case, because it removes almost everything this page describes as a tracker's furniture. There are no instruments and no effect commands: the sequence editor's columns are two Sound Program pointers into the sidTAB (blue and green), a speed column and a note column, and "all instruments and effects are merely changes within these registers" — a step's two pointers execute simultaneously, so one can hold the note while the other runs a slide, a vibrato or a filter change. "You decide!" replaces the command list (sources: s-defmon-wiki-manual, s-defmon-wiki-defmoning-101).

The block operations a tracker normally supplies as menu items come back as a modifier mode. Super Commands multiply any ordinary edit keystroke over many steps, many repetitions, every Nth line, or every sequence at once: CTRL+S 20 sets STEPS to $20, CTRL+R 7 sets REPEAT to 7, and then one press of . ("transpose the current step one step upwards") lifts a whole sequence seven semitones. The mode stays armed for every subsequent keystroke — "If you continue pressing other keys you will notice that you are messing up your tune… You clearly want to escape this mode quickly" — so CTRL+ENTER (the border colour clears) is part of the idiom (source: s-defmon-wiki-supercommands). Live, the same philosophy gives the editor keys a tracker usually spends on effects: C=+F1/F2 shift the speed by one CPU cycle, C=+F3/F4 by 80, and C=+F5/F6 walk the player call ratio from 1/1 to 1/8 (source: s-defmon-wiki-defmoning-102; multispeed).

orderlist · instrument-tables · semitone-math · sid-wizard · impulse-tracker · openmpt · tracker-scene-history · defmon · jch-editor · goattracker

Sources#

s-sid-wizard-manual · s-037-lab · s-goattracker-readme · s-protracker-23d-help · s-st3-manual · s-ft2-manual · s-openmpt-manual-song-properties · s-tw021-tracking-tips · s-tw096-studio-tracking-tips · s-lsdj-manual · s-tw074-intro-to-musical-theory · s-tw081-it-tip-of-the-week · s-tw075-it-percussion-tips · s-tw055-panning-debate · s-it-manual · s-tw058-the-finishing-touches · s-tw086-hexadecimal-101 · s-tw032-tracker-survey · s-64er-soundmonitor-article · s-vgmpf-soundmonitor-tfmx · s-emuwiki-huelsbeck-interview · s-recollection-brief-history-of-sid · s-soundmonitor-lineage-wikis · s-sidin05-hvmec · s-openmpt-manual-about-openmpt · s-chordian-my-computer-chronicles · s-chordian-player-editor-notes · s-matt-gray-dominator-source · s-tw003-beginning-the-tracking-experience · s-sidin13-tsm-freedom-interview · s-defmon-wiki-manual · s-defmon-wiki-defmoning-101 · s-defmon-wiki-supercommands · s-defmon-wiki-defmoning-102

source file wiki/concepts/tracker.md · 1 unverified · graph