Hello, and welcome! Thank you for trying Risa.
Guide version: Risa v2.0.0.
Risa follows the handheld tracker workflow established by LSDJ, and this guide assumes you're already familiar with it. If song, chain, phrase, instrument, table, groove, or hexadecimal editing concepts are new to you, start with the LSDJ manual:
https://www.littlesounddj.com/lsd/latest/documentation/LSDj_9_2_6.pdf
This guide focuses on what is different in Risa. It is not a replacement for the LSDJ manual or the full command reference.
If you encounter bugs or have suggestions for the software, please send an email to risa@laamaa.fi.
Happy tracking!
A note about save compatibility
Back up saves before upgrading Risa builds. Starting with v2.0.0, songs can use up to 0xFE phrases, so the save catalog region is 32 KB instead of the older 40 KB layout.
Very full older save catalogs may not fit into the current layout as-is. Export or delete songs before upgrading, then migrate or import the remaining material again.
Tracker Structure
The basic structure should feel familiar to LSDJ users:
- The song screen arranges chains over time.
- Chains arrange phrases.
- Phrases contain notes, instruments, and FX commands.
- Instruments define the sound used by notes.
- Tables provide per-tick modulation patterns.
- Grooves control row timing.
Risa is inspired by LSDJ, but it targets NES hardware and does not have every LSDJ feature. When behavior differs, trust Risa's on-screen behavior and the Risa-specific reference pages.
NES Channels
Risa's main tracks are NES APU channels:
PU1 Pulse 1
PU2 Pulse 2
TRI Triangle
NOI Noise
DMC DPCM sample playback
The pulse channels are the closest match to the Game Boy pulse channels. They are useful for leads, basses, chords, arps, and sharp percussion.
The triangle channel is a fixed-shape voice. It is often useful for bass and smooth melodic lines, but it does not have normal volume control like a Game Boy pulse or wave channel.
The noise channel is for drums, hats, snares, texture, and noise tones. Its pitch and mode behavior are NES-specific and vary between console regions.
The DMC channel can play kit-based DPCM samples or melodic WAVE instruments. DMC instruments select samples from the built-in or patched DPCM kits, and phrase notes choose which sample slot to trigger. WAVE instruments use built-in generated DPCM wave banks, so phrase notes behave as pitches instead.
The channels of the NES mixer are not perfectly independent in level, and DMC playback can change how the triangle and noise feel in the mix.
MMC5 Aux Pulses
Risa can also use two MMC5 expansion pulse channels:
PU1can drive an auxiliary pulse attached to pulse 1.PU2can drive an auxiliary pulse attached to pulse 2.
These are not full extra tracker tracks. They share their parent pulse track's timing, instrument context, and mute state, and they do not have their own tables or FX. Aux notes are row-triggered snapshots rather than independent sequencer lanes; for example, ECHO keeps the delayed note from following later parent pitch or table changes. They are best used for detuned doubles, intervals, echoes, and simple second-note events.
See AUX Pulse Channels for more details.
Navigation and Playback
Common LSDJ-style navigation still applies:
SELECT + RIGHT Drill into the thing under the cursor
SELECT + LEFT Drill back out
SELECT + DOWN Open the groove screen from most tracker screens
SELECT + UP Open settings from song or chain
START Play or stop from the current context
SELECT + START Start song playback from the current song row context
B + LEFT/RIGHT Move across tracks or related chains
B + UP/DOWN Page or move between related rows where supported
The exact target of drill-in depends on the current screen and cursor position. For example, song drills into a chain, chain drills into a phrase, phrase can drill into an instrument, and an Axx table command can drill into the referenced table.
Project Settings
Open project settings with SELECT+UP from the song or chain screen. This screen contains saved project settings and project actions:
TEMPO Default project tempo.
TRANS Global transpose.
THEME Color theme.
FONT UI font.
KEYREP D-pad repeat delay and rate.
PREVIEW Note preview while editing.
CLN SONG Clear unused chains and phrases.
CLN INST Clear or merge unused instruments and tables.
LD/SAVE Open load/save.
TEMPO normally edits 040..295 BPM. Editing upward past 295 with a fresh press selects 4X, which runs one sequencer tick on every sub-frame: exactly four ticks per video frame. Holding right/up to auto-repeat stops at 295; press again to enter 4X. Phrase Txx commands still use only the normal tempo-byte range.
TRANS changes the global transpose. Edits wrap through the byte range, and the live playback transpose is applied when A is released.
Editing, Selection, and Cut
Basic value editing shortcuts:
A Place or audition a value, depending on the cell
A + D-pad Edit the value under the cursor
A + B Clear the current cell
SELECT + A Paste when the clipboard matches the current screen
On phrase note cells, A+B on an empty cell inserts OFF instead of clearing. OFF is a note-off event: when playback reaches it, Risa cancels any pending delayed note, stops the current table, and silences the channel. On PU1/PU2, it also stops the matching MMC5 aux pulse. Press A+B on an OFF cell again to clear it back to empty. The same toggle applies to the AUX note column when it is visible.
Region selection:
SELECT + B Start selection, or cycle the selection extent
D-pad Extend the selection
B release Copy the selected region
A + B Cut the selected region
SELECT Cancel an already active selection
The important LSDJ difference is cut: Risa cuts a selected region with A+B, not LSDJ's usual CUT shortcut. This keeps cut tied to the same clear/cut gesture used for a single cell.
Selection extent cycles by screen. On song, SELECT+B cycles from a rectangle to full selected row or rows, then exits. On phrase, chain, groove, and table screens, it cycles rectangle, full column, whole visible/editable area, then exits.
Cloning and Deep Cloning
Risa cloning uses a two-step gesture:
SELECT + B Arm clone on a cloneable cell
SELECT + A Clone
SELECT + A again Deep clone the new chain, on the song screen only
Cloneable cells include:
- Song screen chain cells.
- Chain screen phrase cells.
- Phrase screen instrument cells.
- Instrument screen table fields.
If a clone is armed, SELECT+A clones instead of pasting and changes the current cell to use the new copy.
On the song screen, cloning a chain first creates a new chain that still points at the original phrases. Press SELECT+A again there to deep-clone the new chain's phrases too, making the copied song section independent before editing.
Commands and Tables
Risa uses familiar tracker command ideas, but command meanings are Risa-specific. Phrase rows have one FX slot. Table rows have two FX slots, but only commands that make sense inside a table are available there.
See FX Commands for the command reference.
DMC Instrument Settings
DMC instruments are sample instruments. Their parameters do not behave like pulse, triangle, or noise synth parameters:
RATE Playback rate index, 0..F.
LOAD Initial DMC output counter / DC bias, 00..7F.
LOOP OFF, ON, or KIT.
KIT DPCM kit used by this instrument.
TABLE Instrument table, or `--`.
T.SPD Table speed.
RATE sets the DMC playback rate. If it is 0, Risa uses the selected kit sample's stored default rate when the sample is triggered. A phrase Wxx command can change the live DMC rate.
LOAD sets the DMC output counter ($4011) when the sample is triggered. In tracker terms, it is the starting DC bias: it can affect loudness, triangle/noise mix interaction, and clicks. Phrase Zxx changes the live bias immediately; a later DMC row with an instrument value applies that instrument's LOAD before triggering the sample.
LOOP controls sample looping. OFF forces one-shot playback, ON forces looping, and KIT follows the loop flag stored in the selected kit sample.
KIT selects which DPCM kit this instrument uses. DMC phrase notes select sample slots inside that kit. Available samples depend on the ROM, and kit sample slots are not shifted by phrase or global transpose.
TABLE binds a table to the DMC instrument, or -- for none. T.SPD sets how quickly it advances. DMC tables are useful for rate changes, retriggers, and sample-window movement; see DMC Sample Window Commands for Fxx and Lxx.
WAVE Instrument Settings
WAVE instruments are melodic DMC-backed instruments for the DMC track. They use the same NES DMC playback hardware as sample kits, but with generated looped waveforms built into the ROM. In phrase rows, WAVE notes are pitches, not kit sample slots.
LOAD Initial DMC output counter / DC bias, 00..7F.
LOOP OFF, ON, or KIT.
SOUND Wave sound, 1 or 2.
TABLE Instrument table, or `--`.
T.SPD Table speed.
LOAD sets the DMC output counter ($4011) when the WAVE note is triggered. It can change the starting bias and click character of the note. A phrase Zxx command can still change the live DMC bias.
LOOP controls whether the generated wave playback loops. WAVE is intended for looped melodic playback, so ON is the normal setting.
SOUND selects the built-in wave family. 1 is the rounded organ-like sound. 2 is the brighter saw/stair sound. The second sound has a one-shot plucked startup character, but the loop itself stays steady.
WAVE does not have a RATE field. Risa chooses the DMC playback rate and sample length from generated per-note metadata, and the phrase note controls pitch. Unlike kit-based DMC sample slots, WAVE notes follow phrase transpose and project TRANS.
Pitch FX that bend or modulate pulse/triangle notes do not retune WAVE playback. Use note values and transpose for WAVE pitch; Cxx, Fxx, Lxx, Pxx, and Vxx do not provide WAVE pitch modulation.
TABLE binds a table to the WAVE instrument, or -- for none. T.SPD sets how quickly it advances. WAVE runs through the DMC path, so DMC bias and retrigger behavior can affect it, but Wxx rate changes and sample-window commands are mainly for kit-style DMC sample playback.
Thanks
Johan Kotlinski, for creating the LSDJ tracker and perfecting the handheld tracker workflow
Special thanks to people who have helped with testing, bug reports, early music and moral support: Ess, Avrilcadabra, cTrix, DEFENSE MECHANISM, DJ Diskmachine, HangOnGetReady, Infu, Mikey303, Nullsleep, Perhaps Bry, Tommitytom
Thank you to everyone who helped shake out rough builds and make the tracker better!