MIDI sequencer/arranger. Not a DAW. A MIDI brain.
Working: Drum sequencer (16 sounds, 32 steps, variable length), piano roll (note editing, playback), clip launcher, Launchpad X with LED feedback. Track-based architecture with per-track MIDI channels.
- Pattern selection per device (
</>to switch editing pattern) - Device reports pattern content (empty vs has data) for clip launcher display
- Undo/redo
- Multiple Launchpads (independent navigation)
- Mini Launchpad in TUI (with color zones)
- Pattern select on Launchpad (all devices)
- Launch patterns on devices
- Show playing vs queued
- Show empty vs has-content patterns
- Track-based with MIDI channel per track
- UI to change track channel/device/output (Settings device, press
,) - Scene launch (whole row at once)
- Stop clip on device
- Toggle steps
- Basic playback
- 1-32 steps per track (variable length,
[/]to adjust) - 16 sounds/notes per pattern
- Drum kit mapping (GM, RD-8, TR-8S, ER-1) - patterns store slot indices, kit maps to MIDI notes
- Velocity per step (data exists, no per-step UI yet)
- Clear track (
c) / clear pattern (C) - Launchpad layout (top: steps, bottom-left: track select, bottom-right: commands)
- Preview mode - audition sounds from track pads
- Record mode - record steps from MIDI input
- Nudge notes forward/backward (data structure exists)
- Copy/paste pattern
The piano roll is for editing notes you play in via MIDI keyboard - not for composing from scratch. Quick fixes: nudge timing, fix wrong notes, adjust velocity/length.
- Playback note events with timing and note-off
- Viewport-based rendering (center follows selection)
- Select notes with
hjkl, move withyuio(no mode toggle) - Note length with
n/m - Add/delete notes (
space/x) - Pattern length (
[/]) - Horizontal zoom (8 levels,
q/w) - Vertical zoom (smushed/spread,
a/s) - Edit sensitivity (coarse/fine,
d/fhoriz,e/rvert) - Overlap visualization (overlapping notes shown with
═) - Record from MIDI keyboard ← priority
- Quantize
- Stages with pitch, gate, probability
- Ratchets
- Slides
- Accumulators
- Play/stop
- Tempo control
- Tap tempo
- Note-off tracking (piano roll tracks held notes)
- Per-track MIDI channel output
- Multiple MIDI output ports (per-track routing in Settings)
- Channel mapping UI (Settings device)
- Project folders with timestamped saves (
~/.config/go-sequence/projects/) - Quick save (Shift+S)
- Save device for browsing/loading (Shift+D)
- Create/rename/delete projects and saves
Q- quit (Shift+Q)P- play/stop (Shift+P)+/-- tempo ±5 BPMS- quick save to current project (Shift+S)D- focus save device (Shift+D)0- focus session (clip launcher)1-8- focus device by track number,- focus settings
h/l- cursor left/rightj/k- select track up/downspace- toggle step[/]- track length -/+c- clear track</>- previous/next pattern (editing)
Launchpad commands (bottom-right 4x4):
- Preview toggle - audition sounds when tapping track pads
- Record toggle - write steps when tapping track pads during playback
- Clear track/pattern, length +/-
Select notes
hjkl- select notes (vim movement)
Move selected note
yuio- move note (vim movement, one row up)n/m- shorter/longer
Add/delete
space- add note at view centerx- delete selected note
View
q/w- zoom out/ina/s- smushed/spread (vertical)
Grid sensitivity
d/f- horizontal coarse/finee/r- vertical coarse/fine
Pattern
</>- previous/next pattern (editing)[/]- pattern length -/+c- clear pattern
h/l- cursor left/right (tracks)j/k- cursor up/down (patterns)space/enter- launch clip
h/l- move between columnsj/k- move between tracksenter- edit selected cellr- rescan MIDI devices
go run .Launchpad X: put in Programmer Mode (hold Session + bottom-right Scene button on startup).
- Chains: sequence of patterns that play in order
- Session device sees chains, not individual patterns
- Chain of length 1 = current behavior
- Allows song arrangement without duplicating pattern data