Scream Tracker 3 cheat sheet

From Scream Tracker 3 · print · built 2026-08-31

Reference

Cheat sheet#

Screens and global keys#

F1 orders and global variables · F2 pattern editor · F3 instrument list · F4 instrument library · F5 info screen (and play) · Shift+F5 play song, F6 play pattern, Shift+F6 from the current order, F7 from the mark (Shift+F7 sets it), F8 stop · Shift+F8 reload samples into the GUS · F9 status, Shift+F9 setup (colours, directories, chord set) · F10 quick help · Ctrl+R load, Ctrl+W/Ctrl+S save as / quick save, Ctrl+N new, Ctrl+P song length, Ctrl+D DOS shell, Ctrl+Q quit (source: s-st3-manual).

The row#

C#4 04 25 H81 = note + octave (0–7), instrument (00–99 decimal), volume (0–64 decimal), effect (A–Z), infobyte (hex). Middle C is C-4; a sample's C4Spd is the frequency it plays at C-4 (8363 = "no finetune"; +/- octave, * reset, / set by note). Patterns: 32 columns × 64 rows, up to 100 patterns, 255 orders. Effect memory: 00 in D E F G H I J K L Q repeats the last infobyte — and in ST3 the memory is largely shared between commands, unlike IT (sources: s-st3-manual, s-openmpt-manual-compatible-playback).

Effects#

cmdeffectcmdeffect
Axxspeed 1–FF (default 6)Oxysample offset × 256, loop-aware (hi-hat from the tail of a snare)
Bxxjump to order xx (hex)Qxyretrig every y frames, volume change x: 1–5 −1/−2/−4/−8/−16, 6 ×⅔, 7 ×½, 9–D +1…+16, E ×3/2, F ×2 (Q72 at speed 8: 64, 32, 16, 8)
Cxxbreak to row xx (decimal)Rxytremolo
D0y / Dx0volume slide down / up, (speed−1) × value per row (D04 at speed 8 = −28)S1xglissando (semitone portamento) on/off
DFy / DxFfine volume down / up, once per rowS2xProTracker finetune → C4Spd 7895…8757 Hz (8 = 8363)
Exx / Fxxpitch down / up (00–DF) per frameS3x / S4xvibrato / tremolo waveform 0 sine, 1 ramp down, 2 square, 3 random
EFx / FFxfine slide (once per row)S8xpan 0–F (ST 3.2; GUS only)
EEx / FExextra fine slide (four times finer)SB0 / SBxloop point / loop x times (never across patterns)
Gxxtone portamentoSCx / SDxnote cut / note delay after x frames
Hxy / Uxyvibrato / fine vibrato (4× finer, for high notes)SExrepeat the row x times (effects still applied)
Ixytremor on x / off y framesTxxtempo 20–FF (default 7D = 125 BPM)
Jxyarpeggio +x, +y semitones "50 times per second" — J37 C minorVxxglobal volume 0–40
Kxy / LxyH00 + Dxy / G00 + Dxy (no fine slides)not implementedS0x Amiga filter, SAx old stereo control, SFx funk repeat

(source: s-st3-manual; OpenMPT adds Mxx, Nxy, Pxy, S5x, S9x, SAx, Wxy, Yxy, Zxx and volume-column pxx to S3M — none are original ST3 commands, source: s-openmpt-manual-effect-reference)

Pattern editor#

Two piano rows, . clears · * / base octave · , toggles the edit mask (whether volume/effect follow a new note) · Alt+1…8 skip value · chord mode Alt+Z…M (preset chords spread over channels, : exits) · Shift+Q…L enter instrument 1–10 with the current note (drum lines) · Alt+N polychannel · Ctrl+1…9 / Ctrl+B rows between bars (3/4: break at row 47) · < > instrument, + - pattern (Shift ×4), { } speed · 1 AdLib note-off, 4/8 play note/row · Ctrl+Backspace undo, Ctrl+Enter store undo · Alt+T/Alt+R pin channels. Blocks: Alt+D quick-select 16/32/64 rows, Alt+B/Alt+E begin/end, Alt+L channel (×2 pattern), Alt+U unmark, Alt+C copy, Alt+P paste/overwrite, Alt+M mix (echoes), Alt+H overwrite keeping volumes, Alt+Y swap, Alt+Z erase (×2), Alt+X erase effects (×2), Alt+Q/Alt+A transpose ±1, Alt+V/Alt+W set volumes, Alt+S set sample, Alt+I/Alt+J volumes × 3/2 or 2/3, Alt+F/Alt+G double/halve, Alt+K slide volumes (source: s-st3-manual).

Instruments and global variables#

Instrument list: Tab subwindow, Alt+D delete, Alt+O/Alt+W save with/without header, Alt+M maximise, Alt+X/Alt+S exchange/swap, Alt+A Amiga/PC sample flip, Alt+V view as text, Enter library; samples ≤ 64000 bytes, 8-bit; A on the type column makes an AdLib instrument (opl-fm-instruments). F1 variables: tempo, speed, global volume, master volume (SB), volume-0 optimisation, Force Amiga limits (octaves 3–5), Mod Edit Mode (red = not MOD-safe), Fast volslides (ST 3.0 behaviour, auto for old files), Ultraclick removal, stereo; channels L1–L8, R1–R8, A1–A9 with default pans (source: s-st3-manual).

Saving MOD#

Three octaves (C-3B-5), no volume column, finetune approximated from C4Spd, 128 orders, 64 patterns (100 = extended MOD), 31 instruments, no extra-fine slides / fine vibrato / tremor, speeds ≥ 20h, retrig loses its volume slide (source: s-st3-manual).

Techniques

Chord arpeggio (the 0 3 7 trick) › Impulse Tracker / Scream Tracker 3 #

Jxy cycles base, +x, +y once per tick — the IT manual calls it "an effect similar to old C-64 chords" (source: s-it-manual): the Modsquad's chip lead has a chord channel of J47 (major) and J37 (minor) at volume 64 with J00 to stop, and their rules are "chords in one channel — never two — and no percussion inside them" (source: s-tw077-chip-off-the-block). Pinion admits that for "really neato chords" Jxx is "a bit… shitty sounding" in a sample tracker — but on a looped noise sample with a long falling pitch envelope a column of Jxx makes analog-style sweeps (instrument-envelopes; source: s-tw081-it-tip-of-the-week). Trixter's reminder that "a chord isn't a thing, it's any combination of notes" applies: an arp is a chord spread in time (source: s-tw039-chord-theory-debate).

MOD and XM use 0xy for the same command: ProTracker's help calls it "used to simulate chords … noisy and grainy on most samples, but ok on monotone ones" — C-3 00047 C major, 037 C minor — and FT2 plays the note on tick 1, +x on tick 2, +y on tick 3 (sources: s-protracker-23d-help, s-ft2-manual). ST3's manual says the same in its own letters: Jxy changes the pitch "50 times per second … best to use it with clear or tight-looped (chip) instruments. Old users of the Commodore 64 remember this effect which was used to make chords" (J37 = C minor) (source: s-st3-manual). Two quirks players emulate: Fasttracker 2's arpeggio runs backwards (the second parameter's note comes first), and in ProTracker mode arpeggios that leave the Amiga range wrap around an octave (sources: s-openmpt-manual-compatible-playback, s-openmpt-manual-song-properties).

One command-memory trap when porting a part between formats: in S3M the effect memory is mostly global to the column, so a bare J00 recalls the last non-zero parameter of any command in that column, not just the last arpeggio — where MOD's 0xy has no memory at all and IT keeps per-command memory. Only vibrato and tone portamento have their own memory in S3M (source: s-openmpt-manual-effect-reference; effect-command-crosswalk).

Lead articulation (velocity, legato, late vibrato, drop-off) › Scream Tracker 3 / Impulse Tracker #

Necros's worked example (E minor run; ST3 letters, identical in IT/OpenMPT; source: s-tw012-advanced-tracking-tips):

  1. Velocity in the volume column — ramp a run up to its held peak and back: E-4 40 · G-4 40 · A-4 50 · B-4 60 · E-5 64 … G-5 60 · F#5 50 · B-4 40 · C-5 40 → 50 → 64 · A-4 50. Multiples of 10 are quick to type; the volume column, not D20, so the effect column stays free.
  2. Legato with tone portamento so the sample is not restarted: GF0 for any jump over three semitones ("practically instant"), G20/G06 for a slow slide over a small step, and a GF0 on the row after a slow slide to guarantee it lands, "since some players tend to play Gxx/3xx effects too slowly" (pitch-slide-and-portamento).
  3. Late vibrato on the held notes only: HA1 a row or two after the note, then HA2, never the main event except in hard up-tempo tunes; fade it back or fade the note (vibrato).
  4. Echo track: copy the lead column, ALT-J its volumes down to a third at most (22 from 64), shift it 2–3 rows at speed 6 (4–6 at speed 3), pan it the same distance on the other side of the lead (fake-echo, stereo-panning).
  5. Drop-off ("made infamous by Purple Motion and other siner junkies"): slide up into the top note, sustain it with vibrato, and at the very end fall away with an accelerating down-slide and falling volume:
rownote / vol / cmdwhat happens
0B-4 01 50approach note
1C-5 01 64 G05the big note, sliding up into it
2GF0make sure it arrives
3HA1vibrato in
4HA2deeper
5H00continue
6HA1lessen
750 E04slow fall starts
830 E06faster, quieter
910 E10fast fall, nearly silent
A00kill

Catspaw's version of the same shape mixes volume-column values with K/H/E commands (C#6 02 33 UC3K2044 H82K0132 H7120 E0E; source: s-tw058-the-finishing-touches; see volume-slides). The cheapest cousin of the drop-off is vegas's release tip of 1996: "Dont use a ^^^ to kill a note in the lead, just drop the volume to 10, 15, or 20 and volume slide the rest away. It leaves a reverb-ish effect thats really good on flutes, piano's and violins" — no pitch fall, just a volume-column 1020 on the release row and a D0x slide to silence (source: s-tw062-interview-vegas).

Staccato and grace notes (Dan Hartrell's funk sax run, source: s-tw021-tracking-tips): D0F on a note and the row after it for "4 staccato" notes, G90 on each note of a phrase for a "wavey" pipe-or-reed sound, SD1 (note delay) to turn a note into a grace note that slips into the next, and alternating A05/A08 speeds so the run swings (shuffle-funktempo). Greg Heo's definition: a note cut SCx after x ticks is staccato, the absence of it legato (source: s-tw074-intro-to-musical-theory).

OPL / AdLib FM instruments in trackers › Scream Tracker 3 #

Press A in the instrument list's sample-type column, then Space on Parameters to edit the FM registers; FM voices live on channels A1–A9 (Sound Blaster only — a GUS can still play the samples at the same time); 1 in the pattern editor enters the AdLib note-off; rip the FM sounds from Skaven's example S3M to learn ("they can be saved as normal samples") (source: s-st3-manual). The instrument record packs the OPL registers per operator (multiplier, envelope scaling, sustain, vibrato/tremolo flags, level, attack/decay, sustain/release, waveform, feedback and mode) and carries a C2Spd that scales the note frequency sent to the chip; instrument types distinguish melody, bass drum, snare, tom, cymbal and hi-hat (source: s-st3-tech-doc).

Retrigger and resync › Impulse Tracker / Scream Tracker 3 #

Qxy replays the sample every y frames with a volume change x per hit: 0 none · 1–5 = −1, −2, −4, −8, −16 · 6 = ×⅔ · 7 = ×½ · 8 none · 9–D = +1, +2, +4, +8, +16 · E = ×1½ · F = ×2 (source: s-it-manual). Catspaw's frame arithmetic: at speed 6, Q03 hits again exactly halfway through the row, Q02 gives three hits, Q04 a lopsided pair; avoid odd speeds (5, 7, 9) because no retrig can land on the half-row — get the feel with tempo instead. vegas's tip of 1996 is the same arithmetic from the other side: "Use EVEN speed values like 2, 4, or 6, to make your retrigs sound smoother" — Qxy intervals that divide a speed-6 row evenly (source: s-tw062-interview-vegas). Recipes: ride cymbal Q43 (32 → 24), a snare roll Q53 then Q43 on consecutive rows, and the tom "thwump" QC2 from volume 04 rising by 8 per hit (source: s-tw058-the-finishing-touches). Q00 reuses the last value (volume-slides). ST3's manual gives the same table (with 8 marked "?") and the worked examples Q72 at speed 8 = 64, 32, 16, 8 and QC2 at speed 6 = 12, 20, 28 (source: s-st3-manual). ProTracker's E9x retrigs every x ticks — "If you retrig with 1 in speed 6 that note will be trigged 6 times in one note slot. Retrig on hi-hats!" — and FT2 keeps E9x and adds Rxy with the volume table, which OpenMPT calls "very buggy" (a volume command in the same cell skips ticks) (sources: s-protracker-23d-help, s-ft2-manual, s-openmpt-manual-compatible-playback). IT-compatible players refuse to retrigger a channel that has already stopped, so a very short hi-hat sample needs a silent loop at its end (source: s-openmpt-manual-compatible-playback).

Song initialisation and looping › ST3 / Impulse Tracker #

Put a silent dummy pattern first in the order list:

 1 | ^^^ .. .. X3C | ^^^ .. .. X40 | ^^^ .. .. T7D | ^^^ .. .. A06 |
 2 | ... .. .. C00 | ... .. .. .00 | ... .. .. X44 | ... .. .. X40 |

^^^ cuts anything still ringing from the previous loop, Xxx sets each channel's pan (works in S3M too), T7D/A06 set tempo 125 and speed 6, C00 breaks to the real first pattern after a fraction of a second. If you fade the global volume out at the end, reset it here too (volume-slides). At the end, put C00 on the same row as the final AFF so the pause lasts one slow row and the song restarts; give the Cubic player a row or two of AFF before the break because it stops on C00 immediately.

Jumps and breaks by format (sources: s-protracker-23d-help, s-ft2-manual, s-st3-manual, s-openmpt-manual-effect-reference, s-openmpt-manual-compatible-playback): ProTracker Bxx jumps to a hex position and "also perform[s] a pattern-break" — "you can use this command instead of restart as on Noisetracker"; Dxx breaks to a decimal line; F00 stops the song. FT2 Dxx takes a hex row (D16), and its E60 loop start has a bug: the next pattern begins on the loop row unless the pattern ends with D00. ST3 Bxx is hex, Cxx decimal, SB0/SBx loops never cross patterns. IT/OpenMPT: Bxx + Cxx on one row jump into the named pattern at the named row; a Bxx right of a terminating SBx cancels the loop. Song length in MOD is "one more than the last position" and NoiseTracker's restart byte is unused by ProTracker.