1
0
Fork 0
forked from hanez/xtc
xtc/docs/decisions/0006-midi-instrument-and-notes.md

16 lines
942 B
Markdown

# 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.