feat(midi): strum chords with preserved note ends and undo (phase 99)

This commit is contained in:
Johannes Findeisen 2026-11-06 02:16:46 +01:00
commit bd0a63c06d
17 changed files with 172 additions and 5 deletions

View file

@ -82,3 +82,14 @@ adjacency, cross-track selections and MIDI clips reject without partial edits.
This is a linear tick-based crossfade using existing clip envelopes; it does
not move clips, create overlaps or offer equal-power curves. Discrete sample
endpoints retain the engine's existing one-sample boundary convention.
## Chord strumming
Select MIDI clips and use **Edit → MIDI tools → Strum chords...**. Enter spacing
in ticks (1–960) and direction (0 ascending, 1 descending). Notes sharing a source
onset and MIDI channel within each clip form a chord. Equal pitches use stable
note-ID order. Each successive note starts one spacing later, while its end,
pitch, velocity and channel remain unchanged. Single notes remain unchanged.
Any resulting zero/negative duration rejects the entire edit; Undo restores the
whole selection. This edits source notes, including notes hidden by clip trims.
It does not generate an arpeggiator or schedule live input.