Skip to content

Yamaha DX1: MIDI CC, NRPN and OSC map

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

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

Then send OSC to 127.0.0.1:7777, for example:

osc-bridge osc-send /dx1/op1_level

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

SysEx commands (101)

OSC address Arguments
/dx1/op1_level val: u7
/dx1/op2_level val: u7
/dx1/op3_level val: u7
/dx1/op4_level val: u7
/dx1/op5_level val: u7
/dx1/op6_level val: u7
/dx1/algorithm val: u7
/dx1/feedback val: u7
/dx1/transpose val: u7
/dx1/op1_attack val: u7
/dx1/op1_decay val: u7
/dx1/op1_sustain val: u7
/dx1/op1_release val: u7
/dx1/lfo_speed val: u7
/dx1/lfo_delay val: u7
/dx1/mod_depth val: u7
/dx1/amp_mod val: u7
/dx1/op1_coarse val: u7
/dx1/op1_fine val: u7
/dx1/op1_detune val: u7
/dx1/op1_on val: u7
/dx1/op2_coarse val: u7
/dx1/op2_fine val: u7
/dx1/op2_detune val: u7
/dx1/op2_on val: u7
/dx1/op3_coarse val: u7
/dx1/op3_fine val: u7
/dx1/op3_detune val: u7
/dx1/op3_on val: u7
/dx1/op4_coarse val: u7
/dx1/op4_fine val: u7
/dx1/op4_detune val: u7
/dx1/op4_on val: u7
/dx1/op5_coarse val: u7
/dx1/op5_fine val: u7
/dx1/op5_detune val: u7
/dx1/op5_on val: u7
/dx1/op6_coarse val: u7
/dx1/op6_fine val: u7
/dx1/op6_detune val: u7
/dx1/op6_on val: u7
/dx1/op1_env val: u7
/dx1/op1_l1 val: u7
/dx1/op1_l2 val: u7
/dx1/op1_l3 val: u7
/dx1/op1_l4 val: u7
/dx1/op2_env val: u7
/dx1/op2_l1 val: u7
/dx1/op2_l2 val: u7
/dx1/op2_l3 val: u7
/dx1/op2_l4 val: u7
/dx1/op3_env val: u7
/dx1/op3_l1 val: u7
/dx1/op3_l2 val: u7
/dx1/op3_l3 val: u7
/dx1/op3_l4 val: u7
/dx1/op4_env val: u7
/dx1/op4_l1 val: u7
/dx1/op4_l2 val: u7
/dx1/op4_l3 val: u7
/dx1/op4_l4 val: u7
/dx1/op5_env val: u7
/dx1/op5_l1 val: u7
/dx1/op5_l2 val: u7
/dx1/op5_l3 val: u7
/dx1/op5_l4 val: u7
/dx1/op6_env val: u7
/dx1/op6_l1 val: u7
/dx1/op6_l2 val: u7
/dx1/op6_l3 val: u7
/dx1/op6_l4 val: u7
/dx1/pitch_mod val: u7
/dx1/lfo_wave val: u7
/dx1/lfo_sync val: u7
/dx1/p_mod_sens val: u7
/dx1/peg_r1 val: u7
/dx1/peg_r2 val: u7
/dx1/peg_r3 val: u7
/dx1/peg_r4 val: u7
/dx1/peg_l1 val: u7
/dx1/peg_l2 val: u7
/dx1/peg_l3 val: u7
/dx1/peg_l4 val: u7
/dx1/op1_bp val: u7
/dx1/op1_l_depth val: u7
/dx1/op1_r_depth val: u7
/dx1/op1_l_curve val: u7
/dx1/op1_r_curve val: u7
/dx1/op1_rate_sc val: u7
/dx1/op2_bp val: u7
/dx1/op2_l_depth val: u7
/dx1/op2_r_depth val: u7
/dx1/op2_l_curve val: u7
/dx1/op2_r_curve val: u7
/dx1/op2_rate_sc val: u7
/dx1/op3_bp val: u7
/dx1/op3_l_depth val: u7
/dx1/op3_r_depth val: u7
/dx1/op3_l_curve val: u7
/dx1/op3_r_curve val: u7
/dx1/op3_rate_sc val: u7

Performance MIDI

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