Effect command crosswalk (MOD / XM ↔ S3M / IT)

The PC and Amiga trackers use two alphabets for the same jobs: protracker's numbers 0F (kept by fasttracker-2's xm-format, which adds letters) and scream-tracker-3's letters AZ (kept and extended by impulse-tracker and openmpt). Necros opened his 1995 tips column with a five-line chart — ST3 Axx/Txx = FT Fxx, Gxx = 3xx, Hxx = 4xx, Dxx = Axx, Oxx = 9xx — "since that seems to be the most popular tracker at the moment" (source: s-tw012-advanced-tracking-tips), and Greg Heo gave 4xy/3xx as the ProTracker versions of IT's Hxy/Gxx in 1997 (source: s-tw074-intro-to-musical-theory); this table does it for every command, from OpenMPT's effect reference and the four manuals (sources: s-openmpt-manual-effect-reference, s-protracker-23d-help, s-ft2-manual, s-st3-manual, s-it-manual).

Parameters are hexadecimal in the effect column everywhere; volume-column values are decimal in IT/OpenMPT. "—" = not in that format.

jobMOD (ProTracker)XM (FT2)S3M (ST3)IT / MPTM
arpeggio0xy0xyJxyJxy
pitch slide up / down1xx / 2xx1xx / 2xxFxx / ExxFxx / Exx
fine slide up / downE1x / E2xE1x / E2xFFx / EFxFFx / EFx
extra-fine slide up / downX1x / X2xFEx / EExFEx / EEx
tone portamento3xx3xx (vol col Mx)GxxGxx (vol col g0x)
glissando on / offE31 / E30E31 / E30S11 / S10S11 / S10
vibrato4xy4xy (vol col Vx, speed Sx)Hxy; fine UxyHxy; fine Uxy (vol col h0x)
vibrato waveformE4xE4xS3xS3x
tremolo / waveform7xy / E7x7xy / E7xRxy / S4xRxy / S4x
portamento + volume slide5xy5xyLxyLxy
vibrato + volume slide6xy6xyKxyKxy
tremorTxyIxyIxy
volumeCxxCxx (vol col 0040)volume column 0–64vol col vxx
volume slideAxyAxy (vol col +x/-x)DxyDxy (vol col c0x/d0x)
fine volume up / downEAx / EBxEAx / EBx (vol col Ux/Dx)DxF / DFyDxF / DFy (vol col a0x/b0x)
channel volume / slide— (Mxx/Nxy are extensions)Mxx / Nxy
global volume / slideGxx / HxyVxx (00–40)Vxx (00–80) / Wxy
panning(8xx, E8x unused)8xx; vol col PxS8x (0–F, GUS)Xxx (00–FF), S8x; vol col pxx
panning slidePxy (vol col Rx/Lx)— (Pxy extension)Pxy
panbrello— (Yxy extension)Yxy / waveform S5x
surroundXA4 (extension)S91
sample offset9xx9xxOxxOxx; high byte SAx; MPTM #xx, o0x
retriggerE9xE9x; Rxy with volumeQxyQxy
note cut / delayECx / EDxECx / EDxSCx / SDxSCx / SDx; MPTM :xy
key offKxx (and the key-off note)key-off note (AdLib)=== note off, ^^^ note cut
pattern delay (rows)EExEExSExSEx
fine pattern delay (ticks)(X6x hack)(S6x extension)S6x
pattern loopE60 / E6xE60 / E6xSB0 / SBxSB0 / SBx
position jumpBxxBxxBxxBxx
pattern breakDxx (row decimal)Dxx (row hex)Cxx (row decimal)Cxx (row hex)
speedFxx < 20Fxx < 20AxxAxx
tempoFxx ≥ 20Fxx ≥ 20TxxTxx; slide T0x / T1x
finetuneE5xE5xS2xS2x; MPTM +xx
Amiga filterE0x(E0x unimplemented)(S0x unimplemented)
invert loop / funk repeatEFx(SFx unimplemented)SFx = macro select
envelope positionLxx
NNA / past notes / envelopesS70S7C
filter / MIDI macro(Zxx hack)(Zxx extension)Zxx

Reading the table#

  • Where MOD/XM think in periods, S3M/IT slides use the same numbers but ST3's period unit is a quarter of the Amiga's, and IT/OpenMPT optionally use linear units (1/16 semitone per unit, 1/64 extra-fine) — a 1xx/Fxx value does not mean the same interval across formats (pitch-slide-and-portamento).
  • Volume slides scale with speed in every format (per tick except the first); ST3 3.00 and IT's D0F/DF0 slide on every tick (volume-slides).
  • Effect memory differs: IT recalls per command with 00, S3M recalls the last parameter of almost any command, MOD/XM only for 3, 4, 7, 9 and (XM) most others; XM has no volume-column memory.
  • Row numbers in pattern breaks are decimal in ProTracker and ST3, hexadecimal in FT2 and IT — the classic conversion mistake.

tracker · protracker · fasttracker-2 · scream-tracker-3 · impulse-tracker · openmpt · mod-format · xm-format · s3m-format · it-format

Sources#

s-openmpt-manual-effect-reference · s-protracker-23d-help · s-ft2-manual · s-st3-manual · s-it-manual · s-tw074-intro-to-musical-theory · s-tw012-advanced-tracking-tips

source file wiki/concepts/effect-command-crosswalk.md · graph