Written from devices/roland/d_50.electra-newignis-patch-select-v1.fw-unknown.jsonEdit on GitHubJSON

Roland D-50 (per Electra preset) MIDI CC chart, NRPN and OSC map

The Roland D-50 MIDI implementation: 2 CC, 116 SysEx commands, each named, for Claude (MCP), SuperCollider or any OSC app.

  • sourceElectra One preset
  • real unitnot yet checked

Not checked on a real Roland D-50 yet. Own one? Load a sound or send a control, and tell us whether it worked.

Maker
Roland
Version
per Electra preset
Source
Electra One preset
OSC prefix
/d_50

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/d_50.electra-newignis-patch-select-v1.fw-unknown.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 controls

118 controls, each with its number, its range and the name to send
Control CC Range Name to send
Portamento 65 0–127 /d_50/portamento
Hold 64 0–127 /d_50/hold

SysEx commands

Command Arguments Name to send
Key mode val: u7 /d_50/key_mode
Total volume val: u7 /d_50/total_volume
L u val: u7 /d_50/l_u
Output mode val: u7 /d_50/output_mode
Rev type val: u7 /d_50/rev_type
Dry wet val: u7 /d_50/dry_wet
Split point val: u7 /d_50/split_point
Chase mode val: u7 /d_50/chase_mode
Chase level val: u7 /d_50/chase_level
Chase time val: u7 /d_50/chase_time
Sepmode rec ch val: u7 /d_50/sepmode_rec_ch
L key val: u7 /d_50/l_key
Structure val: u7 /d_50/structure
Part balance val: u7 /d_50/part_balance
U key val: u7 /d_50/u_key
L fine tune val: u7 /d_50/l_fine_tune
L1 on val: u7 /d_50/l1_on
L2 on val: u7 /d_50/l2_on
U1 on val: u7 /d_50/u1_on
U2 on val: u7 /d_50/u2_on
U fine tune val: u7 /d_50/u_fine_tune
P bend range val: u7 /d_50/p_bend_range
Hold mode val: u7 /d_50/hold_mode
At p bend val: u7 /d_50/at_p_bend
P destination val: u7 /d_50/p_destination
Porta time val: u7 /d_50/porta_time
Lfo 1 depth val: u7 /d_50/lfo_1_depth
Mod lever val: u7 /d_50/mod_lever
Aftertouch val: u7 /d_50/aftertouch
Low eq freq val: u7 /d_50/low_eq_freq
Low eq gain val: u7 /d_50/low_eq_gain
High eq freq val: u7 /d_50/high_eq_freq
High eq q val: u7 /d_50/high_eq_q
High eq gain val: u7 /d_50/high_eq_gain
Chorus type val: u7 /d_50/chorus_type
Chorus rate val: u7 /d_50/chorus_rate
Chorus depth val: u7 /d_50/chorus_depth
Chorus balance val: u7 /d_50/chorus_balance
Pitch attack val: u7 /d_50/pitch_attack
Pitch t1 2 val: u7 /d_50/pitch_t1_2
Pitch t2 sus val: u7 /d_50/pitch_t2_sus
Pitch release val: u7 /d_50/pitch_release
Key f time val: u7 /d_50/key_f_time
Pitch start l val: u7 /d_50/pitch_start_l
Pitch l1 val: u7 /d_50/pitch_l1
Pitch l2 val: u7 /d_50/pitch_l2
Pitch sustain val: u7 /d_50/pitch_sustain
Pitch end l val: u7 /d_50/pitch_end_l
Velo range val: u7 /d_50/velo_range
Wg pitch coarse val: u7 /d_50/wg_pitch_coarse
Wg pitch fine val: u7 /d_50/wg_pitch_fine
Wg pitch 1 kf val: u7 /d_50/wg_pitch_1_kf
Lfo mode val: u7 /d_50/lfo_mode
Pitch env mode val: u7 /d_50/pitch_env_mode
Pitch bend mode val: u7 /d_50/pitch_bend_mode
Synth waveform val: u7 /d_50/synth_waveform
Pulse width val: u7 /d_50/pulse_width
Pwm velo val: u7 /d_50/pwm_velo
Pwm at val: u7 /d_50/pwm_at
Lfo depth val: u7 /d_50/lfo_depth
Pwm lfo sel val: u7 /d_50/pwm_lfo_sel
Pcm waveform val: u7 /d_50/pcm_waveform
Tvf cutoff freq val: u7 /d_50/tvf_cutoff_freq
Tvf resonance val: u7 /d_50/tvf_resonance
Kf gradient val: u7 /d_50/kf_gradient
Kf bias point val: u7 /d_50/kf_bias_point
Kf bias level val: u7 /d_50/kf_bias_level
Tvf env depth val: u7 /d_50/tvf_env_depth
Tvf env velo val: u7 /d_50/tvf_env_velo
Tvf lfo select val: u7 /d_50/tvf_lfo_select
Tvf lfo depth val: u7 /d_50/tvf_lfo_depth
Tvf at range val: u7 /d_50/tvf_at_range
Tvf attack val: u7 /d_50/tvf_attack
Tvf t1 2 val: u7 /d_50/tvf_t1_2
Tvf t2 3 val: u7 /d_50/tvf_t2_3
Tvf t3 sus val: u7 /d_50/tvf_t3_sus
Tvf release val: u7 /d_50/tvf_release
Tvf key f time val: u7 /d_50/tvf_key_f_time
Tvf l1 val: u7 /d_50/tvf_l1
Tvf l2 val: u7 /d_50/tvf_l2
Tvf l3 val: u7 /d_50/tvf_l3
Tvf sus l val: u7 /d_50/tvf_sus_l
Tvf end l val: u7 /d_50/tvf_end_l
Key f depth val: u7 /d_50/key_f_depth
Tva level val: u7 /d_50/tva_level
Tva velo val: u7 /d_50/tva_velo
Tva bias point val: u7 /d_50/tva_bias_point
Tva bias level val: u7 /d_50/tva_bias_level
Velo attack val: u7 /d_50/velo_attack
Tva lfo select val: u7 /d_50/tva_lfo_select
Tva lfo depth val: u7 /d_50/tva_lfo_depth
Tva at range val: u7 /d_50/tva_at_range
Tva attack val: u7 /d_50/tva_attack
Tva t1 2 val: u7 /d_50/tva_t1_2
Tva t2 3 val: u7 /d_50/tva_t2_3
Tva t3 sus val: u7 /d_50/tva_t3_sus
Tva release val: u7 /d_50/tva_release
Tva key f time val: u7 /d_50/tva_key_f_time
Tva l1 val: u7 /d_50/tva_l1
Tva l2 val: u7 /d_50/tva_l2
Tva l3 val: u7 /d_50/tva_l3
Tva sustain val: u7 /d_50/tva_sustain
Tva end l val: u7 /d_50/tva_end_l
Wg pitch 2 kf val: u7 /d_50/wg_pitch_2_kf
Lfo 1 wf val: u7 /d_50/lfo_1_wf
Lfo 1 rate val: u7 /d_50/lfo_1_rate
Lfo 2 wf val: u7 /d_50/lfo_2_wf
Lfo 2 rate val: u7 /d_50/lfo_2_rate
Lfo 3 wf val: u7 /d_50/lfo_3_wf
Lfo 3 rate val: u7 /d_50/lfo_3_rate
Lfo 1 sync val: u7 /d_50/lfo_1_sync
Lfo 1 delay val: u7 /d_50/lfo_1_delay
Lfo 2 sync val: u7 /d_50/lfo_2_sync
Lfo 2 delay val: u7 /d_50/lfo_2_delay
Lfo 3 sync val: u7 /d_50/lfo_3_sync
Lfo 3 delay val: u7 /d_50/lfo_3_delay

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>.

JSON

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.

Other versions

The Roland D-50 is mapped in 2 versions. per Electra preset.

Frequently asked questions

How many parameters of the Roland D-50 can be controlled over MIDI?

SynthHub's map of the Roland D-50 lists 2 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 D-50?

Yes: SynthHub's hosted MCP server knows the Roland D-50's MIDI map, and its browser relay lets the agent send it parameter changes or load a sound, each sound change confirmed by you.