Phrase rows have one FX slot: a command letter plus a two-hex-digit value, written here as Xyy or Xxy. Table rows have two FX slots, but only the table-safe subset is available there.
Hex nibbles are named x and y: for Q31, x = 3 and y = 1.
For the MMC5 aux pulse feature on PU1 and PU2, see AUX Pulse Channels.
Phrase FX
- Axx - TABLE START/STOP (
00..1F, 20): Start table 00..1F on this track. A20 stops the current table. - Cxy - CHORD/ARPEGGIO (
x,y semitones): Offsets from the row note. Example: C37 alternates base, +3, +7. - Dxx - DELAY (
ticks): Hold the row note and instrument for xx ticks. Other row FX still apply immediately. D00=off. - Exy - VOLUME ENVELOPE (
x=volume, y=rate): Set volume to x, then run an envelope. y=1..7 falls, 9..F rises, 0 or 8 stops. - Fxx - FINE DETUNE / DMC SAMPLE WINDOW (
signed byte / frame): Pulse/triangle: override the track's fine detune. 01..7F raises pitch, 81..FF lowers it. F00 clears the runtime override to zero. On DMC,Fxxmoves/retriggers a sample window in 64-byte steps; see DMC Sample Window Commands. - Gxx - GROOVE SELECT (
0..F): Select groove pattern. - Hxy - HOP (
x=count, y=row): Jump to phrase/table row y. H0y is unconditional; x>0 limits repeats. - Kxx - KILL NOTE (
ticks): Stop the note after xx ticks. K00 kills immediately. - Lxx - LEGATO SLIDE / DMC LOOP LENGTH (
sub-frame steps): Legato slide to this row's note over xx steps without retriggering phase. On DMC,Lxxforces a looping sample window of lengthxx; see DMC Sample Window Commands. - Pxx - PITCH SLIDE (
signed byte): Curved pitch slide rate per sub-frame. 01..7F slides up; 80..FF slides down; P00=off. Pulse/triangle curve mode is set per instrument with PB CURVE: LIN = regular slide, LOG = snap curve with fast attack and slower nonzero tail. - Qxy - TRILL/OFFSET (
x=ticks, y=semitones): One-shot semitone trill/offset for x ticks. y=1..7 up, 8..F down (F=-1). Q00=off. - Rxy - RETRIGGER (
x=volume, y=interval): R00=off. Rx0 is a one-shot retrigger. y>0 repeats every y ticks. x=1..7 raises volume; 9..F lowers it. - Sxy - SWEEP/SHAPE (
shape/sweep): Pulse: hardware sweep. x=period 0..7. y=1..7 pitches up, 9..F pitches down. y=0 or 8 disables. Noise: x&1 toggles mode; y adjusts period: 0..7 = +0..+7, 8..F = -8..-1, clamped 0..15. Triangle and DMC ignore it. - Txx - TEMPO (
tempo byte): Set tempo. 28..FF = 40..255 BPM; 00..27 = 256..295 BPM. - Vxy - VIBRATO (
x=speed, y=depth): 4×/frame sub-frame vibrato on pulse/triangle.xselects speed from V0y slowest to VFy fastest.yselects depth: 0.125, 0.25, 0.375, 0.5, 0.75, 1, 1.5, 2, 2.5, 3, 3.5, 4, 5, 6, 7, or 8 semitones.V00toggles vibrato: start at the smallest depth when inactive, or stop and restore the current note period when active. OtherVx0values use the same 0.125-semitone depth. - Wxx - DUTY / DMC RATE (
channel value): Pulse: duty 0..3. Kit-based DMC: rate changes, 0..F. WAVE instruments use generated per-note rates and do not useWxxfor tuning. Triangle and noise ignore it. - Zxx - DMC BIAS (
00..7F): DMC direct-counter bias ($4011). Values are masked to 7 bits; other channels ignore it.
Table FX
Tables currently allow:
A, C, E, F, H, K, L, P, R, V, W
In tables, Lxx is DMC-only: it sets a looping DMC sample-window length from the current start. It does not perform legato on pitched tracks.
Notable omissions: D, G, Q, S, T and Z are phrase-only for now.
DMC Sample Window Commands
The DMC Fxx and Lxx commands can move and resize the active sample window. They are mainly useful with kit-based DMC sample playback, where phrase notes select raw sample slots. They are available from DMC phrase rows and from tables running on the DMC track, but phrase rows and table rows use slightly different reference points.
Phrase Fxx and Lxx
On the DMC phrase track, Fxx starts a sample later in 64-byte steps. With a DMC note on the same row, it offsets that sample. Without a note, it retargets the active DMC loop window: the loop flag and length stay as they are, the start address moves to the last DMC note slot's kit start plus xx * 64 bytes, and the sample retriggers. F00 is the normal sample start, F01 skips the first 64 bytes, and so on. If the offset would run past the selected sample or wrap the DMC address, Risa skips that trigger instead of spilling into another sample.
On the DMC phrase track, Lxx forces looping and sets the DMC length to xx. If the row has the same DMC note slot that is already current, or has no note, it keeps the current start point. If the row has a different DMC note slot, it starts from that sample's kit start. This lets Fxx choose a frame and later Lxx resize the loop window around that frame.
Table Fxx and Lxx
When a table is running on the DMC track, Fxx retriggers the current DMC sample and advances from the current DMC start point in 64-byte steps: F00 retriggers without moving, F01 moves 64 bytes later, F02 moves 128 bytes later, and so on.
Table Lxx forces looping and sets the DMC length from the current start to xx. Later table Fxx rows keep that loop length while moving the start forward. Without a shorter Lxx loop window, table Fxx shortens the DMC length as it moves so the window still ends at the selected sample's end.
If the relative move or loop length would run past the selected sample or wrap the DMC address, Risa skips that trigger and leaves the current DMC window unchanged. DMC sample-window Fxx and Lxx behavior only applies on the DMC track; on pitched tracks, table Fxx remains fine detune.
Other useful kit-DMC table commands include Wxx for rate changes, Rxx for retrigger setup, and table flow commands such as Axx, Hxx, and Kxx.
Instrument FX Defaults
Pulse instruments have a SWEEP parameter that uses the same value encoding as phrase Sxy:
- high nibble = sweep period
0..7 - low nibble
1..7= pitch up - low nibble
9..F= pitch down - low nibble
0or8= disabled
This is the instrument's default hardware sweep state. A phrase Sxy command overrides the live state until another instrument is applied.
Pulse instruments have a contextual PITCH parameter. Triangle instruments have a FINE parameter. For triangle, and for pulse modes where PITCH is used as parent fine pitch, the value is a signed byte:
00= no detune.01..7F= detune up byvalue / 32semitones.81..FF= detune down by the two's-complement value / 32 semitones.
The phrase Fxx command overrides the running fine value for that track until another Fxx is hit or a new instrument is applied.
For pulse AUX=INT and AUX=ECHO, the instrument field is repurposed for aux interval or echo delay instead of parent fine pitch. See AUX Pulse Channels for those mode-specific meanings.
Pulse, Triangle, and Noise instruments have a CMD RATE parameter (0..F). This is a per-instrument tick divider for tick-based FX:
0= every tick (default, current behavior)1= every 2nd tick (half speed)F= every 16th tick
Affected FX: arpeggio (C) and envelope (E) are slowed by the divider.
Unaffected FX: commands that explicitly specify a count or run from a fixed-rate path are not slowed:
L(legato slide runs at the fixed 4×/frame sub-frame IRQ rate)R(retrigger interval)Q(trill duration)K(kill countdown)D(delay ticks)- Table speed (has its own
T.SPDparameter) V(vibrato runs at the fixed 4×/frame sub-frame IRQ rate)P(pitch slide runs on the fixed 4×/frame sub-frame path with a curved speed table)
Triangle LENGTH
Triangle instruments use LENGTH as the 7-bit linear counter reload value written to $4008. Its value also selects the triangle control mode:
00-7E= decay; each note trigger lets the linear counter count down at the APU frame-counter rate.7F= sustain/default; the linear counter is continually reloaded.
Channel Notes
- Pulse 1 and Pulse 2 support duty, pitch, vibrato, arpeggio, retrigger, kill, envelope, trill, and sweep.
- Triangle supports pitch, vibrato, arpeggio, legato, retrigger timing, kill, and trill, but has no volume envelope.
- Noise uses note values as
mode + period_index; pitch-like FX operate on that encoded noise note where implemented. - Kit-based DMC instruments are sample-based.
Wxxsets rate,Zxxsets direct-counter bias, andFxx/Lxxcontrol the DMC sample window. Pitch, vibrato, arpeggio, and volume-envelope commands do not apply to kit samples. - WAVE instruments use the DMC path too, but their phrase notes are melodic pitches, can follow transpose, and keep their generated rate instead of using
Wxx. Pulse/triangle pitch FX do not bend WAVE playback.