Phrase FX Commands
Two FX slots per step, each a three-letter command plus a hex parameter (00–FF) (see Tracker Basics if hex bytes, signed bytes, and nibble pairs aren't familiar yet). Most commands act on the channel's currently-playing voice, so they need a note somewhere on that channel to have anything to affect - either on the same row or an earlier one. On a Drum instrument, most of these are inert, as pads use a separate voice pool instead of the channel voice. Only VOL, PAN, SDA, SDB, RTG, and KIL reach Drum pads. For more information on this, see the Drum section of Instrument Engines.
| Command | Parameter | Description |
|---|---|---|
VOL |
xx |
Set voice volume (00 = silent, FF = full) |
PIT |
xx |
Pitch offset in semitones (signed byte: 80 = −128, FF = −1, 01 = +1) |
KIL |
xx |
Release the voice after xx ticks into the row. Only meaningful for xx less than the project's SPEED (ticks per row). Larger values never fire. |
HOP |
xx |
Jump to phrase row xx (wraps to the phrase length). Using HOP on a row also cancels that row's normal end-of-chain advance |
TPO |
xx |
Set the project's BPM directly from a hex value (78 = 120, A8 = 168). Values below 28 (40 decimal) are ignored. This permanently changes and saves the project's tempo, it isn't a temporary per-row override. |
RTG |
xx |
Retrigger the voice every xx ticks. 00 retriggers every tick; values at or beyond SPEED are clamped down to one retrigger per row. |
PAN |
xx |
Pan: 00 = hard left, 80 = centre, FF = hard right. |
SDA |
xx |
Set send level to reverb bus. |
SDB |
xx |
Set send level to delay bus. |
OFS |
xx |
Sampler only: start playback at xx/256 of the start..end region. The break-chopping command! |
REV |
— | Sampler only: play backwards from the current position. Stack after OFS to reverse from a specific point. |
SLC |
xx |
Sampler only: jump to slice point xx (0-based, works regardless of the instrument's SLCMOD setting). Playback ends at the next slice or the END marker. Combine with RTG + OFS to ratchet within a slice. |
ARP |
xy |
Arpeggio: cycles root → root+x → root+y → root → … as the row's ticks pass. x is the high nibble, y the low nibble, both unsigned 0–15. Set y=0 for a 2-note arp. Mutually exclusive with GLI on the same step. If both are present, GLI wins and ARP is ignored. |
PRB |
xx |
Probability gate: the whole step (note, OFF, HOP, TPO — everything on that row) only fires if a fresh roll lands below xx. 00 = never, FF = always, otherwise roughly xx/256 chance (80 ≈ 50%). Two PRB commands on one step roll independently and both must pass. |
GLI |
xx |
Glide / portamento: slide pitch from the previous note to this one over xx ticks. Smooth on Sampler, Sub, Wavetable, and Chip; pitch-quantised (semitone steps) on Macro, Multi, and Reso. |
MO1–MO4 |
xx |
Write xx to the parameter assigned to the matching MOD slot. See MOD Commands. |
CHD |
xx |
Play a paraphonic chord alongside the row's note. Up to 3 extra voices through the same instrument, sharing its filter and envelope. 00 = off (root only). See the chord table below. Works on every engine except Drum (including Sampler, which stacks extra pitched copies of the sample). |
CHD tones glide along with GLI when both are used together, and are stopped by choke and by CHOKE groups just like the main voice (but they don't count toward a choke group themselves).
Chord shapes (CHD parameter)
The parameter is a hex byte, not a decimal count, so shapes past the 9th
sit at 0A–10, not 10–16:
xx (hex) |
Name | Intervals from root |
|---|---|---|
01 |
MAJ | +4, +7 |
02 |
MIN | +3, +7 |
03 |
5TH | +7 |
04 |
MAJ7 | +4, +7, +11 |
05 |
MIN7 | +3, +7, +10 |
06 |
DOM7 | +4, +7, +10 |
07 |
SUS2 | +2, +7 |
08 |
SUS4 | +5, +7 |
09 |
AUG | +4, +8 |
0A |
DIM | +3, +6 |
0B |
DIM7 | +3, +6, +9 |
0C |
MMAJ7 | +3, +7, +11 |
0D |
MAJ6 | +4, +7, +9 |
0E |
MIN6 | +3, +7, +9 |
0F |
ADD9 | +4, +7, +14 |
10 |
MADD9 | +3, +7, +14 |
CHD is a row-level command; add it to every row where the chord should
play, same as ARP; a note without CHD on the following row releases the
previous chord's extra voices as usual.
Some cool FX command usage examples
Break-chopping a drum loop: on a Sampler with a breakbeat loaded, OFS 40 starts playback a quarter of the way into the region; stack RTG 04 on the same step to ratchet that starting point every 4 ticks for a classic chopped-break stutter.
Probability hats: put a hi-hat note on every 8th-note step with PRB A0 in FX1 — roughly 60% of hits play, giving a human, non-mechanical feel without hand-editing a pattern.
Arpeggiated chord: CHD 01 (major) on a synth note plus ARP 04 on the same step arpeggiates through root, root+4, root, root+4 while the chord's own extra voices ring underneath — a quick way to get a lot of movement out of one note.