Skip to content

Roland d-50: MIDI CC, NRPN and OSC map

The Roland d-50 as named OSC addresses — 2 CC, 100 SysEx commands — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.

Device Roland d-50
Vendor Roland
OSC prefix /d_50
Source 🎛️ Derived from an Electra One community preset
Revision per Electra preset
Upstream electra-preset
Driver file devices/roland/d_50.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.json --out-port <N> --in-port <M>

Then send OSC to 127.0.0.1:7777, for example:

osc-bridge osc-send /d_50/portamento 63

From Claude or any MCP client, the osc-bridge mcp server exposes this driver as d_50: ask “what can the Roland d-50 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/portamento 65 0–127 continuous
/d_50/hold 64 0–127 continuous

SysEx commands (100)

OSC address Arguments
/d_50/key_mode val: u7
/d_50/tone_balance val: u7
/d_50/split_point val: u7
/d_50/output_mode val: u7
/d_50/total_volume val: u7
/d_50/l_key val: u7
/d_50/l_fine_tune val: u7
/d_50/part_balance val: u7
/d_50/u_key val: u7
/d_50/u_fine_tune val: u7
/d_50/p_bend_range val: u7
/d_50/hold_mode val: u7
/d_50/at_p_bend val: u7
/d_50/p_destination val: u7
/d_50/porta_time val: u7
/d_50/l1_on val: u7
/d_50/l2_on val: u7
/d_50/u1_on val: u7
/d_50/u2_on val: u7
/d_50/chase_mode val: u7
/d_50/chase_level val: u7
/d_50/chase_time val: u7
/d_50/structure val: u7
/d_50/lfo_1_depth val: u7
/d_50/mod_lever val: u7
/d_50/aftertouch val: u7
/d_50/low_eq_freq val: u7
/d_50/low_eq_gain val: u7
/d_50/high_eq_freq val: u7
/d_50/high_eq_q val: u7
/d_50/high_eq_gain val: u7
/d_50/chorus_type val: u7
/d_50/chorus_rate val: u7
/d_50/chorus_depth val: u7
/d_50/chorus_balance val: u7
/d_50/pitch_attack val: u7
/d_50/pitch_t1_2 val: u7
/d_50/pitch_t2_sus val: u7
/d_50/pitch_release val: u7
/d_50/key_f_time val: u7
/d_50/pitch_start_l val: u7
/d_50/pitch_l1 val: u7
/d_50/pitch_l2 val: u7
/d_50/pitch_sustain val: u7
/d_50/pitch_end_l val: u7
/d_50/velo_range val: u7
/d_50/pitch_coarse val: u7
/d_50/pitch_fine val: u7
/d_50/key_follow val: u7
/d_50/lfo_mode val: u7
/d_50/pitch_env_mode val: u7
/d_50/pitch_bend_mode val: u7
/d_50/waveform val: u7
/d_50/pulse_width val: u7
/d_50/pwm_velo val: u7
/d_50/pwm_at val: u7
/d_50/lfo_depth val: u7
/d_50/pwm_lfo_sel val: u7
/d_50/cutoff_freq val: u7
/d_50/resonance val: u7
/d_50/kf_bias_point val: u7
/d_50/kf_bias_level val: u7
/d_50/env_depth val: u7
/d_50/velocity_range val: u7
/d_50/tvf_lfo_select val: u7
/d_50/tvf_lfo_depth val: u7
/d_50/tvf_at_range val: u7
/d_50/attack val: u7
/d_50/time_1_2 val: u7
/d_50/time_2_3 val: u7
/d_50/time_3_sus val: u7
/d_50/release val: u7
/d_50/tvf_key_f_time val: u7
/d_50/level_1 val: u7
/d_50/level_2 val: u7
/d_50/level_3 val: u7
/d_50/sustain val: u7
/d_50/end_level val: u7
/d_50/key_f_depth val: u7
/d_50/tva_level val: u7
/d_50/velocity val: u7
/d_50/velo_attack val: u7
/d_50/tva_lfo_select val: u7
/d_50/tva_lfo_depth val: u7
/d_50/tva_at_range val: u7
/d_50/tva_key_f_time val: u7
/d_50/lfo_1_wf val: u7
/d_50/lfo_1_rate val: u7
/d_50/lfo_2_wf val: u7
/d_50/lfo_2_rate val: u7
/d_50/lfo_3_wf val: u7
/d_50/lfo_3_rate val: u7
/d_50/lfo_1_sync val: u7
/d_50/lfo_1_delay val: u7
/d_50/lfo_2_sync val: u7
/d_50/lfo_2_delay val: u7
/d_50/lfo_3_sync val: u7
/d_50/lfo_3_delay val: u7
/d_50/rev_type val: u7
/d_50/dry_wet val: u7

Performance MIDI

Notes, pitch bend and any CC are also available: /d_50/note/on <note> <velocity>, /d_50/cc/<number> <value>, /d_50/pitchbend <0-16383>, /d_50/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.