Roland D-50 V1 w/Patch select: MIDI CC, NRPN and OSC map¶
The Roland D-50 V1 w/Patch select as named OSC addresses — 2 CC, 116 SysEx commands — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.
| Device | Roland D-50 V1 w/Patch select |
|---|---|
| Vendor | Roland |
| OSC prefix | /d_50_v1_w_patch_select |
| Source | 🎛️ Derived from an Electra One community preset |
| Revision | per Electra preset |
| Upstream | electra-preset |
| Driver file | devices/roland/d_50_v1_w_patch_select.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/d_50_v1_w_patch_select.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 d_50_v1_w_patch_select: ask “what can the Roland D-50 V1 w/Patch select do?” and it reads this map with list_routes. See the MCP guide.
MIDI CC and NRPN parameters (2)¶
| OSC address | CC | NRPN (MSB/LSB) | Range | Nature | Section |
|---|---|---|---|---|---|
/d_50_v1_w_patch_select/portamento |
65 | 0–127 | continuous | ||
/d_50_v1_w_patch_select/hold |
64 | 0–127 | continuous |
SysEx commands (116)¶
| OSC address | Arguments |
|---|---|
/d_50_v1_w_patch_select/key_mode |
val: u7 |
/d_50_v1_w_patch_select/total_volume |
val: u7 |
/d_50_v1_w_patch_select/l_u |
val: u7 |
/d_50_v1_w_patch_select/output_mode |
val: u7 |
/d_50_v1_w_patch_select/rev_type |
val: u7 |
/d_50_v1_w_patch_select/dry_wet |
val: u7 |
/d_50_v1_w_patch_select/split_point |
val: u7 |
/d_50_v1_w_patch_select/chase_mode |
val: u7 |
/d_50_v1_w_patch_select/chase_level |
val: u7 |
/d_50_v1_w_patch_select/chase_time |
val: u7 |
/d_50_v1_w_patch_select/sepmode_rec_ch |
val: u7 |
/d_50_v1_w_patch_select/l_key |
val: u7 |
/d_50_v1_w_patch_select/structure |
val: u7 |
/d_50_v1_w_patch_select/part_balance |
val: u7 |
/d_50_v1_w_patch_select/u_key |
val: u7 |
/d_50_v1_w_patch_select/l_fine_tune |
val: u7 |
/d_50_v1_w_patch_select/l1_on |
val: u7 |
/d_50_v1_w_patch_select/l2_on |
val: u7 |
/d_50_v1_w_patch_select/u1_on |
val: u7 |
/d_50_v1_w_patch_select/u2_on |
val: u7 |
/d_50_v1_w_patch_select/u_fine_tune |
val: u7 |
/d_50_v1_w_patch_select/p_bend_range |
val: u7 |
/d_50_v1_w_patch_select/hold_mode |
val: u7 |
/d_50_v1_w_patch_select/at_p_bend |
val: u7 |
/d_50_v1_w_patch_select/p_destination |
val: u7 |
/d_50_v1_w_patch_select/porta_time |
val: u7 |
/d_50_v1_w_patch_select/lfo_1_depth |
val: u7 |
/d_50_v1_w_patch_select/mod_lever |
val: u7 |
/d_50_v1_w_patch_select/aftertouch |
val: u7 |
/d_50_v1_w_patch_select/low_eq_freq |
val: u7 |
/d_50_v1_w_patch_select/low_eq_gain |
val: u7 |
/d_50_v1_w_patch_select/high_eq_freq |
val: u7 |
/d_50_v1_w_patch_select/high_eq_q |
val: u7 |
/d_50_v1_w_patch_select/high_eq_gain |
val: u7 |
/d_50_v1_w_patch_select/chorus_type |
val: u7 |
/d_50_v1_w_patch_select/chorus_rate |
val: u7 |
/d_50_v1_w_patch_select/chorus_depth |
val: u7 |
/d_50_v1_w_patch_select/chorus_balance |
val: u7 |
/d_50_v1_w_patch_select/pitch_attack |
val: u7 |
/d_50_v1_w_patch_select/pitch_t1_2 |
val: u7 |
/d_50_v1_w_patch_select/pitch_t2_sus |
val: u7 |
/d_50_v1_w_patch_select/pitch_release |
val: u7 |
/d_50_v1_w_patch_select/key_f_time |
val: u7 |
/d_50_v1_w_patch_select/pitch_start_l |
val: u7 |
/d_50_v1_w_patch_select/pitch_l1 |
val: u7 |
/d_50_v1_w_patch_select/pitch_l2 |
val: u7 |
/d_50_v1_w_patch_select/pitch_sustain |
val: u7 |
/d_50_v1_w_patch_select/pitch_end_l |
val: u7 |
/d_50_v1_w_patch_select/velo_range |
val: u7 |
/d_50_v1_w_patch_select/wg_pitch_coarse |
val: u7 |
/d_50_v1_w_patch_select/wg_pitch_fine |
val: u7 |
/d_50_v1_w_patch_select/wg_pitch_1_kf |
val: u7 |
/d_50_v1_w_patch_select/lfo_mode |
val: u7 |
/d_50_v1_w_patch_select/pitch_env_mode |
val: u7 |
/d_50_v1_w_patch_select/pitch_bend_mode |
val: u7 |
/d_50_v1_w_patch_select/synth_waveform |
val: u7 |
/d_50_v1_w_patch_select/pulse_width |
val: u7 |
/d_50_v1_w_patch_select/pwm_velo |
val: u7 |
/d_50_v1_w_patch_select/pwm_at |
val: u7 |
/d_50_v1_w_patch_select/lfo_depth |
val: u7 |
/d_50_v1_w_patch_select/pwm_lfo_sel |
val: u7 |
/d_50_v1_w_patch_select/pcm_waveform |
val: u7 |
/d_50_v1_w_patch_select/tvf_cutoff_freq |
val: u7 |
/d_50_v1_w_patch_select/tvf_resonance |
val: u7 |
/d_50_v1_w_patch_select/kf_gradient |
val: u7 |
/d_50_v1_w_patch_select/kf_bias_point |
val: u7 |
/d_50_v1_w_patch_select/kf_bias_level |
val: u7 |
/d_50_v1_w_patch_select/tvf_env_depth |
val: u7 |
/d_50_v1_w_patch_select/tvf_env_velo |
val: u7 |
/d_50_v1_w_patch_select/tvf_lfo_select |
val: u7 |
/d_50_v1_w_patch_select/tvf_lfo_depth |
val: u7 |
/d_50_v1_w_patch_select/tvf_at_range |
val: u7 |
/d_50_v1_w_patch_select/tvf_attack |
val: u7 |
/d_50_v1_w_patch_select/tvf_t1_2 |
val: u7 |
/d_50_v1_w_patch_select/tvf_t2_3 |
val: u7 |
/d_50_v1_w_patch_select/tvf_t3_sus |
val: u7 |
/d_50_v1_w_patch_select/tvf_release |
val: u7 |
/d_50_v1_w_patch_select/tvf_key_f_time |
val: u7 |
/d_50_v1_w_patch_select/tvf_l1 |
val: u7 |
/d_50_v1_w_patch_select/tvf_l2 |
val: u7 |
/d_50_v1_w_patch_select/tvf_l3 |
val: u7 |
/d_50_v1_w_patch_select/tvf_sus_l |
val: u7 |
/d_50_v1_w_patch_select/tvf_end_l |
val: u7 |
/d_50_v1_w_patch_select/key_f_depth |
val: u7 |
/d_50_v1_w_patch_select/tva_level |
val: u7 |
/d_50_v1_w_patch_select/tva_velo |
val: u7 |
/d_50_v1_w_patch_select/tva_bias_point |
val: u7 |
/d_50_v1_w_patch_select/tva_bias_level |
val: u7 |
/d_50_v1_w_patch_select/velo_attack |
val: u7 |
/d_50_v1_w_patch_select/tva_lfo_select |
val: u7 |
/d_50_v1_w_patch_select/tva_lfo_depth |
val: u7 |
/d_50_v1_w_patch_select/tva_at_range |
val: u7 |
/d_50_v1_w_patch_select/tva_attack |
val: u7 |
/d_50_v1_w_patch_select/tva_t1_2 |
val: u7 |
/d_50_v1_w_patch_select/tva_t2_3 |
val: u7 |
/d_50_v1_w_patch_select/tva_t3_sus |
val: u7 |
/d_50_v1_w_patch_select/tva_release |
val: u7 |
/d_50_v1_w_patch_select/tva_key_f_time |
val: u7 |
/d_50_v1_w_patch_select/tva_l1 |
val: u7 |
/d_50_v1_w_patch_select/tva_l2 |
val: u7 |
/d_50_v1_w_patch_select/tva_l3 |
val: u7 |
/d_50_v1_w_patch_select/tva_sustain |
val: u7 |
/d_50_v1_w_patch_select/tva_end_l |
val: u7 |
/d_50_v1_w_patch_select/wg_pitch_2_kf |
val: u7 |
/d_50_v1_w_patch_select/lfo_1_wf |
val: u7 |
/d_50_v1_w_patch_select/lfo_1_rate |
val: u7 |
/d_50_v1_w_patch_select/lfo_2_wf |
val: u7 |
/d_50_v1_w_patch_select/lfo_2_rate |
val: u7 |
/d_50_v1_w_patch_select/lfo_3_wf |
val: u7 |
/d_50_v1_w_patch_select/lfo_3_rate |
val: u7 |
/d_50_v1_w_patch_select/lfo_1_sync |
val: u7 |
/d_50_v1_w_patch_select/lfo_1_delay |
val: u7 |
/d_50_v1_w_patch_select/lfo_2_sync |
val: u7 |
/d_50_v1_w_patch_select/lfo_2_delay |
val: u7 |
/d_50_v1_w_patch_select/lfo_3_sync |
val: u7 |
/d_50_v1_w_patch_select/lfo_3_delay |
val: u7 |
Performance MIDI¶
Notes, pitch bend and any CC are also available: /d_50_v1_w_patch_select/note/on <note> <velocity>, /d_50_v1_w_patch_select/cc/<number> <value>, /d_50_v1_w_patch_select/pitchbend <0-16383>, /d_50_v1_w_patch_select/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.