Extend REAPER extension to read/write automation items, wire desktop app to it over UDP

extension-reaper-macos: split main.cpp into tracking.cpp (polls selected
envelope/automation items, reads/writes D_BASELINE) and socket.cpp (basic
UDP listener, non-blocking, drains all pending packets per tick). Nudging
now applies to every selected automation item across every track in the
project, not just the first one found.

app-desktop-macos: new "Extension" column (mirrors the OSC/Remote columns)
to enable/disable the UDP connection and point it at a host/port, plus a
log window. FocusFaderWidget gets an OSC/Ext output-mode toggle (mirrors
TransportWidget's MIDI/OSC toggle) so a fader can drive the extension
directly instead of/alongside OSC. Also renamed the Remote/Tablet buttons
for clarity and split their status indicator into its own column.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Paul Lipscomb
2026-07-16 19:13:34 -04:00
parent cd5ebd84d6
commit 7d4f8a4cd2
11 changed files with 786 additions and 57 deletions
+33 -6
View File
@@ -1,5 +1,5 @@
{
"__last_used__": "preset5",
"__last_used__": "preset2",
"presets": {
"preset1": {
"faders": [
@@ -938,7 +938,10 @@
"osc_listen_port": 9001,
"osc_send_port": 8000,
"osc_running": true,
"tablet_running": true
"tablet_running": true,
"extension_ip": "127.0.0.1",
"extension_port": 9124,
"extension_running": true
},
"focus_toggles": [
{
@@ -1257,7 +1260,7 @@
"value": 73,
"color": "Green",
"pickup": false,
"last_sent": 62,
"last_sent": 73,
"osc_addr_in": "/3/volume",
"osc_addr_out": "/3/volume",
"osc_addr_name": "/3/trackname",
@@ -1270,7 +1273,8 @@
"hw_channel": 16,
"hw_out_cc": 8,
"hw_out_ch": 16,
"touch_sense_mode": "jl_cooper"
"touch_sense_mode": "jl_cooper",
"output_mode": "osc"
},
{
"uid": "279a2c81-6548-422e-bf6d-75119c81b9c3",
@@ -1278,7 +1282,7 @@
"value": 65,
"color": "Gray",
"pickup": false,
"last_sent": 42,
"last_sent": 65,
"osc_addr_in": "/3/sendlevel1",
"osc_addr_out": "/3/sendlevel1",
"osc_addr_name": "/track/name",
@@ -1291,7 +1295,30 @@
"hw_channel": 16,
"hw_out_cc": 7,
"hw_out_ch": 16,
"touch_sense_mode": "jl_cooper"
"touch_sense_mode": "jl_cooper",
"output_mode": "osc"
},
{
"uid": "8de2c4e9-2f05-4a71-a610-d712ee69d1a1",
"label": "Envelope Adjust",
"value": 45,
"color": "Gray",
"pickup": false,
"last_sent": 45,
"osc_addr_in": "/track/volume",
"osc_addr_out": "/track/volume",
"osc_addr_name": "/track/name",
"zone": null,
"center_index": null,
"zone_index": null,
"hardware_enabled": false,
"feedback_enabled": false,
"hw_cc": null,
"hw_channel": null,
"hw_out_cc": 7,
"hw_out_ch": 1,
"touch_sense_mode": "off",
"output_mode": "ext"
}
]
}