ProTracker Wiki

A practical, “actually useful” reference for the classic Amiga MOD tracker workflow, effect commands, file structure, and tips.

Search ready

Overview

ProTracker is one of the most iconic “tracker” music programs from the Amiga era. Trackers write music as patterns of notes + commands, stepping row-by-row in time. A MOD is essentially: an order list (song structure), patterns (note data), and samples (sound sources).

Tracker mindset Think “spreadsheet for music”: each row is a moment; each channel column holds a note, instrument, and effect. Patterns
MOD sound “Crunchy but clean”: 8-bit samples, tight timing, and creative use of commands like arpeggio, portamento, vibrato. Samples
Compatibility Different players interpret some edge cases differently (especially extended E commands, tempo rules, panning). Variations

What is a tracker?

A tracker is a music sequencer where each channel plays one sample at a time. Each row can define:

  • Note (pitch)
  • Instrument/Sample (which sample to use)
  • Volume (sometimes as an effect or a separate column in other trackers)
  • Effect command (e.g. 3xx tone portamento)

Trackers reward “micro control”: you can shape pitch, timing, and volume in tiny steps per-row.

Typical workflow

  1. Load or sample sounds (drums, bass, leads).
  2. Tune/trim samples; set finetune.
  3. Write patterns: drums + bass + chords + melody.
  4. Use the order list to arrange patterns into a song.
  5. Add polish: volume slides, vibrato, portamento, delays, and pattern tricks.
Pro tip: Start with drums + bass. Add melody last.

ProTracker layout

ProTracker’s UI is famously dense but fast once the muscle memory is there. The main areas are typically: pattern editor, sample editor, instrument/sample list, and song/order list.

Pattern editor essentials

A single row per channel is commonly shown like:

C-3 01 0A 3FF

This is (usually): Note (C-3), Sample (01), Effect parameter (0A / or volume-style field), and Effect (3FF = tone portamento with parameter FF). Exact column formatting varies by UI skin/version.

Core concept note: trackers generally encode effects as CMD + two hex digits. Example: A0F means command A with parameter 0F.

Song / Order list

The order list tells ProTracker which pattern plays next. Patterns can repeat many times. This is how you do verses/choruses without duplicating pattern data.

Sample editor

Classic MODs use samples (often 8-bit PCM). You can trim start/end, loop, and set finetune. Looping is crucial for sustained instruments like bass and pads.

MOD file structure (practical)

A typical “classic” MOD contains:

  • Song title
  • Sample headers (often 31 sample slots in the common variant)
  • Song length and an order list (pattern sequence)
  • Pattern data (note + instrument + effect per channel per row)
  • Sample data (raw PCM bytes)
Compatibility note
While “4-channel MOD” is the cultural default, there are multi-channel MOD variants. Some tools label these with signatures like 6CHN, 8CHN, etc. If your goal is maximum authenticity and compatibility: stick to classic 4-channel constraints.
Avoid surprises

Effect commands reference

Effects are written as a command nibble (0F) plus two hex digits (00FF). Example: 9A0 = sample offset A0.

Main commands (0–F)

Cmd Name What it does Notes / Gotchas
0xy Arpeggio Cycles note + semitone offsets x and y each tick (classic “chip chord” sound). Very characteristic MOD sound. Parameter is two semitone offsets.
1xx Portamento up Slides pitch up by xx each tick. Use small values for musical slides.
2xx Portamento down Slides pitch down by xx each tick. Beware sliding past sample limits (player-dependent).
3xx Tone portamento Slides current note toward the target note at speed xx. Often: put the target note in the note column, keep sample same.
4xy Vibrato Vibrato with speed x and depth y. Waveform can be set via extended vibrato control.
5xy Tone porta + vol slide Combines tone portamento (uses prior 3xx speed) with volume slide xy. Common for leads: slide into note while fading.
6xy Vibrato + vol slide Combines vibrato (uses prior 4xy settings) with volume slide xy. Great for sustained pads/strings.
7xy Tremolo Volume modulation with speed x, depth y. Often subtle; can be dramatic for chiptune vibe.
8xx Panning (varies) Sets stereo panning to xx in some players/trackers. Gotcha: not universal in “pure” 4ch ProTracker playback.
9xx Sample offset Starts sample playback at offset xx (often in 256-byte steps). Classic for breakbeats and crunchy stutter edits.
Axy Volume slide Slides volume up/down: x up, y down (usually one nibble active at a time). Use A0F (down) / AF0 (up) patterns.
Bxx Position jump Jumps to order position xx. Used for song structure tricks / loop.
Cxx Set volume Sets channel volume to xx (0–64 typical). Values above max may clamp (player-dependent).
Dxx Pattern break Breaks to next pattern at row xx (often interpreted as decimal BCD). Gotcha: row encoding can be BCD in classic behavior.
Exy Extended Extended effects group (subcommand x, value y). See the expanded table below for E-commands.
Fxx Set speed / tempo Sets speed (ticks/row) for small values; sets tempo (BPM-ish) for larger values in many implementations. Gotcha: exact tempo rules vary by player/version.

Extended commands (E0–EF)

Extended effects are written as E + subcommand + value: E6x, EDx, etc.

Cmd Name What it does Notes / Gotchas
E0x Filter on/off Toggles the Amiga low-pass LED filter in some playback setups. Heavily hardware/player dependent; treat as “optional flavor”.
E1x Fine porta up Fine pitch slide up by x (small step) on the row. Fine commands often apply once (not every tick).
E2x Fine porta down Fine pitch slide down by x on the row. Great for subtle pitch nudges.
E3x Glissando control When enabled, tone portamento steps in semitones (stair-step) instead of smooth slide. Chiptune-y “stepped” slides.
E4x Vibrato waveform Selects vibrato waveform (sine/ramp/square/etc. depending on implementation). Wave options vary; test in your target player.
E5x Set finetune Adjusts sample finetune (pitch offset) for the current instrument. Useful for tuning samples to track key.
E6x Pattern loop Marks loop start (x=0) or loops back to the marker x times (x>0). Essential for in-pattern repeats and fills.
E7x Tremolo waveform Selects tremolo waveform in some implementations. As with vibrato, waveform set is player-dependent.
E8x Panning (varies) Used for panning in some tracker families/players. Gotcha: not guaranteed in strict ProTracker playback.
E9x Retrig note Retriggers the current note every x ticks. Great for drum rolls and “machine-gun” effects.
EAx Fine vol slide up Fine volume increase by x on the row. Use for gentle accent shaping.
EBx Fine vol slide down Fine volume decrease by x on the row. Useful for tight fades without tick-based slide.
ECx Note cut Cuts the note after x ticks within the row. Clean choppy gating without extra rows.
EDx Note delay Delays triggering the note by x ticks within the row. Used for swing / flam / human timing tricks.
EEx Pattern delay Repeats the current row for x additional times. Dramatic “hold” effects and breakdown stutters.
EFx Invert loop (legacy) Legacy/quirky effect seen in some old player behaviors. High variance: avoid if targeting strict compatibility.
Speed vs tempo (Fxx) in practice
Many ProTracker-family playbacks treat F01F1F as speed (ticks per row), and F20FFF as tempo (BPM-ish). If you’re composing for a specific target player/emulator, test the timing there.
Test your target

Tips, patterns, and “classic MOD tricks”

Drum programming

  • Keep kick + bass out of the same channel if you want them to overlap (one channel = one voice).
  • Use sample offset (9xx) to slice breaks and get crunchy edits without extra samples.
  • Retrig (E9x) is your friend for rolls and energy builds.

Leads & slides

  • Tone portamento (3xx) for expressive leads: place target note, keep instrument, adjust speed.
  • Glissando (E3x) makes slides “stepped” (classic chippy ladder-slide).
  • Vibrato (4xy) adds life; keep depth small for realism.

Arrangement hacks

  • Pattern loop (E6x) for fills: loop a short section a few times before moving on.
  • Pattern break (Dxx) and position jump (Bxx) can create alternative song paths or endings.
  • Pattern delay (EEx) makes rows “hang” for dramatic pauses.
Compatibility maxim: If you want “plays the same everywhere,” use mainstream effects and avoid high-variance legacy behavior.

Keyboard + editing cheatsheet (generic)

Exact keys differ by setup/version, but these patterns are common across tracker muscle memory. Replace these with your exact keymap if you want this page to match your build/emulator config.

Action Typical keys Notes
Enter notes (piano row) ZM / QP Bottom row = one octave; top row = next octave (varies).
Change octave F1/F2 or [/] Common mapping across tracker setups.
Insert/delete row Ins / Del Sometimes affects note column only vs whole row (config dependent).
Play pattern / song Space / Enter Varies heavily; document your chosen mapping for your wiki.

Using ProTracker today

Common modern workflows include:

  • Running ProTracker on real Amiga hardware.
  • Running it under an emulator (fast iteration + easy file movement).
  • Composing in a modern tracker that exports MOD-compatible patterns/samples, then testing in a strict player.
Legal / licensing reminder
If you publish MODs: credit sample sources, and watch licensing for commercial use. Many classic MODs used “borrowed” samples—fine for nostalgia, risky for monetization.
Good practice

FAQ

Why do notes “cut off” when another sound plays?

Each channel is typically monophonic: one sample voice at a time. If you trigger a new note/sample on the same channel, the previous sound is replaced. Solution: plan channel roles (kick/bass/lead/etc.) to avoid collisions.

Why does my module sound different in another player?

Differences usually come from:

  • Tempo/speed interpretation (Fxx)
  • Extended effects (E commands) edge cases
  • Panning support and stereo mixing differences
  • Interpolation vs “raw” mixing

If your goal is strict authenticity, test in a known strict ProTracker-style playback target.

What’s the fastest way to learn?

Load a classic MOD you like, mute channels, and study patterns row-by-row. Try recreating a 4-bar drum loop with 9xx offsets and E9x retrig—these two tricks teach a lot quickly.

Edit / extend this wiki

This HTML is designed to be dropped into a site builder or hosted as a standalone page. If you want, I can also generate:

  • Multi-page wiki layout (index + effects + MOD format + tutorials) with sidebar nav.
  • A JSON-driven effects reference (so you can update commands without editing HTML).
  • “MOD spotlight” template pages (song analysis pages with embedded audio players and pattern screenshots).
Placeholder: Add your own download links / emulator links / archive references here.