In a pattern, a command is stored as a number from 1 to 26: 1 is A, 2 is B and so on to 26 for Z, with one byte of value. The list below follows ITTECH.TXT and OpenMPT’s effect reference. ITTECH.TXT’s own text for some effects is incomplete; where that is so, OpenMPT’s description stands.
Effect commands
| Letter | Number | Parameter | Effect |
|---|---|---|---|
| A | 1 | xx | Set speed: ticks per row, when xx is not 0. |
| B | 2 | xx | Jump to order xx, at row 0. |
| C | 3 | xx | Break to row xx (hexadecimal) of the next pattern. |
| D | 4 | xy | Volume slide. D0y slides down each non-row tick, Dx0 up; DFy is a fine slide down and DxF fine up on the row. 0 uses the last value. |
| E | 5 | xx | Pitch slide down. Exx is 4 × xx in linear units; EFx is fine, EEx extra fine. |
| F | 6 | xx | Pitch slide up, with the same forms as E. |
| G | 7 | xx | Portamento to note. |
| H | 8 | xy | Vibrato: speed 4x, depth 4y (doubled with Old Effects). Shares memory with U. |
| I | 9 | xy | Tremor: on for x ticks, off for y. With Old Effects each is one more. |
| J | 10 | xy | Arpeggio. |
| K | 11 | xy | Volume slide and vibrato (H00 + Dxy). |
| L | 12 | xy | Volume slide and portamento (G00 + Dxy). |
| M | 13 | xx | Set channel volume, 00 to 40. |
| N | 14 | xy | Channel volume slide, same forms as D. |
| O | 15 | xx | Sample offset: xx × 100h samples, doubled for 16-bit. Past the end it is ignored, unless Old Effects is on, when the sample plays from the end. |
| P | 16 | xy | Panning slide: P0y right, Px0 left, PFy and PxF fine. |
| Q | 17 | xy | Retrigger every y ticks, with a volume change given by x. |
| R | 18 | xy | Tremolo. |
| S | 19 | xy | Special commands below. |
| T | 20 | xx | Tempo: T0x decreases by x, T1x increases by x, 20h or more sets it. |
| U | 21 | xy | Fine vibrato: speed 4x, depth y. Shares memory with H. |
| V | 22 | xx | Set global volume, 00 to 80. |
| W | 23 | xy | Global volume slide, same forms as D, up to 128. |
| X | 24 | xx | Set panning, 00 left to FF right. |
| Y | 25 | xy | Panbrello. The waveform table is four times finer than vibrato’s; for a random waveform, x is a delay. |
| Z | 26 | xx | MIDI macro: run the macro chosen by SFx (values below 80h) or fixed macro xx (80h and above). See the MIDI macro block. |
OpenMPT also has a \xx smooth MIDI macro, stored as a command of its own.
It is a ModPlug extension and is not part of Impulse Tracker.
S sub-commands
| Command | Effect |
|---|---|
| S1x | Glissando control: S10 off, S11 on. |
| S2x | Set finetune (legacy). |
| S3x | Vibrato waveform. |
| S4x | Tremolo waveform. |
| S5x | Panbrello waveform. |
| S6x | Fine pattern delay: add x ticks to the row. |
| S7x | New note action and envelope control. |
| S8x | Set panning, 0 left to F right. |
| S9x | Sound control. |
| SAx | High offset for the O command. |
| SB0 | Set the loop start point for the pattern loop. |
| SBx | Loop back to the start point x times. |
| SCx | Note cut after x ticks. |
| SDx | Delay the note by x ticks. |
| SEx | Pattern delay: repeat the row x times. |
| SFx | Set the active macro for Z00 to Z7F. |
S0x is unused in Impulse Tracker; the sources give it no meaning here.
S7x commands
| Command | Effect |
|---|---|
| S70 | Past notes: cut them. |
| S71 | Past notes: note off. |
| S72 | Past notes: note fade. |
| S73 | New note action: note cut. |
| S74 | New note action: note continue. |
| S75 | New note action: note off. |
| S76 | New note action: note fade. |
| S77 | Volume envelope off. |
| S78 | Volume envelope on. |
| S79 | Panning envelope off. |
| S7A | Panning envelope on. |
| S7B | Pitch or filter envelope off. |
| S7C | Pitch or filter envelope on. |
S9x commands
| Command | Effect | Origin |
|---|---|---|
| S90 | Surround off. | ModPlug |
| S91 | Surround on. | Impulse Tracker |
| S98, S99 | Reverb off, on. | ModPlug |
| S9A | Centre surround. | ModPlug |
| S9B | Quad surround. | ModPlug |
| S9C | Global filters. | ModPlug |
| S9D | Local filters. | ModPlug |
| S9E | Play forwards. | ModPlug |
| S9F | Play backwards. | ModPlug |
Parameter memory
- D, K and L reuse the last non-zero parameter of the channel.
- N reuses its own last parameter, per channel.
- E and F share one memory, and the volume column’s pitch slides use it too. G has its own memory unless Flags bit 5 links it to E and F. The volume column’s portamento uses G’s memory.
- H and U share vibrato memory, also used by the volume column’s vibrato.