devices/bitwig/bitwig-studio.third-party-osc.fw-5.jsonEdit on GitHubJSONBitwig Studio (Bitwig Studio 5 + DrivenByMoss): OSC control from Claude, scripts and controllers
9 named commands to drive Bitwig Studio over OSC — from Claude (MCP), live-coding environments or a MIDI controller.
- sourcethird-party OSC API
- firmwareBitwig Studio 5
- real unitnot yet checked
Not checked on a real Bitwig Studio yet. Own one? Load a sound or send a control, and tell us whether it worked.
- Maker
- Bitwig
- Version
- Bitwig Studio 5 + DrivenByMoss (latest)
- Source
- third-party OSC API
- OSC prefix
/bitwig
Bitwig Studio — driver companion (DrivenByMoss OSC)
This driver pilots Bitwig Studio 5 through the DrivenByMoss controller extension, which exposes Bitwig over OSC. DrivenByMoss is a community project, but it is officially partnered with Bitwig (it's distributed in the Bitwig controller library).
One-time setup
- Install DrivenByMoss in Bitwig: Dashboard → Settings → Controllers →
Add Controller → Generic → OSC. DrivenByMoss ships as a built-in option
in recent Bitwig versions; if not, install the
latest release into
~/Documents/Bitwig Studio/Extensions/(or the OS-equivalent path). - Configure the OSC ports in the controller's settings panel : set
Port to receive on to 8000 (this is what the bridge sends to) and
Host to send to / Port to send to to 127.0.0.1 / 9000 (this is
what the bridge listens on as
reply_port). - Restart the controller (toggle it off/on in the Controller list).
Ports
| Direction | Port | Notes |
|---|---|---|
| Bridge → Bitwig | UDP 8000 | configured in DrivenByMoss as "Port to receive on" |
| Bitwig → Bridge | UDP 9000 | DrivenByMoss "Port to send to" |
OSC surface exposed to bridge clients
All addresses prefixed by /bitwig. Track and scene indices are 1-based
to match DrivenByMoss's convention.
| Send to bridge | Effect | Args |
|---|---|---|
/bitwig/transport/play |
start playback | — |
/bitwig/transport/stop |
stop playback | — |
/bitwig/transport/tempo |
set tempo | bpm (float, 20..666) |
/bitwig/transport/tap |
tap tempo | — |
/bitwig/track/{n}/volume |
set track volume | v (float, 0..1) — n 1..8 |
/bitwig/track/{n}/mute |
toggle mute | on (bool) |
/bitwig/track/{n}/solo |
toggle solo | on (bool) |
/bitwig/track/{n}/arm |
toggle record arm | on (bool) |
/bitwig/scene/{n}/launch |
fire scene | — |
What you receive from the bridge
DrivenByMoss auto-emits state changes — no start_listen subscription
needed. Any time a value moves in Bitwig (UI or another controller), the
bridge re-emits it.
| From bridge to client | When |
|---|---|
/bitwig/transport/tempo |
tempo change in Bitwig |
/bitwig/transport/playing |
play state changed (0 stopped, 1 playing) |
/bitwig/track/{n}/volume |
volume change on track n |
/bitwig/track/{n}/mute |
mute toggle |
/bitwig/track/{n}/solo |
solo toggle |
/bitwig/track/{n}/arm |
arm toggle |
Argument conventions
- Floats are floats.
/bitwig/transport/tempo 120will be coerced to 120.0 by the bridge but explicit float is safer. Same for volume. - Bools accept 0 / 1 or T / F. DrivenByMoss is tolerant on either.
- Volume is 0..1 in DrivenByMoss; map your DAW fader values accordingly.
- DrivenByMoss bank size is 8. Track and scene routing covers the
currently-banked range. If you address
/track/9/..., change the bank in Bitwig first (or extend the driver — paths/track/+//track/-shift the bank, not exposed in v1).
Out of scope (v1)
Browser, devices, parameter pages, automation, send/return, cue markers, the wider DrivenByMoss surface. Add them in a follow-up PR as needed.
References
- DrivenByMoss OSC docs: https://github.com/git-moss/DrivenByMoss-Documentation/blob/master/Generic-Tools-Protocols/Open-Sound-Control-(OSC).md
- DrivenByMoss releases: https://github.com/git-moss/DrivenByMoss/releases
Use it
Start the bridge with this driver; it forwards named OSC commands to the software:
Then send OSC to 127.0.0.1:7777, for example:
From Claude or any MCP client, the osc-bridge mcp server exposes this driver as bitwig: ask “what can the Bitwig Studio do?” and it reads this map with list_routes. See the MCP guide.
MIDI controls
9 controls, each with its number, its range and the name to send
OSC commands
| Command | Arguments | Name to send |
|---|---|---|
| Transport play | /bitwig/transport/play |
|
| Transport stop | /bitwig/transport/stop |
|
| Transport tempo | bpm: float | /bitwig/transport/tempo |
| Transport tap | /bitwig/transport/tap |
|
| Track {n} volume | n: int, v: float | /bitwig/track/{n}/volume |
| Track {n} mute | n: int, on: bool | /bitwig/track/{n}/mute |
| Track {n} solo | n: int, on: bool | /bitwig/track/{n}/solo |
| Track {n} arm | n: int, on: bool | /bitwig/track/{n}/arm |
| Scene {n} launch | n: int | /bitwig/scene/{n}/launch |
Limitations
v1 covers transport (play / stop / tempo), per-track volume / mute / solo / arm for the first 8 tracks (DrivenByMoss bank size), and scene launch for the first 8 scenes. Track and scene indices are 1-based in DrivenByMoss (NOT 0-based like AbletonOSC). Browser, devices, automation, and the wider DrivenByMoss surface are out of scope for v1.
Other versions
The Bitwig Studio is mapped in 4 versions. per Electra preset, per Electra preset, per Electra preset.
Frequently asked questions
Can an AI agent like Claude control the Bitwig Studio?
Yes: SynthHub's hosted MCP server knows the Bitwig Studio's MIDI map, and its browser relay lets the agent send it parameter changes or load a sound, each sound change confirmed by you.