feat(midi): add device routing and bounded external note output (phase 101)
This commit is contained in:
parent
2a86d766ca
commit
75dee16b6a
9 changed files with 251 additions and 15 deletions
|
|
@ -13,3 +13,22 @@ All persistent preference fields are listed by the shared C schema and available
|
|||
in Preferences. Existing project tempo/controller maps remain project data;
|
||||
Preferences project defaults apply to New. No configuration I/O runs in an audio
|
||||
callback. Tests and screenshot captures use isolated configuration paths.
|
||||
|
||||
## MIDI backend
|
||||
|
||||
xtc exposes `midi_in` and `midi_out` JACK ports. The output sends scheduled MIDI
|
||||
clip notes from unmuted, solo-eligible tracks, retaining source channels and
|
||||
velocities, with clipped note boundaries and notes chased after seeks/loops.
|
||||
Tracks share one output; matching pitches/channels on different tracks can
|
||||
conflict on receiving devices. Audio faders, effects and bus processing do not
|
||||
alter external MIDI. MIDI CC automation, program changes, clock and SysEx output
|
||||
are outside this note-output workflow.
|
||||
|
||||
Input can filter a single channel, and output can preserve or force a channel.
|
||||
Optional thru forwards supported live notes, controllers and pitch bend while
|
||||
transport is active. Thru defaults off to avoid accidental feedback. Callback
|
||||
work and event buffers are bounded; overflow requests all-notes-off and increments
|
||||
the MIDI-drop counter. Panic and stop send CC123 on all channels. Immediate stop
|
||||
waits up to 100 ms for callback acknowledgement before deactivation; delivery
|
||||
cannot be guaranteed after server/device loss or to devices ignoring CC123.
|
||||
No device is connected unless a user chooses it or an external patchbay routes it.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue