🎹 keyroll: land note-length from local/groove-editor onto godrum's sequencer
Feature-gap analysis of local/groove-editor (c0c3a98) vs current main showed godrum independently built almost everything the branch had — per-step velocity/chance/ratchet, euclid, swing/humanize, scale/root, Play-One stacks, Follow Actions. The one genuine, valuable gap was NOTE LENGTH (the "key-roll"): main's notes were all one-16th. Ported that natively; skipped the rest as either already-covered, a deliberate divergence (global scale, Play-One vs polyphony), or too invasive to land without regressing godrum (clip-length/polymeter would rewrite the fixed-16 architecture that migrateSeq/arranger/beat/commune assume). What landed (all back-compat; len defaults to 1 = one 16th, so old patches are unchanged except un-ratcheted sequenced notes now gate to their drawn length — which is the feature): - len[16] on seqFor/drumSeqFor + migrateSeq back-fill + two self-check guards - attachNoteLengths(): .seqnote overlay blocks with an ew-resize drag handle, used by the voice-inspector roll and the arranger grooves-tab roll; len is per-voice (shared across A/B/C clips) exactly like vel/chance/rat - playback: seqTick gates rat==1 notes to len*sixteenth; Synth.pluck gains an optional durMs (null = byte-for-byte the old natural decay); ratchets unchanged - MIDI: export emits length-scaled note-offs with a same-pitch overlap clamp; live midiPluck now tracks pending offs per (channel,pitch) so a held note retriggered on its own pitch ends cleanly instead of being cut by a stale off - grimoire + regenerated manual Verified: groove self-check passes (incl. len guards); an isolated harness confirms overlay render/drag/clamp at both grid sizes + Play-One stacks + the getter that keeps overlays in sync when the arranger swaps sq.steps per bar. The reference branch local/groove-editor is the only copy of this work and is deleted now that note-length is landed and pushed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
6aff223e02
commit
4f6a2a9634
156
viz/index.html
156
viz/index.html
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user