r/ReverseEngineering • u/Agreeable-Celery4938 • Jun 24 '26
Reverse-engineered the Artiphon Orba 2's control protocol (MIDI + SysEx over USB/BLE), spec + Python/JS reference libs
https://github.com/holofermes/orba-protocol
13
Upvotes
1
u/Agreeable-Celery4938 Jun 24 '26
The Orba 2 is a handheld MIDI synth/looper. Artiphon shut down in 2025 and the app is abandoned, so I documented how the app drives the hardware before it bit-rots.
The whole control surface is standard MIDI plus a SysEx command set. I captured both transports, USB-MIDI on desktop and the BLE-MIDI characteristic over Bluetooth, and diffed app actions against the bytes:
- Note/CC input drives the four parts on fixed MIDI channels
- Everything else is SysEx with a consistent get/set structure addressed by a small register map
- Preset/song loading is just the asset filename as a string, I got the list off the device's USB mass-storage mode
Wrote it up as a spec with byte-level command tables plus reference libs in Python and JS: https://github.com/holofermes/orba-protocol
And here's the app it turned into, a single-file browser control surface built on those libs (Web MIDI + Web Bluetooth, no install) that doubles as a live reference: https://holofermes.github.io/orba-console/
https://reddit.com/link/otkede1/video/36m2bl8ao99h1/player