major session: transport lasso layout, MIDI learn wiring, note passthrough, log windows, lock preset, CC blocking

- transport widget restructured to two-group lasso layout (grp_learn + grp_cc) matching fader/toggle pattern
- fixed MIDI learn for transport (bind_hw_cc channel param) and preset browser (wired to check_and_start_midi_learn)
- transport HW routing now respects output_mode and trigger_mode; OSC mode fires on any value, MIDI momentary fires on any value
- preset browser on_hw_trigger fires on any value (0 or 127 both send 127 out)
- unbound CCs are dropped, no passthrough; notes (0x80/0x90) pass through freely to midi_out
- four MIDI/OSC log windows: OSC In, OSC Out, MIDI In, MIDI Out with formatted note/CC display
- midi_out_signal now carries message list for logging
- lock preset checkbox: always defaults to True on launch, not persisted
- transport cc_output_lbl always visible, content adapts to MIDI/OSC mode
- preset browser show/hide saves and restores correctly per preset
- CLAUDE.md added with full project architecture, conventions, and planned features

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Paul Lipscomb
2026-06-29 17:56:45 -04:00
parent 23bfc88f13
commit b68e5e3ac2
2 changed files with 198 additions and 14 deletions
+43 -14
View File
@@ -1,5 +1,5 @@
{
"__last_used__": "preset5",
"__last_used__": "preset3",
"presets": {
"preset1": {
"faders": [
@@ -143,14 +143,29 @@
}
],
"browser": {
"back_cc": 22,
"fwd_cc": 23
"back": {
"label": "Back",
"cc": 22,
"ch": 1,
"hw_cc": null,
"hw_channel": null,
"trigger_mode": "momentary"
},
"fwd": {
"label": "Fwd",
"cc": 23,
"ch": 1,
"hw_cc": null,
"hw_channel": null,
"trigger_mode": "momentary"
}
},
"preset_uuid": "f230a4fd-edc3-4c4b-8585-f73c82168fee",
"preset_uuid": "8cbceb6b-ba5d-4b2c-8989-f921e4e3150d",
"show_hide": {
"fader": false,
"toggle": false,
"transport": false
"transport": false,
"browser": false
}
},
"preset2": {
@@ -248,11 +263,11 @@
"trigger_mode": "momentary"
}
},
"preset_uuid": "e658b6bf-4bb7-4d68-bd8b-07775ee80c53",
"preset_uuid": "7483fb5b-f47f-49e4-bccb-e8d20195078c",
"show_hide": {
"fader": false,
"toggle": false,
"transport": true,
"transport": false,
"browser": true
}
},
@@ -268,14 +283,14 @@
{
"uid": "14ec66c2-6a0a-418e-9240-776cb13f6e2e",
"label": "Fader 1",
"cc": 1,
"ch": 1,
"value": 64,
"cc": 90,
"ch": 15,
"value": 85,
"color": "Gray",
"pickup": false,
"last_sent": 64,
"hw_cc": null,
"hw_channel": null,
"last_sent": 85,
"hw_cc": 67,
"hw_channel": 1,
"zone": null,
"center_index": null,
"zone_index": null
@@ -371,7 +386,21 @@
"zone_index": null
}
],
"toggles": [],
"toggles": [
{
"uid": "46f17f40-1bb2-4527-b6c5-fd26e535beed",
"label": "Toggle 1",
"cc": 20,
"ch": 1,
"state": false,
"color": "Gray",
"zone": null,
"center_index": null,
"zone_index": null,
"hw_cc": null,
"hw_channel": null
}
],
"browser": {
"back": {
"label": "Back",