Skip to content

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

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

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

Then send OSC to 127.0.0.1:7777, for example:

osc-bridge osc-send /mks_50/oscillator/pulse

From Claude or any MCP client, the osc-bridge mcp server exposes this driver as mks_50: ask “what can the Roland MKS-50 do?” and it reads this map with list_routes. See the MCP guide.

SysEx commands (75)

OSC address Arguments
/mks_50/oscillator/pulse val: u7
/mks_50/oscillator/saw val: u7
/mks_50/sub val: u7
/mks_50/oscillator/range val: u7
/mks_50/filter/frequency val: u7
/mks_50/filter/resonance val: u7
/mks_50/mixer/osc_level val: u7
/mks_50/mixer/noise_level val: u7
/mks_50/mixer/sub_level val: u7
/mks_50/filter/hpf val: u7
/mks_50/filter/key_follow val: u7
/mks_50/pwm/rate val: u7
/mks_50/envelope/attack_level val: u7
/mks_50/envelope/break_level val: u7
/mks_50/envelope/decay_time val: u7
/mks_50/envelope/release_time val: u7
/mks_50/envelope/filter val: u7
/mks_50/pwm/depth val: u7
/mks_50/envelope/attack_time val: u7
/mks_50/envelope/break_time val: u7
/mks_50/envelope/sustain_level val: u7
/mks_50/envelope/key_follow val: u7
/mks_50/envelope/osc val: u7
/mks_50/lfo/rate val: u7
/mks_50/lfo/filter val: u7
/mks_50/env_modes/filter val: u7
/mks_50/env_modes/amp val: u7
/mks_50/env_modes/pitch val: u7
/mks_50/chorus/on_off val: u7
/mks_50/lfo/delay val: u7
/mks_50/lfo/osc val: u7
/mks_50/aftertouch/filter val: u7
/mks_50/aftertouch/amp val: u7
/mks_50/aftertouch/vibrato val: u7
/mks_50/chorus/rate val: u7
/mks_50/oscillator/mode val: u7
/mks_50/chord_memory val: u7
/mks_50/chord_note_1 val: u7
/mks_50/chord_note_2 val: u7
/mks_50/chord_note_3 val: u7
/mks_50/chord_note_4 val: u7
/mks_50/chord_note_5 val: u7
/mks_50/chord_note_6 val: u7
/mks_50/on_off val: u7
/mks_50/transpose val: u7
/mks_50/time val: u7
/mks_50/detune val: u7
/mks_50/key_range_low val: u7
/mks_50/key_range_high val: u7
/mks_50/aftertouch val: u7
/mks_50/pitch_bend val: u7
/mks_50/hold_pedal val: u7
/mks_50/mod_wheel val: u7
/mks_50/midi_volume val: u7
/mks_50/portamento val: u7
/mks_50/tone_name_1 val: u7
/mks_50/tone_name_2 val: u7
/mks_50/tone_name_3 val: u7
/mks_50/tone_name_4 val: u7
/mks_50/tone_name_5 val: u7
/mks_50/tone_name_6 val: u7
/mks_50/tone_name_7 val: u7
/mks_50/tone_name_8 val: u7
/mks_50/tone_name_9 val: u7
/mks_50/tone_name_10 val: u7
/mks_50/patch_name_1 val: u7
/mks_50/patch_name_2 val: u7
/mks_50/patch_name_3 val: u7
/mks_50/patch_name_4 val: u7
/mks_50/patch_name_5 val: u7
/mks_50/patch_name_6 val: u7
/mks_50/patch_name_7 val: u7
/mks_50/patch_name_8 val: u7
/mks_50/patch_name_9 val: u7
/mks_50/patch_name_10 val: u7

Performance MIDI

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