Roland SH-01A MIDI CC chart, NRPN and OSC map¶
The Roland SH-01A MIDI implementation: 71 CC, each named, for Claude (MCP), SuperCollider or any OSC app.
| Device | Roland SH-01A |
|---|---|
| Vendor | Roland |
| OSC prefix | /sh_01a |
| Source | ποΈ Derived from an Electra One community preset |
| Revision | per pencilresearch canonical CSV |
| Upstream | electra-preset |
| Driver file | devices/roland/sh_01a.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_01a.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_01a: ask βwhat can the Roland SH-01A do?β and it reads this map with list_routes. See the MCP guide.
MIDI CC and NRPN parameters (71)¶
| OSC address | CC | NRPN (MSB/LSB) | Range | Nature | Section |
|---|---|---|---|---|---|
/sh_01a/general/modulation |
1 | 0β127 | continuous | General | |
/sh_01a/general/portamento_time |
5 | 0β127 | continuous | General | |
/sh_01a/general/expression_pedal |
11 | 0β127 | continuous | General | |
/sh_01a/general/portament_mode |
31 | 0β127 | continuous | General | |
/sh_01a/general/hold |
64 | 0β127 | continuous | General | |
/sh_01a/general/portamento |
65 | 0β127 | continuous | General | |
/sh_01a/general/tune |
76 | 0β127 | continuous | General | |
/sh_01a/general/transpose_sw |
77 | 0β127 | continuous | General | |
/sh_01a/general/noise_mode |
78 | 0β127 | continuous | General | |
/sh_01a/general/assign_mode |
80 | 0β127 | continuous | General | |
/sh_01a/lfo/rate |
3 | 0β127 | continuous | LFO | |
/sh_01a/lfo/mode |
79 | 0β127 | continuous | LFO | |
/sh_01a/lfo/wave_form |
12 | 0β127 | continuous | LFO | |
/sh_01a/oscillator/vco_modulation_depth |
13 | 0β127 | continuous | Oscillator | |
/sh_01a/oscillator/vco_range |
14 | 0β127 | continuous | Oscillator | |
/sh_01a/oscillator/vco_pulse_width |
15 | 0β127 | continuous | Oscillator | |
/sh_01a/oscillator/vco_pwm_source |
16 | 0β127 | continuous | Oscillator | |
/sh_01a/oscillator/vco_mod_sens |
17 | 0β127 | continuous | Oscillator | |
/sh_01a/oscillator/vco_bend_depth |
18 | 0β127 | continuous | Oscillator | |
/sh_01a/oscillator/vco_pwm_level |
19 | 0β127 | continuous | Oscillator | |
/sh_01a/oscillator/vco_saw_level |
20 | 0β127 | continuous | Oscillator | |
/sh_01a/oscillator/vco_sub_level |
21 | 0β127 | continuous | Oscillator | |
/sh_01a/oscillator/vco_sub_type |
22 | 0β127 | continuous | Oscillator | |
/sh_01a/oscillator/vco_noise_level |
23 | 0β127 | continuous | Oscillator | |
/sh_01a/filter/vcf_envelope_depth |
24 | 0β127 | continuous | Filter | |
/sh_01a/filter/vcf_modulation_depth |
25 | 0β127 | continuous | Filter | |
/sh_01a/filter/vcf_key_follow |
26 | 0β127 | continuous | Filter | |
/sh_01a/filter/vcf_cutoff |
74 | 0β127 | continuous | Filter | |
/sh_01a/filter/vcf_resonance |
71 | 0β127 | continuous | Filter | |
/sh_01a/filter/vcf_bend_depth |
27 | 0β127 | continuous | Filter | |
/sh_01a/ampifier/vca_envelope_sw |
28 | 0β127 | continuous | Ampifier | |
/sh_01a/ampifier/vca_envelope_mode |
29 | 0β127 | continuous | Ampifier | |
/sh_01a/envelope/attack |
73 | 0β127 | continuous | Envelope | |
/sh_01a/envelope/sustain |
30 | 0β127 | continuous | Envelope | |
/sh_01a/envelope/decay |
75 | 0β127 | continuous | Envelope | |
/sh_01a/envelope/release |
72 | 0β127 | continuous | Envelope | |
/sh_01a/chord_voices/chord_voice_2_sw |
81 | 0β127 | continuous | Chord voices | |
/sh_01a/chord_voices/chord_voice_3_sw |
82 | 0β127 | continuous | Chord voices | |
/sh_01a/chord_voices/chord_voice_4_sw |
83 | 0β127 | continuous | Chord voices | |
/sh_01a/chord_voices/chord_voice_2_key_shift |
85 | 0β127 | continuous | Chord voices | |
/sh_01a/chord_voices/chord_voice_3_key_shift |
86 | 0β127 | continuous | Chord voices | |
/sh_01a/chord_voices/chord_voice_4_key_shift |
87 | 0β127 | continuous | Chord voices | |
/sh_01a/lfo_waveform |
12 | 0β127 | continuous | ||
/sh_01a/lfo_rate |
3 | 0β127 | continuous | ||
/sh_01a/vco_mod |
13 | 0β127 | continuous | ||
/sh_01a/mod_range |
14 | 0β127 | continuous | ||
/sh_01a/pulse_width |
15 | 0β127 | continuous | ||
/sh_01a/pwm_source |
16 | 0β127 | continuous | ||
/sh_01a/vco_pwm_level |
19 | 0β127 | continuous | ||
/sh_01a/vco_saw_level |
20 | 0β127 | continuous | ||
/sh_01a/vco_sub_level |
21 | 0β127 | continuous | ||
/sh_01a/vco_sub_type |
22 | 0β127 | continuous | ||
/sh_01a/vco_noise |
23 | 0β127 | continuous | ||
/sh_01a/vcf_frequency |
74 | 0β127 | continuous | ||
/sh_01a/vcf_resonance |
71 | 0β127 | continuous | ||
/sh_01a/vcf_envelope |
24 | 0β127 | continuous | ||
/sh_01a/vcf_mod_level |
25 | 0β127 | continuous | ||
/sh_01a/vcf_keyboard |
26 | 0β127 | continuous | ||
/sh_01a/vca_envelope |
28 | 0β127 | continuous | ||
/sh_01a/vca_env_mode |
29 | 0β127 | continuous | ||
/sh_01a/pitch_bend_vco |
18 | 0β10 | continuous | ||
/sh_01a/pitch_bend_vcf |
27 | 0β10 | continuous | ||
/sh_01a/lfo_mod_rate |
17 | 0β10 | continuous | ||
/sh_01a/env_attack |
73 | 0β127 | continuous | ||
/sh_01a/env_decay |
75 | 0β127 | continuous | ||
/sh_01a/env_sustain |
30 | 0β127 | continuous | ||
/sh_01a/env_release |
72 | 0β127 | continuous | ||
/sh_01a/transpose |
77 | 0β127 | continuous | ||
/sh_01a/tune |
76 | 0β127 | continuous | ||
/sh_01a/portamento |
31 | 0β127 | continuous | ||
/sh_01a/portamento_amt |
5 | 0β10 | continuous |
Performance MIDI¶
Notes, pitch bend and any CC are also available: /sh_01a/note/on <note> <velocity>, /sh_01a/cc/<number> <value>, /sh_01a/pitchbend <0-16383>, /sh_01a/program_change <n>.
Limitations¶
CC/NRPN only. SysEx (preset management, display control, bulk dump/load, vendor-proprietary opcodes) is NOT covered by pencilresearch. To extend this device with SysEx, sniff the vendor editor, add `sysex.header/footer` + `commands` blocks, and use `update_device.md` PR template.
Frequently asked questions¶
Which MIDI CC controls the filter cutoff on the Roland SH-01A?
CC 24 (0β127), named /sh_01a/filter/vcf_envelope_depth in SynthHub's map.
How many parameters of the Roland SH-01A can be controlled over MIDI?
SynthHub's map of the Roland SH-01A lists 71 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 SH-01A?
Yes: SynthHub's hosted MCP server knows the Roland SH-01A's MIDI map, and its browser relay lets the agent send it parameter changes or load a sound, each sound change confirmed by you.