Phase 7: Add MIDI clips, instrument and piano roll
This commit is contained in:
parent
8a37090b81
commit
cacc086805
38 changed files with 1373 additions and 74 deletions
16
docs/decisions/0006-midi-instrument-and-notes.md
Normal file
16
docs/decisions/0006-midi-instrument-and-notes.md
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# 0006 — Bounded MIDI notes and internal instrument
|
||||
|
||||
Status: accepted, Phase 7.
|
||||
|
||||
Use the existing JACK backend for timestamped MIDI input, avoiding another
|
||||
backend/dependency. Store source-relative notes in the C project and v3 format;
|
||||
read v1/v2 without MIDI. Prepare sample spans on the control thread and render
|
||||
a small sine instrument into its own graph source buffer. Use a piano roll to
|
||||
meet draw/play/save/reopen acceptance before adding MIDI capture or SMF import.
|
||||
|
||||
Keep explicit bounds: 4096 project notes, 32 overlapping scheduled notes, 32 live
|
||||
voices and 256 events/block. Reject scheduled overcapacity at preparation; steal
|
||||
oldest live voices. Panic handles event loss, disconnects and callback failures;
|
||||
Stop/seek resets live state. Immediate note-off and a fixed sine voice keep this
|
||||
prototype small, at the cost of possible clicks and no expressive controllers.
|
||||
See ../MIDI.md for ownership, detailed limits and validation.
|
||||
Loading…
Add table
Add a link
Reference in a new issue