Tracker
Make chiptune with the D-pad, the LSDJ way, with a few things borrowed from PICO-8.

Overview
Open Games → Tracker. A song is built like in LSDJ: the song is a list of rows, each row says which chain each channel plays, a chain is a list of phrases, and a phrase is 16 steps of notes. Sounds come from instruments, which can run a table with every note; the groove sets the swing, and waves are drawn by hand. From PICO-8 come its eight waveforms, an instrument on every step and a piano roll.
Songs save themselves a second after each change. While the tracker plays, your music pauses, and the visualizers and games react to the tracker instead.
Song modes: Game Boy and Free
Each song has a mode, set in the PROJ view:
- Game Boy: four channels, PU1, PU2 (pulse), WAV (wave) and NOI (noise), with the console's limits: pulse widths of 12.5, 25, 50 and 75 %, a volume envelope that steps at 64 Hz, PU1's frequency sweep, 32-sample 4-bit waves played at 100, 50 or 25 % volume, noise from a 15- or 7-bit register, and pitches rounded to the hardware's 11-bit periods. Instruments are pulse, wave or noise.
- Free: eight channels, CH1 to CH8, without those limits. Every instrument has an ADSR envelope, and there's a fourth type, synth, with sine, triangle, saw, square, organ, phantom and noise shapes.
Any instrument can go on any channel. Switching a song to Game Boy keeps what's on channels 5 to 8, it just doesn't play it.
Song, chains and phrases
- Song: up to 256 rows; each row has a chain number (or nothing) per channel.
- Chain (256 of them): up to 16 phrases in order, each with a transpose in semitones. The chain ends at its first empty slot.
- Phrase (256 of them): 16 steps. Each step has a note (C-0 to B-9, or OFF), an instrument, a volume (0 to F) and two commands (a letter and a hex value).
Each channel plays its own chain and moves on to the next row when it ends. A channel with no chain in a row rests until the channels that do have one move on, so rows stay lined up. A row with no chains at all rests for one phrase.
Time runs in ticks, 24 per beat. With the default groove each step lasts 6 ticks, a sixteenth note, so a phrase is one bar.
The eight views
The tabs at the top are a map, left to right: PROJ · SONG · CHAIN · PHRASE · INSTR · TABLE · GROOVE · WAVE. L1 and R1 move to the view next door. Moving right with R1 opens what's under the cursor:
| From | R1 opens |
|---|---|
| SONG | The chain in the cell |
| CHAIN | The phrase in the step |
| PHRASE | The step's instrument (or the last one above it) |
| INSTR | The instrument's table |
| GROOVE | The instrument's wave, if it's a wave instrument |
- PROJ: the song's name (A opens the keyboard), mode, tempo (40 to 300 BPM) and starting groove, plus the MIDI device and sync.
- SONG: rows × channels of chain numbers, with each channel's oscilloscope. The channel you pick here is the one chains and phrases play on.
- CHAIN, PHRASE, TABLE: 16-row grids.
- INSTR: a list of the instrument's settings.
- GROOVE, WAVE: see below.
On narrow screens the tabs shorten to PRJ, SNG, CHN, PHR, INS, TBL, GRV and WAV.
Editing
Every view edits the same way:
| Button | Does |
|---|---|
| D-pad | Move the cursor |
| Hold A + ↑/↓ | Change the value by one |
| Hold A + ←/→ | Change it by a lot: an octave for notes, 16 for numbers, 4 for volumes |
| A on an empty cell | Put the last value used |
| A A (twice, quickly) | Put a new, unused chain, phrase, instrument or table |
| A on a chain or phrase number | Open it (song and chain views) |
| B+A | Delete |
| B+←/→ | The previous / next chain, phrase, instrument, table, groove or wave |
| B+↑/↓ | Jump 16 rows (song view) |
| Y | Play or stop: the song from the cursor's row (PROJ, SONG), the chain looping (CHAIN), or the open phrase looping (the other views) |
| B+Y | Mute the channel you're working on |
| X | Phrase view: switch to the piano roll and back |
| Start | The tracker menu |
A note sounds as you write it, and A on a note plays it. Writing a note on a step without an instrument puts the last instrument used. Below C-0 comes OFF, which releases the note. Chains, phrases, instruments and tables are created the first time you edit them.
The Start menu has:
- Play the song from the start.
- Undo: each press of A is one step back, up to 64.
- Copy, Paste, Clone into a new one and Clear, for what the view shows (a chain, phrase, instrument, table, groove or wave). Cloning copies it to the first free number, and the song cell or chain step you came from switches to the copy.
- In the wave view, the eight PICO-8 shapes, to copy into the open wave.
- Songs: a new Game Boy or Free song, your saved songs and the examples.
- Export to the library (WAV), Export as XM and Export as MOD.
- Import… and Search online…: see Import and export.
- Delete this song and Back to games.
Hold FN for the controls of the view you're in.
Piano roll
Press X in the phrase view to see the phrase like PICO-8 does: steps across, pitches up and down, with each note lasting until the next one.
| Button | Does |
|---|---|
| ←/→ | Choose the step (the cursor jumps to that step's note) |
| ↑/↓ | Choose the pitch |
| A | Put the note, or remove it if it's already there |
| Hold A + ↑/↓ | Move the step's note up or down |
| B+A | Delete the step's note |
| X | Back to the step grid |
Instruments
Up to 64. A new song comes with a pulse, a wave and a noise instrument (and a synth in Free mode). What the INSTR view shows depends on the type and the mode:
| Setting | What it does |
|---|---|
| Name | A opens the keyboard |
| Type | Pulse, wave, noise, or synth (Free only). Changing it resets the instrument. |
| Volume | 0 to F; scales the step's volume |
| Envelope, Direction, Speed | Game Boy, except wave: start level (0–F), down / flat / up, and the speed (1–7: one level every speed/64 s; 0 holds the level) |
| Attack, Decay, Sustain, Release | Free: the ADSR envelope, in ticks (sustain is a level, 0–F) |
| Length | Ticks until the note is cut (--: no cut) |
| Table | The table that runs with every note (--: none) |
| Pan | L, LR or R |
| Transpose | Whether the chain's transpose affects it (turn it off for drums) |
| Vibrato | Speed and depth (high and low hex digit) |
| Duty | Pulse and synth square: 12.5, 25, 50 or 75 % |
| Sweep | Pulse, Game Boy: PU1's frequency sweep, as the console's NR10 register (time, direction, shift) |
| Wave | Wave instruments: which wave (00–FF) |
| Wave volume | Wave, Game Boy: 100, 50 or 25 %. The Game Boy wave channel has no envelope; its volume comes in four steps. |
| Short noise | Noise: the 7-bit register, more tonal and metallic |
| Shape | Synth: triangle, sine, saw, square, organ, phantom or noise |
Imported MOD and XM songs also have sample instruments: the module's recorded sounds, with their loops (forward or ping-pong). They show in the INSTR view with the common settings; changing their type turns them into a new instrument.
A noise instrument's note sets how fast the noise runs: low notes rumble, high ones hiss. A on a setting plays the last note with the instrument.
Tables
A table is 16 rows that run one per tick while the note sounds, starting with each note of an instrument that uses it (or from the A command). Each row has a volume (or nothing), a transpose in semitones from the note, and two commands. H in a table jumps to another row, which is how tables loop: three rows transposing 0, +4 and +7 with H00 on the last make a major arpeggio, and transposes falling fast with a short noise make a kick drum.
Grooves
A groove is a list of up to 16 numbers: how many ticks each step lasts, in turn. The default, 6/6, is straight; 7/5 or 8/4 swing. In the GROOVE view, A on the empty slot after the last number adds one, and B+A removes one; the title shows the swing. There are 32 grooves; PROJ sets the one the song starts with, and the G command switches one channel to another groove that exists.
Waves
256 waves of 32 samples from 0 to F, played by wave instruments. The first eight are PICO-8's: triangle, tilted saw, saw, square, pulse, organ, noise and phantom. In the WAVE view, ←/→ choose a sample, hold A + ↑/↓ to change it, and hold A + ←/→ to draw (the next sample takes this one's value). Start has the PICO-8 shapes to start from.
Commands reference
Each step and table row has two commands. A new note resets the ongoing ones (C, F, K, P, V, R, the fades and the drop).
| Command | Does |
|---|---|
Axx | Start table xx (AFF stops it) |
Cxy | Chord: cycles the note, +x and +y semitones every tick (C47 major, C37 minor) |
Dxx | Delay: the step plays xx ticks late (lost if that's longer than the step) |
Exy | Envelope: x is the start level; y's top bit means up, its low 3 bits the speed (0: holds) |
Fxx | Finetune, in hundredths of a semitone (signed: 01–7F up, 80–FF down) |
Gxx | Switch this channel to groove xx |
Hxx | Hop. In a phrase: end it after this step, and start the next one at step xx. In a table: jump to row xx. |
Ixx | Fade in over xx ticks |
Kxx | Kill: release the note after xx ticks |
Lxx | Slide: on a step with a note, glide to it over xx ticks instead of playing it again |
M0x | Master volume, 0 to F |
Oxx | Output: 0 off, 1 left, 2 right, 3 both |
Pxx | Pitch bend: hundredths of a semitone per tick (signed) |
Rxy | Retrigger the note every y ticks; x (signed, 0–7 up, 8–F down) changes the volume on each one |
Sxx | On noise: S01 short (7-bit) noise, S00 long. On pulse: the PU1 sweep register. |
Txx | Tempo, in BPM (28 to FF, that is 40 to 255) |
Uxx | Fade out over xx ticks |
Vxy | Vibrato: speed x, depth y |
Wxx | On a wave instrument: switch to wave xx. Otherwise: the pulse duty, 0 to 3. |
Xxx | Drop: the pitch falls and the note fades out over xx ticks |
Zxx | Random: adds 0 to xx to the other command's value |
Examples
Start → Songs has four examples, each showing something. Opening one saves nothing until you edit it.
- Pocket Pop (Game Boy, 120 BPM): parts as chains reused across the song, and chords with
C. - Crypt Crawl (Game Boy, 140 BPM): tables for the arpeggios and the kick, notes that glide with
Land fall withP, and a bass on PICO-8's tilted saw. - Night Drive (Free, 100 BPM): eight channels with synths, a 7/5 swing groove, panning, an echo made with
D, and a fade-out withU. - Amen Chip (Game Boy, 170 BPM): drum rolls with
R, late hits withD, a half phrase that hops into the next withH, a bass line transposed by its chain, and pulse widths changed withW.
Import and export
Export, from the Start menu. The files go to an audiofilus tracker folder in your music folder, and the library picks them up:
- Export to the library: the song rendered once to a WAV.
- Export as XM: a FastTracker 2 module that opens in OpenMPT, MilkyTracker and others (and plays in Audiofilus). Each instrument becomes a sample that sounds like it, with a volume envelope; the notes, chain transposes, tempo, grooves and the main commands (chord, pitch, slide, vibrato, kill, delay, retrigger, pan) carry over.
- Export as MOD: the same as a 4-channel ProTracker module. It can't hold channels 5 to 8 of a Free song.
Import… lists the songs it finds in your music folders and in the app's data/tracker/import folder (up to 300). Each import becomes a new song you can edit:
- MOD (ProTracker and compatibles, 4, 6 or 8 channels) and XM (FastTracker 2, the first 8 channels): a Free-mode song. Each pattern becomes phrases and chains, each sample a sample instrument, and the timing is exact.
- LSDJ: a
.lsdsngsong, or every song in a.sav. They map almost one to one, in Game Boy mode: song, chains, phrases, instruments, tables, grooves, waves and tempo.
Search online… looks for MOD and XM files on The Mod Archive and Modland; picking one downloads and imports it. The Modules screen can open them in the tracker too.
Not everything survives the trip: module effects without a tracker command (sample offset, pattern loops, tremolo, global volume) are dropped, an XM instrument keeps only the sample it plays at C-4, LSDJ's kits become short noise hits, and an exported module loses tables and the less common commands. Songs made with the earlier tracker open converted: each pattern becomes one phrase and one chain per channel, and its effects become commands (arpeggio → C, duty → W, bend → P).
MIDI
Plug a USB MIDI keyboard or controller into the handheld (through a USB-C adapter if needed) or the computer. It works on the Linux handhelds and desktops, Windows, and iPhone/iPad (USB or already-paired Bluetooth MIDI). The tracker finds it by itself, also when you plug it in with the app open, and connects to the first one.
- Notes: they play the last instrument used, on the channel you're working on. In the phrase view they're also written at the cursor, which moves to the next step: step recording.
- PROJ → MIDI: which device to use, or none.
- PROJ → Sync: who keeps time.
- Internal: the song's own tempo.
- Follow clock: the tracker follows the MIDI clock it receives. A drum machine, a DAW or LSDJ itself can start, stop and set the tempo. MIDI clock has 24 pulses per beat, the same as the tracker's ticks, so each pulse is one tick.
- Send clock: the tracker sends its clock (start, stop and the tempo) to the device, to keep other gear in time with it.
The clock arrives about one audio buffer late (50–100 ms), which only matters when you play along with something live.
