midi-tone screen reference

Touch-first soft-synth / phrase / sequencer UI for the Raspberry Pi panel (800×480). Global nav is always along the top: HOME and POWER. While jamming, SYNTH · SEQ · PADS · KAOSS stay as shortcuts. Every other screen is a tile on HOME.

Global chrome

Always visible on every primary mode.

midi-toneApp title (not a button).
HOMELauncher tiles for every mode. Always in the top bar.
POWERShutdown / reboot, SCREEN OFF, and blanking-timeout cycle (kiosk-safe — no desktop power UI).
SYNTH / SEQ / PADS / KAOSSJam shortcuts — visible only while you are in those four modes.

HOME

Launcher for every mode. New screens get a tile here instead of another persistent tab.

HOME launcher tiles
00 — HOME
SYNTH / SEQ / PADS / KAOSSJam cluster. Those four also stay as top-bar shortcuts while you are in them.
SONGSPlay Standard MIDI Files locally and/or out USB→DIN; BPM and loop controls.
PRESETSEight named slots for a full session snapshot, plus FACTORY reset.
LOGScrolling MIDI / UI event log with CLEAR and panic.
SETSoftware update: show the running commit, CHECK GitHub, UPDATE & restart. Songs / presets / phrases stay.

SYNTH

Main performance surface: morphing wavetable voice, CRT scope, and transport / mode buttons.

SYNTH screen with CRT morph scope
01 — SYNTH (CRT morph scope shows three periods of the current wavetable blend)
CRT scopeLive picture of the current morph wavetable (tiled to three periods). Updates when morph / voice changes.
Morph captionShows endpoints and blend, e.g. Morph · sine → square 0%.
Last eventShort line for the latest UI / MIDI action (voice change, knob label, etc.).
Active notesWhich keyboard notes are currently held.
Knob readoutLive summary that follows the current knob focus — morph % · tone · Syn / Drm levels · bend · vib when editing the synth; drum macros in DRUM MODE; drive / delay / reverb in FX MODE or BUS FX.
ALL NOTES OFFPanic — silence all sounding notes immediately.
FULL VELToggle: force velocity 127 on note-ons (easier on a light touch), or use real velocity.
FX MODERemaps MPK knobs to the current insert FX target and opens a live FX readout panel. Highlighted when on.
BUS FXRemaps knobs to the global mix-bus FX (wet on the whole soft-synth mix) and opens the same FX panel.
◀ PREV / NEXT ▶Step morph-A voice; parks morph at pure A. Center label shows current pair / blend; tap it to open VOICES.
VOICESScrollable voice grid plus on-screen vibrato controls.
MORPHOverlay to set morph endpoints A/B (SWAP / DONE / CANCEL).
KITDrum pad grid; ALL DRUMS for kit FX; WAVE drills into a CRT one-shot scope.
DRUM MODEWhen on, knobs 1–4 edit drum macros (pitch / stretch / noise / tone) and knob 8 is drum bus level.

SEQ (Sequencer)

Free-timing overdub looper: record a backbone length, then stack layers of keys and drums.

SEQ sequencer screen
02 — SEQ
REC BACKBONE / OVERDUBFirst press starts recording the backbone; press again to lock loop length and begin playback. Later REC starts an overdub take.
PLAY / ■ STOPStart or stop sequencer playback (needs a backbone).
KEEPCommit the pending overdub layer into the stack.
DROPDiscard the pending overdub take.
UNDOPeel off the last committed layer.
LEN ×2 / LEN ÷2Double or half the loop length (within limits / existing layer constraints).
OVERDUB: WRAP / EXTENDWRAP loops within the current length; EXTEND can grow the cycle while overdubbing.
STOP ALLStop recording and playback.
CLEARWipe the sequence.
ALL NOTES OFFPanic.

PADS — EDIT

Build and fine-tune the 16 phrase pads (record into empty pads, set trigger / voice / channel / vibrato / volume).

PADS EDIT view
03 — PADS · EDIT
PLAY / EDITToggle views. EDIT allows recording into empty pads and shows detail controls.
Pad grid A1–B8Empty pad: tap to arm record. Filled pad: launch / select for editing. Green = playing, blue = clip ready, teal = selected, gray = empty, red = recording. Loop vs one-shot is the ↻ / ▶ mark, not the fill.
STOP RECFinish an in-progress pad recording.
MODEArm, then tap a pad to toggle that pad ONE-SHOT ↔ LOOP.
CLEARArm clear, then tap a pad to erase it.
STOP ALLStop all playing phrases.
OUTCycle phrase output: LOCAL / USB / BOTH (shares song USB port).
TRIGPer-selected-pad: one-shot vs loop trigger.
FOLLOW / LOCKPad follows the live global morph, or locks a voice snapshot (and related FX).
CHForce MIDI out channel or keep the recorded channel.
SYNTHEnable / mute local soft-synth for that pad.
VIBUse the vibrato baked at record time, or follow the live rig (VIB live).
VOL− / VOL+Per-pad gain trim (about 10% per tap).

PADS — PLAY

Performance grid: launch and stop clips without arming record.

PADS PLAY view
04 — PADS · PLAY
Pad gridTap filled pads to launch / toggle. Empty pads only select (no record in PLAY). Green = that clip is sounding; blue = ready. ↻ is LOOP, ▶ is one-shot.
STOP ALLStop every playing phrase.
OUTLOCAL / USB / BOTH routing for phrase MIDI.

KAOSS

XY touch pad in the Kaossilator / Kaoss Pad tradition — play scale notes on the onboard synth and/or send notes + factory CCs to a hardware synth.

KAOSS XY pad screen
14 — KAOSS (LED field + finger glow; L-shaped axes: X along the bottom, Y up the left)
XY padPress / slide / lift. An L-shaped legend marks the axes: X along the bottom (pitch on note programs), Y up the left (tone / morph / vibrato, or an FX pair). The surface is a cheap LED matrix (hue from X, glow + trail under the finger, tap ripples, BPM / GATE pulse). Grid lines mark scale degrees (roots are brighter).
PROG / SCALE / KEY / OCT / GATEEach opens a tap-to-pick grid (same idea as VOICES) instead of cycling. PROG picks a pad mapping — see Programs. SCALE / KEY / OCT lock the note grid. GATE arps note programs only.
HOLDFreeze the last XY after you lift — same idea as Kaossilator SHIFT+hold. On an FX program it also keeps the wet mix.
BPM − / +Gate arp tempo. Stay on the pad while you nudge.
FULL PADHide nav + buttons so the pad fills the panel. Hold the top HOLD TO EXIT rail (~0.7s) to come back.
KAOSS settings: SHOW ALL (full factory scales + programs), X/Y axis labels, GRID LINES 1–5 px, PAD VIZ (GLOW / CELLS), LOCAL / USB / BOTH, MIDI channel 1–16. Saved in settings.json.

Factory MIDI matches the original Kaoss Pad manual so a DIN synth can treat the Pi as a Kaoss controller: CC#12 = X, CC#13 = Y, CC#92 = pad touch. Playing while SEQ is recording captures the pad notes.

KAOSS programs

PROG is two families. Note programs play the scale on X (Kaossilator). FX programs do not start a note — they only move filter / morph / delay / reverb on whatever is already sounding (Kaoss Pad).

FILTER does not play notes. If you open FILTER and tap an empty pad, you hear silence — that is expected. Latch a sound first: pick LEAD, tap a note, turn HOLD on, lift, then pick FILTER. The note keeps ringing. X is the resonant low-pass (dark left → bright/open right, same Chamberlin LPF as the MPK tone knob, ~90 Hz–8 kHz, bypass when fully open). Y is a momentary morph between SYNTH A and SYNTH B (the pair from SYNTH → MORPH). Lift restores tone + morph unless HOLD stays on. Keyboard, SEQ, and phrase pads work the same way: play something, then FILTER sculpts it.

Note programs — X = scale pitch

LEADY = TONE. Play the scale. Y opens the low-pass (sticky — stays where you left it). Bottom of the pad is also quieter velocity.
MORPHY = MORPH. Play the scale. Y crossfades SYNTH A → B (sticky). Set the pair in SYNTH → MORPH.
VIBY = VIB. Play the scale. Y is vibrato depth. Lift restores the previous vibrato so it does not stick when you leave VIB.
LEVELY = LEVEL. Play the scale. Y is synth volume.
DECAYY = DECAY. Play the scale. Y is release time (how long the note rings after lift).
ATTACKY = ATTACK. Play the scale. Y is attack time (slow swell toward the top of the pad).
OCTAVEY = OCTAVE. Play the scale. Y adds up to two extra octaves on top of the X note.
GRITY = DRIVE. Play the scale. Y is saturation.
DELAYY = DLY MIX. Play the scale. Y is echo send.

FX programs — no pitch from the pad

Lift restores the previous mix unless HOLD is on. ⚙ SHOW ALL reveals RESO / WASH / CRUSH / SWEEP (and the extra note programs).

FILTERX = TONE (filter cutoff), Y = MORPH (voice blend, momentary). Use the HOLD recipe above — this is the KP-style filter pad, not a keyboard.
ECHOX = DLY T (~50–750 ms), Y = DLY MIX (how loud the repeats are).
DRIVEX = DRIVE (saturation), Y = REVERB (reverb send).
SPACEX = ECHO (delay mix), Y = REVERB (reverb mix) — wash without touching pitch.
RESOX = TONE, Y = FB (delay feedback) — resonant repeats.
WASHX = SIZE (reverb size), Y = REVERB (reverb mix).
CRUSHX = DRIVE, Y = TONE — distort and darken a held note.
SWEEPX = TONE, Y = DLY T — filter vs delay time.

KAOSS scales

Opened from KAOSS → SCALE. Same idea as VOICES: tap a full name instead of cycling three-letter Korg codes.

KAOSS scale picker grid
15 — KAOSS scales (SHOW ALL on — factory list with readable names)
Scale tilesPick the scale that locks X. Current scale is highlighted. Drag or use ▲ / ▼ to scroll the factory list.
CLOSEBack to the XY pad without changing scale. Turn on SHOW ALL from KAOSS ⚙ if you want the full factory list.

KAOSS full pad

Opened from KAOSS → FULL PAD once program / scale / key are set. The pad takes the whole 800×480 panel.

KAOSS full-pad play mode
16 — KAOSS full pad (HOLD TO EXIT rail at the top)
PadSame XY play as the settings view, just larger. LED field, axes, HOLD / gate still apply.
HOLD TO EXITPress and hold the top rail for about 0.7s. A tap or a slide off the rail cancels.

SONGS

Browse songs/ MIDI files, set tempo, play locally and/or to USB MIDI out.

SONGS screen
05 — SONGS
BPM − / + / −5 / +5Nudge playback tempo relative to the file.
Song list + ▲ / ▼Tap a .mid row to select; page with the chunky ▲ / ▼ buttons.
PLAY / STOPStart or stop song playback.
SAVE SEQExport the current sequencer arrangement into songs/ as a MIDI file.
DELETERemove the selected file from songs/.
OUTLOCAL / USB / BOTH — soft-synth and/or hardware DIN via USB MIDI adapter.
SONG LOOPRepeat the file when it ends.

Demo songs seed into songs/ on first launch if missing; they are not overwritten if you delete them.

PRESETS

Eight touch slots for a named full session (not just the synth patch).

PRESETS screen
06 — PRESETS
Slots 1–8Tap to select. Shows name plus a short tag (e.g. layer / pad counts, or session).
FACTORYHard-reset morph, tone, drums, levels, and FX to baked-in defaults (autosaved as the current session).
LOADRestore the selected slot (synth, sequencer, phrases, songs prefs, screensaver timeout, related UI state).
SAVEOpens a name pad, then writes the full session into the selected slot.
DELETEClear the selected slot file.

Autosave also keeps a separate settings.json session so a reboot returns where you left off.

LOG

Diagnostic event stream for MIDI and UI actions.

LOG screen
07 — LOG
Last eventSame short status line used on SYNTH (latest action).
Event listScrolling history of notes, mode changes, and other messages.
CLEAR LOGWipe the on-screen log.
ALL NOTES OFFPanic.

SET (Settings)

Opt-in software update from GitHub master. The instrument stays offline until you tap CHECK / UPDATE.

SET settings and update screen
13 — SET
Running / remoteLocal commit (from git or version.json) and, after CHECK, the tip of master.
CHECKAsk GitHub whether master is ahead. Does not install.
UPDATEIf behind: confirm, deploy the whole repo (kiosk + crates + presets + committed dist/armv7 engines into bin/), restart kiosk and any midi-engine / jambox-engine units. Second tap is INSTALL NOW.
TOKENStore a GitHub PAT on the box (private repo). Written to .update-credentials.

Same as SSH deploy: never overwrites settings.json, songs/, phrases/ (pad recordings), user-presets/, user-wavetables/, or presets/active.json. Does not cargo-build on the Pi — engines are the committed dist/armv7 binaries (rebuild with ./deploy/build-pi-bins.sh before pushing crate changes).

VOICES overlay

Opened from SYNTH → VOICES (or tapping the center voice label).

VOICES grid overlay
08 — VOICES
Voice tilesTap to pick morph-A (parks morph at pure A). Drag to scroll the grid on the capacitive panel.
VIB rowWHEEL / ON plus DEPTH −/+ and RATE −/+ — on-screen vibrato without the mod wheel.
SAVE AS…Bake the current morph / timbre into a new named wavetable under user-wavetables/.
CLOSEReturn to SYNTH.

MORPH overlay

Choose which two voices Knob 1 morphs between.

MORPH overlay
09 — MORPH
A / B side buttonsSelect which endpoint the next grid tap assigns (after A, B is armed automatically).
Voice gridAssign the chosen side; drag to scroll.
SWAPFlip A↔B and invert the blend so the sound stays put.
SAVE AS…Bake the current morph cycle to a new user wavetable.
DONEKeep the pair and return to SYNTH.
CANCELRestore the pair you walked in with.

Knob 1 blends A→B while you play. Opening MORPH turns off DRUM MODE / FX MODE / BUS FX so Knob 1 stays morph.

KIT overlay

Drum models for MPK pads, with an optional WAVE drill-down and FX targeting.

KIT drum explorer
10 — KIT (pad grid)
Pad / model buttonsSelect and audition which drum you’re editing.
ALL DRUMSPoint insert FX at the shared kit bus (one echo/drive for the whole kit).
WAVEFull-screen CRT scope for the selected one-shot; knobs reshape it live. BACK returns to the grid.
CLOSEReturn to SYNTH.

With FX MODE off, opening a kit pad turns on DRUM MODE so knobs 1–4 reshape the body. With FX MODE on, kit selection aims the insert FX target instead.

POWER

Kiosk-safe power and burn-in controls (no desktop session UI).

POWER confirmation screen
11 — POWER
BLANK …Header button cycles auto-blank timeout (1 / 3 / 10 min / off). Idle is touch-only — MIDI does not postpone blanking.
SCREEN OFFBlank the TFT now. Tap the panel to wake; playing MIDI will not.
SHUT DOWNPower the Pi off cleanly.
REBOOTRestart into the kiosk.
CANCELReturn to the previous mode.

SAVE AS…

Bake the current morph timbre into a new user wavetable.

SAVE AS voice dialog
12 — SAVE AS
Name field / keyboardEnter a name for the new single-cycle WAV under user-wavetables/.
SAVEWrite the baked wave (drive/tone folded in) plus a delay/reverb sidecar when present.
CANCELDismiss without writing.

MPK knobs (default mapping)

Factory MPC program (Prog Select → Pad 1). When FX MODE, BUS FX, and DRUM MODE are off:

Knob 1Morph A→B
Knob 2Tone / brightness (low-pass)
Knob 3Attack
Knob 4Release
Knob 5Vibrato depth
Knob 6Vibrato rate
Knob 7Reserved / free
Knob 8Synth bus level (drum bus level while DRUM MODE is on)

DRUM MODE remaps knobs 1–4 to pitch / stretch / noise / drum-tone. FX MODE / BUS FX remap knobs 1–6 to drive, delay time/feedback/mix, and reverb size/mix (and open the live FX panel). Pitch bend and the mod wheel still affect the voice as usual.