Repository navigation
v0.9.0 — Electra One MK2 first-class integration
Hardware-verified reconfigurable controller support. The Electra One MK2 is now a fully-tested driver (firmware 4.1.4, end-to-end on 2026-04-14) and the showcase for a significantly expanded Lua scripting subsystem.
Highlights
- Dynamic CC↔OSC routing — every preset upload rebuilds the bridge's routing table from scratch, zero restart. Clients never hardcode slugification or protocol details; they query
/electra1/routes/listand route on the addresses the bridge returns. - Scripting promoted from escape-hatch to full driver substrate: persistent state (
ob.state), native JSON codec, execution profiles, dynamic route registration, multi-block SysEx emission, outbound OSC emission, reply scripts with matched bindings. - Self-describing devices via
/bridge/docs— companion<name>.mdauto-loaded from the device directory and served over OSC. LLM-driven integrators have everything they need without any code-side knowledge. - Hardware-verified count bumped 1 → 2: MiniLab 3 + Electra One MK2.
What's new
src/routing.rs:DynamicRouteswith page-aware CC↔OSC lookupsrc/scripting.rs:ob.state,ob.json_*,ob.emit_sysex,ob.emit_osc,ob.register_cc_route,ob.list_routes,ob.set_current_page,log_warn/log_error,Profile::PresetIngest- Device schema:
custom_commands, auto-loaded companion.md - Runtime:
try_dynamic_cc_in/try_dynamic_osc_out,reply.scriptwired withctx.bindings,/bridge/docsendpoint - Electra One MK2 driver:
/preset/upload,/routes/list,/preset/current,/page/current,/page/switchedreply script - CLI:
osc-send --from-filefor large JSON payloads - 100 tests total, 0 failures
See the CHANGELOG for the full list.
Caveats (all documented in the companion guide served over /bridge/docs)
inputs: [{potId, valueId}]mandatory on every Electra control- Colors must be hex 6-char (
"F49500", not"orange") - Upload targets the currently-selected slot — pair with
arm_upload - Envelope segments cycle via touch-and-hold, not multi-pot binding
- Midir/Windows truncates incoming SysEx at 1024 bytes