feat(preferences): choose MIDI devices and persistent channel defaults (phase 102)

This commit is contained in:
Johannes Findeisen 2026-11-06 02:25:28 +01:00
commit e9d0c62fd6
9 changed files with 101 additions and 17 deletions

View file

@ -32,3 +32,20 @@ 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.
## MIDI preferences
Preferences → midi has editable dropdowns for a default input source and output
destination, plus a Refresh MIDI devices button. Names are enumerated from the
current JACK/PipeWire server, excluding xtc's own ports. Select None or clear a
field for no automatic connection. Typed offline names remain saved. Hardware
ports are visible only when the host exposes them through its MIDI bridge.
Input channel `-1` accepts all channels; `0..15` selects MIDI channel 1..16.
Output channel `-1` preserves note channels; `0..15` forces a channel. Thru defaults
off. Apply saves these choices; the next Play/Record restores the selected routes.
A missing port rejects that start and stops the backend, preserving the saved
choice for retry. Reconnect audio after server loss, then retry Play. Defaults
also apply when playback resumes after a loop edit. MIDI input/thru currently
requires active transport. Existing editing and project_defaults tabs contain
note length, velocity, channel, filters and new-project controller mappings.