macos: perc-kit waltz patterns + sustained notes + bachbeat demo
Wire the real artery-tui WALTZ_PATTERNS (classic/dark/baroque/phonk/
viennese/drill/dreamy/minimal) through notepat's percussion kit, plus
a bachbeat mode that plays the first N notes of Bach's Cello Suite
No. 1 Prelude over a steady 4/4 groove.
- scripts/waltz-seq.py: emits AC_INJECT_SEQUENCE from a chosen WALTZ
style + BPM + bars. Maps kick/snare/hat/hatOpen to the correct
perc-kit keys (left grid: c/d/g/a; right grid: h/i/l/m — via
NOTE_TO_KEY for +c/+d/+g/+a). With --melody on, interleaves a
4-bar minor-pentatonic groove on the OTHER grid with sustained
bass anchors (6 steps ≈ 750 ms at 120 bpm) and shorter arp holds.
- scripts/bachbeat-seq.py: parses MIDI_EVENTS from
artery/test-notepat-bach-prelude.mjs, converts note labels through
the same LABEL_TO_KEY map notepat uses, and lays them over a
simple kick/snare/hat beat on the other grid.
- main.c sequencer: AC_INJECT_SEQUENCE now accepts an optional third
field per entry (key,delay_ms,hold_ms). Non-zero hold queues the
keyup for later; tap-style events keep the existing two-field
form. Also added SDL mappings for pageup/pagedown/home/end/shift
so the kit-toggle + arrow-key volume mix works headlessly.
- demo.sh: new MODE=waltz|bachbeat|melody switch; KIT_MIXDOWN ticks
down perc-kit volume via arrowright+arrowdown×N after the kit
flip (default 3 = ~70%, stops drums overwhelming the melody);
auto-computes AC_HEADLESS_MS from the selected body length.
Demo recordings at ~/Desktop/ac-boot-shots/demo-<style>.mkv include
boot animation → prompt typing 'notepat' → jump → drum-kit switch
on right grid → volume mixdown → waltz or bachbeat over the pattern.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>