v0.7.0 — Live performance macros
Highlights
The biggest addition since v0.6.0: a full Macros panel for live performance tricks, plus presets, dynamic ring resize, and a complete UX polish pass for public release.
Macros Panel (new)
A toggle next to FX reveals 20 live-performance tricks in five groups. Macros queue serially — tap while another is running and yours gets added to a FIFO with a badge showing queue depth.
Mute (6) — Drop · Breakdown · Solo Drums · Cut · Beat Repeat · Double Drop
FX (7) — Sweep LP · Sweep HP · Reverb Wash · Delay Throw · Riser · Bit Crush · Phaser Drone
Pitch (4) — Octave Up · Octave Down · Pitch Bend · Vinyl Brake
Tempo (2) — Half Time · Tape Stop
One-Shot (4) — Airhorn · Laser · Subdrop · Booj (the cinematic trailer bass drop from 20k.org)
Each one-shot has its own hit count (stutter 1-5 times at 16th-note spacing) and pitch dropdown (-12 to +12 semitones). Mute macros inject transient control nets that fire a tick-locked restore — they run inside the Petri-net engine, not a main-thread timer.
MIDI Pad + CC Learn
Hover a macro button and press any MIDI pad to bind. Hover a slider and turn a CC knob to bind. Both persist for the session.
Per-track Preset Manager (★)
Save the full mixer panel (vol, pan, filters, decay) per channel, restore later. Scoped so drum presets apply to any drum track.
Dynamic Ring Size / Hits
Two dropdowns per track (2–32) live-regenerate the Petri subnet and swap it in at the next bar boundary. Works for Euclidean drums, Markov melodies, walking bass, call/response, euclidean arp, and ghost-note hihat.
Master Pitch
New pitch slider in the FX panel — ±12 semitones via a master PitchShift between distortion and compressor.
Performance + polish
- Audio audit with
Tone.Meterconfirmed every macro restores FX state to baseline cleanly fx-sweep/fx-holdthrottle their engine dispatch to 120 ms so rapid rAF updates don't cancel Tone.jsrampTosmoothing mid-ramp- FX input
_fxPendingis aMapkeyed by fxKey so multi-op macros (Reverb Wash, Delay Throw, Riser, etc.) don't silently drop co-dispatched values tempo-sweepthrottles tempo updates to 80 ms so the worker'ssetIntervaldoesn't thrash- Macro control nets auto-prune from
project.netsthe tick their terminal transition fires - Help modal rewritten from scratch: 10 sections cover every new feature
- README and CLAUDE.md updated; JSON-LD schema extended with the new generator recipe fields
Full diff: v0.6.0...v0.7.0