Roland SH-32: MIDI CC, NRPN and OSC map¶
The Roland SH-32 as named OSC addresses — 51 CC, 2 SysEx commands — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.
| Device | Roland SH-32 |
|---|---|
| Vendor | Roland |
| OSC prefix | /sh_32 |
| Source | 🎛️ Derived from an Electra One community preset |
| Revision | per Electra preset |
| Upstream | electra-preset |
| Driver file | devices/roland/sh_32.json |
Not tested on the device yet
This driver comes from documentation or community data and has not been checked on real hardware. If you own one, a quick test and a pull request promoting it helps everyone — see CONTRIBUTING.
How do you control 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/sh_32.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 sh_32: ask “what can the Roland SH-32 do?” and it reads this map with list_routes. See the MCP guide.
MIDI CC and NRPN parameters (51)¶
| OSC address | CC | NRPN (MSB/LSB) | Range | Nature | Section |
|---|---|---|---|---|---|
/sh_32/common/volume |
7 | 0–100 | continuous | Common | |
/sh_32/common/pan |
10 | -50–50 | continuous | Common | |
/sh_32/common/mono |
126 | 0–127 | continuous | Common | |
/sh_32/common/unison |
70 | 0–127 | continuous | Common | |
/sh_32/common/efx_intensity |
93 | 0–127 | continuous | Common | |
/sh_32/common/amp |
73 | 0–127 | continuous | Common | |
/sh_32/common/amp |
75 | 0–127 | continuous | Common | |
/sh_32/common/amp |
31 | 0–127 | continuous | Common | |
/sh_32/common/amp |
72 | 0–127 | continuous | Common | |
/sh_32/common/portamento |
65 | 0–127 | continuous | Common | |
/sh_32/common/porta_time |
5 | 0–127 | continuous | Common | |
/sh_32/common/poly |
127 | 0–127 | continuous | Common | |
/sh_32/common/legato |
68 | 0–127 | continuous | Common | |
/sh_32/rev_dly_lvl |
94 | 0–127 | continuous | ||
/sh_32/rev_dly_fdbk |
13 | 0–127 | continuous | ||
/sh_32/osc_1/coarse_tune |
21 | -64–63 | continuous | OSC 1 | |
/sh_32/osc_1/fine_tune |
77 | -64–63 | continuous | OSC 1 | |
/sh_32/osc_2/coarse_tune |
53 | -64–63 | continuous | OSC 2 | |
/sh_32/osc_2/fine_tune |
76 | -64–63 | continuous | OSC 2 | |
/sh_32/osc_1_2/osc_balance |
8 | -50–50 | continuous | OSC 1&2 | |
/sh_32/osc_1/pitch_envdepth |
25 | -64–63 | continuous | OSC 1 | |
/sh_32/osc_1/pwm_depth |
78 | 0–127 | continuous | OSC 1 | |
/sh_32/osc_2/pitch_envdepth |
57 | -64–63 | continuous | OSC 2 | |
/sh_32/osc_2/pwm_depth |
79 | 0–127 | continuous | OSC 2 | |
/sh_32/osc_1_2/pitch_env_a_d |
26 | 0–127 | continuous | OSC 1&2 | |
/sh_32/osc_1_2/pitch_env_a_d |
27 | 0–127 | continuous | OSC 1&2 | |
/sh_32/filter/filter_type |
34 | 0–127 | continuous | Filter | |
/sh_32/filter/resonance |
71 | 0–127 | continuous | Filter | |
/sh_32/filter/env_depth |
81 | -63–63 | continuous | Filter | |
/sh_32/filter/cutoff |
74 | 0–127 | continuous | Filter | |
/sh_32/filter/key_follow |
30 | -40–40 | continuous | Filter | |
/sh_32/filter/filter_env |
82 | 0–127 | continuous | Filter | |
/sh_32/filter/filter_env |
83 | 0–127 | continuous | Filter | |
/sh_32/filter/filter_env |
28 | 0–127 | continuous | Filter | |
/sh_32/filter/filter_env |
29 | 0–127 | continuous | Filter | |
/sh_32/wave |
15 | 0–127 | continuous | ||
/sh_32/fade_time |
20 | 0–127 | continuous | ||
/sh_32/amp_depth |
80 | 0–127 | continuous | ||
/sh_32/osc1_depth |
18 | 0–127 | continuous | ||
/sh_32/rate |
16 | 0–127 | continuous | ||
/sh_32/filter_depth |
19 | 0–127 | continuous | ||
/sh_32/pan_depth |
9 | 0–127 | continuous | ||
/sh_32/osc2_depth |
50 | 0–127 | continuous | ||
/sh_32/wave |
47 | 0–127 | continuous | ||
/sh_32/fade_time |
52 | 0–127 | continuous | ||
/sh_32/amp_depth |
24 | 0–127 | continuous | ||
/sh_32/osc1_depth |
22 | 0–127 | continuous | ||
/sh_32/rate |
17 | 0–127 | continuous | ||
/sh_32/filter_depth |
23 | 0–127 | continuous | ||
/sh_32/pan_depth |
41 | 0–127 | continuous | ||
/sh_32/osc2_depth |
54 | 0–127 | continuous |
SysEx commands (2)¶
| OSC address | Arguments |
|---|---|
/sh_32/common/insert_fx |
val: u7 |
/sh_32/common/analog_feel |
val: u7 |
Performance MIDI¶
Notes, pitch bend and any CC are also available: /sh_32/note/on <note> <velocity>, /sh_32/cc/<number> <value>, /sh_32/pitchbend <0-16383>, /sh_32/program_change <n>.
Limitations¶
Imported from an Electra One community preset. The mapping reflects the preset author's editorial choices: parameter naming, ranges, and which params are exposed. Untested on hardware in this repo.