devices/roland/sp-606.vendor.fw-unknown.jsonEdit on GitHubJSONRoland SP-606 MIDI CC chart, NRPN and OSC map
The Roland SP-606 MIDI implementation: 12 CC, 25 SysEx commands, 64 drum sounds, each named, for Claude (MCP), SuperCollider or any OSC app.
- sourcemaker's documentation
- real unitnot yet checked
Not checked on a real Roland SP-606 yet. Own one? Load a sound or send a control, and tell us whether it worked.
- Maker
- Roland
- Version
- MIDI Implementation Version 1.00 (Mar. 30, 2004); OS version not stated
- Source
- maker's documentation
- OSC prefix
/sp_606
Use it
Find the MIDI ports, then start the bridge with this driver:
osc-bridge detect # prints the ready-to-run line for what is plugged in
osc-bridge run --device devices/roland/sp-606.vendor.fw-unknown.json --out-port <N> --in-port <M>
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 sp_606: ask “what can the Roland SP-606 do?” and it reads this map with list_routes. See the MCP guide.
MIDI controls
101 controls, each with its number, its range and the name to send
Effects
| Control | CC | Range | Name to send |
|---|---|---|---|
| Mfx1 type | 12 | 0–127 | /sp_606/mfx1/type |
| Mfx1 ctrl1 | 13 | 0–127 | /sp_606/mfx1/ctrl1 |
| Mfx1 ctrl2 | 14 | 0–127 | /sp_606/mfx1/ctrl2 |
| Mfx1 ctrl3 | 15 | 0–127 | /sp_606/mfx1/ctrl3 |
| Mfx2 type | 20 | 0–127 | /sp_606/mfx2/type |
| Mfx2 ctrl1 | 21 | 0–127 | /sp_606/mfx2/ctrl1 |
| Mfx2 ctrl2 | 22 | 0–127 | /sp_606/mfx2/ctrl2 |
| Mfx2 ctrl3 | 23 | 0–127 | /sp_606/mfx2/ctrl3 |
| Mfx1 switch | 24 | switch | /sp_606/mfx1/switch |
| Mfx2 switch | 25 | switch | /sp_606/mfx2/switch |
Channel mode
| Control | CC | Range | Name to send |
|---|---|---|---|
| All sounds off | 120 | trigger | /sp_606/all_sounds_off |
| All notes off | 123 | trigger | /sp_606/all_notes_off |
SysEx commands
| Command | Arguments | Name to send |
|---|---|---|
| Transport clock | /sp_606/transport/clock |
|
| Transport start | /sp_606/transport/start |
|
| Transport continue | /sp_606/transport/continue |
|
| Transport stop | /sp_606/transport/stop |
|
| Song position | beats: u14 | /sp_606/song/position |
| Identity request | /sp_606/identity/request |
|
| Ext control mode | mode: enum | /sp_606/ext/control_mode |
| Ext pad1 led | state: enum | /sp_606/ext/pad1/led |
| Ext pad2 led | state: enum | /sp_606/ext/pad2/led |
| Ext pad3 led | state: enum | /sp_606/ext/pad3/led |
| Ext pad4 led | state: enum | /sp_606/ext/pad4/led |
| Ext pad5 led | state: enum | /sp_606/ext/pad5/led |
| Ext pad6 led | state: enum | /sp_606/ext/pad6/led |
| Ext pad7 led | state: enum | /sp_606/ext/pad7/led |
| Ext pad8 led | state: enum | /sp_606/ext/pad8/led |
| Ext pad9 led | state: enum | /sp_606/ext/pad9/led |
| Ext pad10 led | state: enum | /sp_606/ext/pad10/led |
| Ext pad11 led | state: enum | /sp_606/ext/pad11/led |
| Ext pad12 led | state: enum | /sp_606/ext/pad12/led |
| Ext pad13 led | state: enum | /sp_606/ext/pad13/led |
| Ext pad14 led | state: enum | /sp_606/ext/pad14/led |
| Ext pad15 led | state: enum | /sp_606/ext/pad15/led |
| Ext pad16 led | state: enum | /sp_606/ext/pad16/led |
| Ext sampling meter numerator | beats: u7 | /sp_606/ext/sampling/meter_numerator |
| Ext sampling meter denominator | value: enum | /sp_606/ext/sampling/meter_denominator |
Drum sounds
Send <name> [velocity] [note] [channel] to fire the sound (Note On).
| Sound | Note(s) | Channel | Velocity | Name to send |
|---|---|---|---|---|
| Pad Bank 1 (+4 per channel above Pad Base Ch), pad 1 | 35 | basic | /sp_606/pad/note/35 |
|
| Pad Bank 1 (+4 per channel above Pad Base Ch), pad 2 | 36 | basic | /sp_606/pad/note/36 |
|
| Pad Bank 1 (+4 per channel above Pad Base Ch), pad 3 | 37 | basic | /sp_606/pad/note/37 |
|
| Pad Bank 1 (+4 per channel above Pad Base Ch), pad 4 | 38 | basic | /sp_606/pad/note/38 |
|
| Pad Bank 1 (+4 per channel above Pad Base Ch), pad 5 | 39 | basic | /sp_606/pad/note/39 |
|
| Pad Bank 1 (+4 per channel above Pad Base Ch), pad 6 | 40 | basic | /sp_606/pad/note/40 |
|
| Pad Bank 1 (+4 per channel above Pad Base Ch), pad 7 | 41 | basic | /sp_606/pad/note/41 |
|
| Pad Bank 1 (+4 per channel above Pad Base Ch), pad 8 | 42 | basic | /sp_606/pad/note/42 |
|
| Pad Bank 1 (+4 per channel above Pad Base Ch), pad 9 | 43 | basic | /sp_606/pad/note/43 |
|
| Pad Bank 1 (+4 per channel above Pad Base Ch), pad 10 | 44 | basic | /sp_606/pad/note/44 |
|
| Pad Bank 1 (+4 per channel above Pad Base Ch), pad 11 | 45 | basic | /sp_606/pad/note/45 |
|
| Pad Bank 1 (+4 per channel above Pad Base Ch), pad 12 | 46 | basic | /sp_606/pad/note/46 |
|
| Pad Bank 1 (+4 per channel above Pad Base Ch), pad 13 | 47 | basic | /sp_606/pad/note/47 |
|
| Pad Bank 1 (+4 per channel above Pad Base Ch), pad 14 | 48 | basic | /sp_606/pad/note/48 |
|
| Pad Bank 1 (+4 per channel above Pad Base Ch), pad 15 | 49 | basic | /sp_606/pad/note/49 |
|
| Pad Bank 1 (+4 per channel above Pad Base Ch), pad 16 | 50 | basic | /sp_606/pad/note/50 |
|
| Pad Bank 2 (+4 per channel above Pad Base Ch), pad 1 | 51 | basic | /sp_606/pad/note/51 |
|
| Pad Bank 2 (+4 per channel above Pad Base Ch), pad 2 | 52 | basic | /sp_606/pad/note/52 |
|
| Pad Bank 2 (+4 per channel above Pad Base Ch), pad 3 | 53 | basic | /sp_606/pad/note/53 |
|
| Pad Bank 2 (+4 per channel above Pad Base Ch), pad 4 | 54 | basic | /sp_606/pad/note/54 |
|
| Pad Bank 2 (+4 per channel above Pad Base Ch), pad 5 | 55 | basic | /sp_606/pad/note/55 |
|
| Pad Bank 2 (+4 per channel above Pad Base Ch), pad 6 | 56 | basic | /sp_606/pad/note/56 |
|
| Pad Bank 2 (+4 per channel above Pad Base Ch), pad 7 | 57 | basic | /sp_606/pad/note/57 |
|
| Pad Bank 2 (+4 per channel above Pad Base Ch), pad 8 | 58 | basic | /sp_606/pad/note/58 |
|
| Pad Bank 2 (+4 per channel above Pad Base Ch), pad 9 | 59 | basic | /sp_606/pad/note/59 |
|
| Pad Bank 2 (+4 per channel above Pad Base Ch), pad 10 | 60 | basic | /sp_606/pad/note/60 |
|
| Pad Bank 2 (+4 per channel above Pad Base Ch), pad 11 | 61 | basic | /sp_606/pad/note/61 |
|
| Pad Bank 2 (+4 per channel above Pad Base Ch), pad 12 | 62 | basic | /sp_606/pad/note/62 |
|
| Pad Bank 2 (+4 per channel above Pad Base Ch), pad 13 | 63 | basic | /sp_606/pad/note/63 |
|
| Pad Bank 2 (+4 per channel above Pad Base Ch), pad 14 | 64 | basic | /sp_606/pad/note/64 |
|
| Pad Bank 2 (+4 per channel above Pad Base Ch), pad 15 | 65 | basic | /sp_606/pad/note/65 |
|
| Pad Bank 2 (+4 per channel above Pad Base Ch), pad 16 | 66 | basic | /sp_606/pad/note/66 |
|
| Pad Bank 3 (+4 per channel above Pad Base Ch), pad 1 | 67 | basic | /sp_606/pad/note/67 |
|
| Pad Bank 3 (+4 per channel above Pad Base Ch), pad 2 | 68 | basic | /sp_606/pad/note/68 |
|
| Pad Bank 3 (+4 per channel above Pad Base Ch), pad 3 | 69 | basic | /sp_606/pad/note/69 |
|
| Pad Bank 3 (+4 per channel above Pad Base Ch), pad 4 | 70 | basic | /sp_606/pad/note/70 |
|
| Pad Bank 3 (+4 per channel above Pad Base Ch), pad 5 | 71 | basic | /sp_606/pad/note/71 |
|
| Pad Bank 3 (+4 per channel above Pad Base Ch), pad 6 | 72 | basic | /sp_606/pad/note/72 |
|
| Pad Bank 3 (+4 per channel above Pad Base Ch), pad 7 | 73 | basic | /sp_606/pad/note/73 |
|
| Pad Bank 3 (+4 per channel above Pad Base Ch), pad 8 | 74 | basic | /sp_606/pad/note/74 |
|
| Pad Bank 3 (+4 per channel above Pad Base Ch), pad 9 | 75 | basic | /sp_606/pad/note/75 |
|
| Pad Bank 3 (+4 per channel above Pad Base Ch), pad 10 | 76 | basic | /sp_606/pad/note/76 |
|
| Pad Bank 3 (+4 per channel above Pad Base Ch), pad 11 | 77 | basic | /sp_606/pad/note/77 |
|
| Pad Bank 3 (+4 per channel above Pad Base Ch), pad 12 | 78 | basic | /sp_606/pad/note/78 |
|
| Pad Bank 3 (+4 per channel above Pad Base Ch), pad 13 | 79 | basic | /sp_606/pad/note/79 |
|
| Pad Bank 3 (+4 per channel above Pad Base Ch), pad 14 | 80 | basic | /sp_606/pad/note/80 |
|
| Pad Bank 3 (+4 per channel above Pad Base Ch), pad 15 | 81 | basic | /sp_606/pad/note/81 |
|
| Pad Bank 3 (+4 per channel above Pad Base Ch), pad 16 | 82 | basic | /sp_606/pad/note/82 |
|
| Pad Bank 4 (+4 per channel above Pad Base Ch), pad 1 | 83 | basic | /sp_606/pad/note/83 |
|
| Pad Bank 4 (+4 per channel above Pad Base Ch), pad 2 | 84 | basic | /sp_606/pad/note/84 |
|
| Pad Bank 4 (+4 per channel above Pad Base Ch), pad 3 | 85 | basic | /sp_606/pad/note/85 |
|
| Pad Bank 4 (+4 per channel above Pad Base Ch), pad 4 | 86 | basic | /sp_606/pad/note/86 |
|
| Pad Bank 4 (+4 per channel above Pad Base Ch), pad 5 | 87 | basic | /sp_606/pad/note/87 |
|
| Pad Bank 4 (+4 per channel above Pad Base Ch), pad 6 | 88 | basic | /sp_606/pad/note/88 |
|
| Pad Bank 4 (+4 per channel above Pad Base Ch), pad 7 | 89 | basic | /sp_606/pad/note/89 |
|
| Pad Bank 4 (+4 per channel above Pad Base Ch), pad 8 | 90 | basic | /sp_606/pad/note/90 |
|
| Pad Bank 4 (+4 per channel above Pad Base Ch), pad 9 | 91 | basic | /sp_606/pad/note/91 |
|
| Pad Bank 4 (+4 per channel above Pad Base Ch), pad 10 | 92 | basic | /sp_606/pad/note/92 |
|
| Pad Bank 4 (+4 per channel above Pad Base Ch), pad 11 | 93 | basic | /sp_606/pad/note/93 |
|
| Pad Bank 4 (+4 per channel above Pad Base Ch), pad 12 | 94 | basic | /sp_606/pad/note/94 |
|
| Pad Bank 4 (+4 per channel above Pad Base Ch), pad 13 | 95 | basic | /sp_606/pad/note/95 |
|
| Pad Bank 4 (+4 per channel above Pad Base Ch), pad 14 | 96 | basic | /sp_606/pad/note/96 |
|
| Pad Bank 4 (+4 per channel above Pad Base Ch), pad 15 | 97 | basic | /sp_606/pad/note/97 |
|
| Pad Bank 4 (+4 per channel above Pad Base Ch), pad 16 | 98 | basic | /sp_606/pad/note/98 |
Performance MIDI
Notes, pitch bend and any CC are also available: /sp_606/note/on <note> <velocity>, /sp_606/cc/<number> <value>, /sp_606/pitchbend <0-16383>, /sp_606/program_change <n>.
Limitations
Source: SP-606 Owner's Manual (MIDI Implementation 1.00, 2004). The SP-606 receives no Program Change, bank or sample-parameter messages; only the effect CCs, pad notes 35-98, sync, Identity Request and the EXT-mode DT1 addresses. Pad notes: each MIDI channel from Pad Base Ch to Pad Base Ch + 7 reaches four pad banks, so the trigger table describes the base channel; send on a higher channel to reach banks 5-32. Left out: EXT SEQ SAMPLING BPM (11 00 00 00, 400-2000 split into three 4-bit bytes) and Beat (11 00 00 03, 1-999, same split) — the bridge's frame engine cannot split a value into nibbles. V-LINK messages (manual chapter 10) are not mapped. Untested on hardware.
Frequently asked questions
How many parameters of the Roland SP-606 can be controlled over MIDI?
SynthHub's map of the Roland SP-606 lists 12 MIDI CC parameters, each with its number, range and a readable name; the full chart is on this page.
Can an AI agent like Claude control the Roland SP-606?
Yes: SynthHub's hosted MCP server knows the Roland SP-606's MIDI map, and its browser relay lets the agent send it parameter changes or load a sound, each sound change confirmed by you.