Yamaha reface DX: MIDI CC, NRPN and OSC map¶
The Yamaha reface DX as named OSC addresses — 53 CC, 77 SysEx commands — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.
| Device | Yamaha reface DX |
|---|---|
| Vendor | Yamaha |
| OSC prefix | /reface_dx |
| Source | 🎛️ Derived from an Electra One community preset |
| Revision | per pencilresearch canonical CSV |
| Upstream | electra-preset |
| Driver file | devices/yamaha/reface_dx.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/reface_dx.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 reface_dx: ask “what can the Yamaha reface DX do?” and it reads this map with list_routes. See the MCP guide.
MIDI CC and NRPN parameters (53)¶
| OSC address | CC | NRPN (MSB/LSB) | Range | Nature | Section |
|---|---|---|---|---|---|
/reface_dx/general/algorithm |
80 | 0–127 | continuous | General | |
/reface_dx/operator_1/op_1_output_level |
85 | 0–127 | continuous | Operator 1 | |
/reface_dx/operator_1/op_1_feedback_level |
86 | 0–127 | continuous | Operator 1 | |
/reface_dx/operator_1/op_1_feedback_type |
87 | 0–127 | continuous | Operator 1 | |
/reface_dx/operator_1/op_1_frequency_mode |
88 | 0–127 | continuous | Operator 1 | |
/reface_dx/operator_1/op_1_frequency_ratio_freq_coarse |
89 | 0–127 | continuous | Operator 1 | |
/reface_dx/operator_1/op_1_frequency_ratio_freq_fine |
90 | 0–127 | continuous | Operator 1 | |
/reface_dx/operator_2/op_2_output_level |
102 | 0–127 | continuous | Operator 2 | |
/reface_dx/operator_2/op_2_feedback_level |
103 | 0–127 | continuous | Operator 2 | |
/reface_dx/operator_2/op_2_feedback_type |
104 | 0–127 | continuous | Operator 2 | |
/reface_dx/operator_2/op_2_frequency_mode |
105 | 0–127 | continuous | Operator 2 | |
/reface_dx/operator_2/op_2_frequency_ratio_freq_coarse |
106 | 0–127 | continuous | Operator 2 | |
/reface_dx/operator_2/op_2_frequency_ratio_freq_fine |
107 | 0–127 | continuous | Operator 2 | |
/reface_dx/operator_3/op_3_output_level |
108 | 0–127 | continuous | Operator 3 | |
/reface_dx/operator_3/op_3_feedback_level |
109 | 0–127 | continuous | Operator 3 | |
/reface_dx/operator_3/op_3_feedback_type |
110 | 0–127 | continuous | Operator 3 | |
/reface_dx/operator_3/op_3_frequency_mode |
111 | 0–127 | continuous | Operator 3 | |
/reface_dx/operator_3/op_3_frequency_ratio_freq_coarse |
112 | 0–127 | continuous | Operator 3 | |
/reface_dx/operator_3/op_3_frequency_ratio_freq_fine |
113 | 0–127 | continuous | Operator 3 | |
/reface_dx/operator_4/op_4_output_level |
114 | 0–127 | continuous | Operator 4 | |
/reface_dx/operator_4/op_4_feedback_level |
115 | 0–127 | continuous | Operator 4 | |
/reface_dx/operator_4/op_4_feedback_type |
116 | 0–127 | continuous | Operator 4 | |
/reface_dx/operator_4/op_4_frequency_mode |
117 | 0–127 | continuous | Operator 4 | |
/reface_dx/operator_4/op_4_frequency_ratio_freq_coarse |
118 | 0–127 | continuous | Operator 4 | |
/reface_dx/operator_4/op_4_frequency_ratio_freq_fine |
119 | 0–127 | continuous | Operator 4 | |
/reface_dx/operator_level/level_1 |
85 | 0–127 | continuous | Operator Level | |
/reface_dx/operator_level/level_2 |
102 | 0–127 | continuous | Operator Level | |
/reface_dx/operator_level/level_3 |
108 | 0–127 | continuous | Operator Level | |
/reface_dx/operator_level/level_4 |
114 | 0–127 | continuous | Operator Level | |
/reface_dx/algo |
80 | 0–127 | continuous | ||
/reface_dx/fixed |
88 | 0–127 | continuous | ||
/reface_dx/fixed |
105 | 0–127 | continuous | ||
/reface_dx/fixed |
111 | 0–127 | continuous | ||
/reface_dx/fixed |
117 | 0–127 | continuous | ||
/reface_dx/coase |
89 | 0–31 | continuous | ||
/reface_dx/coase |
106 | 0–31 | continuous | ||
/reface_dx/coase |
112 | 0–31 | continuous | ||
/reface_dx/coase |
118 | 0–31 | continuous | ||
/reface_dx/fine |
90 | 0–127 | continuous | ||
/reface_dx/fine |
107 | 0–127 | continuous | ||
/reface_dx/fine |
113 | 0–127 | continuous | ||
/reface_dx/fine |
119 | 0–127 | continuous | ||
/reface_dx/feedback_1 |
86 | 0–127 | continuous | ||
/reface_dx/feedback_2 |
103 | 0–127 | continuous | ||
/reface_dx/feedback_3 |
109 | 0–127 | continuous | ||
/reface_dx/feedback_4 |
115 | 0–127 | continuous | ||
/reface_dx/expression_11 |
11 | 0–127 | continuous | ||
/reface_dx/fb_saw_sqr |
87 | 0–127 | continuous | ||
/reface_dx/fb_saw_sqr |
104 | 0–127 | continuous | ||
/reface_dx/fb_saw_sqr |
110 | 0–127 | continuous | ||
/reface_dx/fb_saw_sqr |
116 | 0–127 | continuous | ||
/reface_dx/modulation_1 |
1 | 0–127 | continuous | ||
/reface_dx/volume_7 |
7 | 0–127 | continuous |
SysEx commands (77)¶
| OSC address | Arguments |
|---|---|
/reface_dx/pitch_eg/level_1 |
val: u7 |
/reface_dx/pitch_eg/level_2 |
val: u7 |
/reface_dx/pitch_eg/level_3 |
val: u7 |
/reface_dx/pitch_eg/level_4 |
val: u7 |
/reface_dx/op_1_eg |
val: u7 |
/reface_dx/pitch_eg/rate_1 |
val: u7 |
/reface_dx/pitch_eg/rate_2 |
val: u7 |
/reface_dx/pitch_eg/rate_3 |
val: u7 |
/reface_dx/pitch_eg/rate_4 |
val: u7 |
/reface_dx/pitch_lfo/waveform |
val: u7 |
/reface_dx/pitch_lfo/speed |
val: u7 |
/reface_dx/op_1/lfo_pmd |
val: u7 |
/reface_dx/pitch_lfo/delay |
val: u7 |
/reface_dx/pitch_lfo/pitch_mod |
val: u7 |
/reface_dx/op_1/lfo_depth_op1 |
val: u7 |
/reface_dx/op_1/lfo_depth_op2 |
val: u7 |
/reface_dx/op_1/lfo_depth_op3 |
val: u7 |
/reface_dx/op_1/lfo_depth_op4 |
val: u7 |
/reface_dx/effect_1/eff_type |
val: u7 |
/reface_dx/effect_2/eff_type |
val: u7 |
/reface_dx/effect_1/para_1 |
val: u7 |
/reface_dx/effect_1/para_2 |
val: u7 |
/reface_dx/effect_2/para_1 |
val: u7 |
/reface_dx/effect_2/para_2 |
val: u7 |
/reface_dx/char1 |
val: u7 |
/reface_dx/char2 |
val: u7 |
/reface_dx/char3 |
val: u7 |
/reface_dx/char4 |
val: u7 |
/reface_dx/char5 |
val: u7 |
/reface_dx/char6 |
val: u7 |
/reface_dx/char7 |
val: u7 |
/reface_dx/char8 |
val: u7 |
/reface_dx/char9 |
val: u7 |
/reface_dx/char10 |
val: u7 |
/reface_dx/local_transpos |
val: u7 |
/reface_dx/effect_1/part_mode |
val: u7 |
/reface_dx/portamento |
val: u7 |
/reface_dx/p_bend_range |
val: u7 |
/reface_dx/algo |
val: u7 |
/reface_dx/speaker_output |
val: u7 |
/reface_dx/lcd_contrast |
val: u7 |
/reface_dx/master_transp |
val: u7 |
/reface_dx/op1_on |
val: u7 |
/reface_dx/fb_saw_sqr |
val: u7 |
/reface_dx/mode |
val: u7 |
/reface_dx/op_1/detune |
val: u7 |
/reface_dx/op_1/lfo_depth |
val: u7 |
/reface_dx/op_1/output |
val: u7 |
/reface_dx/op_1/fb_amount |
val: u7 |
/reface_dx/op_1/coarse |
val: u7 |
/reface_dx/op_1/fine |
val: u7 |
/reface_dx/lfo_peg |
val: u7 |
/reface_dx/op_1/level_1 |
val: u7 |
/reface_dx/op_1/level_2 |
val: u7 |
/reface_dx/op_1/level_3 |
val: u7 |
/reface_dx/op_1/level_4 |
val: u7 |
/reface_dx/op_1/rate_1 |
val: u7 |
/reface_dx/op_1/rate_2 |
val: u7 |
/reface_dx/op_1/rate_3 |
val: u7 |
/reface_dx/op_1/rate_4 |
val: u7 |
/reface_dx/op_1/rate_scale |
val: u7 |
/reface_dx/op_1/level_l_depth |
val: u7 |
/reface_dx/op_1/level_r_depth |
val: u7 |
/reface_dx/op_1/vel_sense |
val: u7 |
/reface_dx/op_1/l_scale_typ |
val: u7 |
/reface_dx/op_1/r_scale_typ |
val: u7 |
/reface_dx/op2_on |
val: u7 |
/reface_dx/op_2/output |
val: u7 |
/reface_dx/op_2/level_1 |
val: u7 |
/reface_dx/op_2/level_2 |
val: u7 |
/reface_dx/op_2/level_3 |
val: u7 |
/reface_dx/op_2/level_4 |
val: u7 |
/reface_dx/op_2/rate_1 |
val: u7 |
/reface_dx/op_2/rate_2 |
val: u7 |
/reface_dx/op3_on |
val: u7 |
/reface_dx/lfo_pitch_eg |
val: u7 |
/reface_dx/op4_on |
val: u7 |
Performance MIDI¶
Notes, pitch bend and any CC are also available: /reface_dx/note/on <note> <velocity>, /reface_dx/cc/<number> <value>, /reface_dx/pitchbend <0-16383>, /reface_dx/program_change <n>.
Limitations¶
CC/NRPN only. SysEx (preset management, display control, bulk dump/load, vendor-proprietary opcodes) is NOT covered by pencilresearch. To extend this device with SysEx, sniff the vendor editor, add `sysex.header/footer` + `commands` blocks, and use `update_device.md` PR template.