Oberheim OB-X8: MIDI CC, NRPN and OSC map¶
The Oberheim OB-X8 as named OSC addresses — 121 CC, 55 NRPN — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.
| Device | Oberheim OB-X8 |
|---|---|
| Vendor | Oberheim |
| OSC prefix | /ob_x8 |
| Source | 🎛️ Derived from an Electra One community preset |
| Revision | per pencilresearch canonical CSV |
| Upstream | electra-preset |
| Driver file | devices/oberheim/ob_x8.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/oberheim/ob_x8.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 ob_x8: ask “what can the Oberheim OB-X8 do?” and it reads this map with list_routes. See the MCP guide.
MIDI CC and NRPN parameters (176)¶
| OSC address | CC | NRPN (MSB/LSB) | Range | Nature | Section |
|---|---|---|---|---|---|
/ob_x8/bank_select_msb |
0 | 0–127 | continuous | ||
/ob_x8/mod_box_lfo2_bend_amount |
1 | 0–127 | continuous | ||
/ob_x8/vintage |
3 | 0–127 | continuous | ||
/ob_x8/portamento_rate |
5 | 0–127 | continuous | ||
/ob_x8/data_entry_msb |
6 | 0–127 | continuous | ||
/ob_x8/master_volume |
7 | 0–127 | continuous | ||
/ob_x8/program_volume |
8 | 0–127 | continuous | ||
/ob_x8/transpose_up_down |
9 | 0–127 | continuous | ||
/ob_x8/page2_panwidth |
10 | 0–127 | continuous | ||
/ob_x8/expresion_pedal |
11 | 0–127 | continuous | ||
/ob_x8/osc1_xmod |
12 | 0–127 | continuous | ||
/ob_x8/osc1_filter_env_mod |
13 | 0–127 | continuous | ||
/ob_x8/page2_osc_xmod_amt |
14 | 0–127 | continuous | ||
/ob_x8/osc1_freq |
15 | 0–127 | continuous | ||
/ob_x8/osc2_freq |
16 | 0–127 | continuous | ||
/ob_x8/osc2_detune |
17 | 0–127 | continuous | ||
/ob_x8/page2_voice_detune_range |
18 | 0–127 | continuous | ||
/ob_x8/osc1_waveform |
19 | 0–127 | continuous | ||
/ob_x8/osc2_waveform |
20 | 0–127 | continuous | ||
/ob_x8/osc1_pw |
21 | 0–127 | continuous | ||
/ob_x8/osc2_pw |
22 | 0–127 | continuous | ||
/ob_x8/osc_square_mode |
23 | 0–127 | continuous | ||
/ob_x8/osc1_sync |
24 | 0–127 | continuous | ||
/ob_x8/osc1_level |
25 | 0–127 | continuous | ||
/ob_x8/osc2_level |
26 | 0–127 | continuous | ||
/ob_x8/page2_osc1_on_level |
27 | 0–127 | continuous | ||
/ob_x8/page2_osc2_on_level |
28 | 0–127 | continuous | ||
/ob_x8/noise_level |
29 | 0–127 | continuous | ||
/ob_x8/page2_noise_on_level |
30 | 0–127 | continuous | ||
/ob_x8/filter_modulation |
31 | 0–127 | continuous | ||
/ob_x8/bank_select_lsb |
32 | 0–127 | continuous | ||
/ob_x8/filter_frequency |
33 | 0–127 | continuous | ||
/ob_x8/filter_resonance |
34 | 0–127 | continuous | ||
/ob_x8/filter_type |
35 | 0–127 | continuous | ||
/ob_x8/filter_keyboard |
36 | 0–127 | continuous | ||
/ob_x8/page2_filter_kbd_on_level |
37 | 0–127 | continuous | ||
/ob_x8/data_entry_lsb |
38 | 0–127 | continuous | ||
/ob_x8/filter_env_attack |
39 | 0–127 | continuous | ||
/ob_x8/filter_env_decay |
40 | 0–127 | continuous | ||
/ob_x8/filter_env_sustain |
41 | 0–127 | continuous | ||
/ob_x8/filter_env_release |
42 | 0–127 | continuous | ||
/ob_x8/filter_env_velocity_on_off |
43 | 0–127 | continuous | ||
/ob_x8/filter_pressure |
44 | 0–127 | continuous | ||
/ob_x8/volume_env_attack |
45 | 0–127 | continuous | ||
/ob_x8/volume_env_decay |
46 | 0–127 | continuous | ||
/ob_x8/volume_env_sustain |
47 | 0–127 | continuous | ||
/ob_x8/volume_env_release |
48 | 0–127 | continuous | ||
/ob_x8/volume_env_velocity_on_off |
49 | 0–127 | continuous | ||
/ob_x8/env_type |
50 | 0–127 | continuous | ||
/ob_x8/lfo1_rate |
51 | 0–127 | continuous | ||
/ob_x8/lfo1_shape |
52 | 0–127 | continuous | ||
/ob_x8/lfo1_depth1 |
53 | 0–127 | continuous | ||
/ob_x8/lfo1_depth2 |
54 | 0–127 | continuous | ||
/ob_x8/lfo1_dest1_osc1 |
55 | 0–127 | continuous | ||
/ob_x8/lfo1_dest1_osc2 |
56 | 0–127 | continuous | ||
/ob_x8/lfo1_dest1_filter |
57 | 0–127 | continuous | ||
/ob_x8/lfo1_dest2_pwm1 |
58 | 0–127 | continuous | ||
/ob_x8/lfo1_dest2_pwm2 |
59 | 0–127 | continuous | ||
/ob_x8/lfo1_dest2_volume |
60 | 0–127 | continuous | ||
/ob_x8/lfo_pressure |
61 | 0–127 | continuous | ||
/ob_x8/page2_lfo_type |
62 | 0–127 | continuous | ||
/ob_x8/page2_lfo_sample_hold_in |
63 | 0–127 | continuous | ||
/ob_x8/sustain |
64 | 0–127 | continuous | ||
/ob_x8/unison |
70 | 0–127 | continuous | ||
/ob_x8/unison_voice_count |
71 | 0–127 | continuous | ||
/ob_x8/unison_key_mode |
72 | 0–127 | continuous | ||
/ob_x8/page2_pedal_release |
73 | 0–127 | continuous | ||
/ob_x8/brightness_filter_cutoff_relative |
74 | 0–127 | continuous | ||
/ob_x8/mod_box_lfo2_rate |
75 | 0–127 | continuous | ||
/ob_x8/mod_box_lfo2_shape |
76 | 0–127 | continuous | ||
/ob_x8/mod_box_lfo2_dest_osc1 |
77 | 0–127 | continuous | ||
/ob_x8/mod_box_lfo2_dest_osc2 |
78 | 0–127 | continuous | ||
/ob_x8/mod_box_lfo2_depth |
79 | 0–127 | continuous | ||
/ob_x8/mod_box_lfo2_bend_osc2_only |
80 | 0–127 | continuous | ||
/ob_x8/mod_box_mode |
81 | 0–127 | continuous | ||
/ob_x8/mod_boxlfo2_lower |
82 | 0–127 | continuous | ||
/ob_x8/mod_box_lfo2_upper |
83 | 0–127 | continuous | ||
/ob_x8/mod_boxarp_on |
84 | 0–127 | continuous | ||
/ob_x8/mod_boxarp_speed |
85 | 0–127 | continuous | ||
/ob_x8/mod_boxarp_hold_kbd |
86 | 0–127 | continuous | ||
/ob_x8/mod_box_arp_down_up |
87 | 0–127 | continuous | ||
/ob_x8/mod_box_arp_lower |
88 | 0–127 | continuous | ||
/ob_x8/mod_box_arp_upper |
89 | 0–127 | continuous | ||
/ob_x8/arp_transpose |
90 | 0–127 | continuous | ||
/ob_x8/page2_portamento_mode |
91 | 0–127 | continuous | ||
/ob_x8/page2_portamento_match |
92 | 0–127 | continuous | ||
/ob_x8/page2_portamento_quantize |
93 | 0–127 | continuous | ||
/ob_x8/page2_portamento_legato |
94 | 0–127 | continuous | ||
/ob_x8/lower_upper_no_select |
95 | 0–127 | continuous | ||
/ob_x8/data_increment |
96 | 0–127 | continuous | ||
/ob_x8/data_decrement |
97 | 0–127 | continuous | ||
/ob_x8/nrpn_lsb |
98 | 0–127 | continuous | ||
/ob_x8/nrpn_msb |
99 | 0–127 | continuous | ||
/ob_x8/rpn_lsb |
100 | 0–127 | continuous | ||
/ob_x8/rpn_msb |
101 | 0–127 | continuous | ||
/ob_x8/page2_lfo1_trigger |
102 | 0–127 | continuous | ||
/ob_x8/page2_lfo1_trigger_phase |
103 | 0–127 | continuous | ||
/ob_x8/page2_lfo1_kbd_track |
104 | 0–127 | continuous | ||
/ob_x8/page2_lfo1_mod1_ramp_delay |
105 | 0–127 | continuous | ||
/ob_x8/page2_lfo1_mod1_ramp_up |
106 | 0–127 | continuous | ||
/ob_x8/page2_lfo1_ramp_invert |
107 | 0–127 | continuous | ||
/ob_x8/page2_lfo1_mod1_quantize |
108 | 0–127 | continuous | ||
/ob_x8/page2_lfo1_osc1_mod1_invert |
109 | 0–127 | continuous | ||
/ob_x8/page2_lfo1_mod2_ramp_delay |
110 | 0–127 | continuous | ||
/ob_x8/page2_lfo1_mod2_ramp_up |
111 | 0–127 | continuous | ||
/ob_x8/page2_lfo1_mod2_ramp_invert |
112 | 0–127 | continuous | ||
/ob_x8/page2_lfo1_mod2_quantize |
113 | 0–127 | continuous | ||
/ob_x8/page2_lfo1_osc1_mod2_invert |
114 | 0–127 | continuous | ||
/ob_x8/page2_mod2_ramp_to_lfo_speed |
115 | 0–127 | continuous | ||
/ob_x8/page2_lfo_shift_voices58 |
116 | 0–127 | continuous | ||
/ob_x8/page2_chord_key_limit |
117 | 0–127 | continuous | ||
/ob_x8/page2_chord_hold_mode |
118 | 0–127 | continuous | ||
/ob_x8/normal_split_double_mode |
119 | 0–127 | continuous | ||
/ob_x8/all_sound_off |
120 | 0–127 | continuous | ||
/ob_x8/reset_controllers |
121 | 0–127 | continuous | ||
/ob_x8/local_control_on_off |
122 | 0–127 | continuous | ||
/ob_x8/all_notes_off |
123 | 0–127 | continuous | ||
/ob_x8/omni_mode_off |
124 | 0–127 | continuous | ||
/ob_x8/omni_mode_on |
125 | 0–127 | continuous | ||
/ob_x8/mono_mode_on |
126 | 0–127 | continuous | ||
/ob_x8/poly_mode_on |
127 | 0–127 | continuous | ||
/ob_x8/filter_envelope/attack |
0 / 60 | 0–255 | continuous | Filter Envelope | |
/ob_x8/filter_envelope/decay |
0 / 62 | 0–255 | continuous | Filter Envelope | |
/ob_x8/filter_envelope/sustain |
0 / 64 | 0–127 | continuous | Filter Envelope | |
/ob_x8/filter_envelope/release |
0 / 66 | 0–255 | continuous | Filter Envelope | |
/ob_x8/filter/cutoff_freq |
0 / 22 | 0–127 | continuous | Filter | |
/ob_x8/filter/resonance |
0 / 23 | 0–127 | continuous | Filter | |
/ob_x8/filter_envelope/attack |
0 / 63 | 0–255 | continuous | Filter Envelope | |
/ob_x8/filter_envelope/attack |
0 / 65 | 0–127 | continuous | Filter Envelope | |
/ob_x8/filter_envelope/attack |
0 / 67 | 0–255 | continuous | Filter Envelope | |
/ob_x8/filter/filter_env_mod |
0 / 59 | 0–127 | continuous | Filter | |
/ob_x8/filter/filter_type |
0 / 24 | 0–127 | continuous | Filter | |
/ob_x8/volume_envelope/attack |
0 / 61 | 0–255 | continuous | Volume Envelope | |
/ob_x8/oscillators/pan_mode |
0 / 100 | 0–127 | continuous | Oscillators | |
/ob_x8/oscillators/pan_width |
0 / 101 | 0–127 | continuous | Oscillators | |
/ob_x8/mixer/level_osc1 |
0 / 97 | 0–127 | continuous | Mixer | |
/ob_x8/mixer/level_osc2 |
0 / 98 | 0–127 | continuous | Mixer | |
/ob_x8/mixer/level_noise |
0 / 99 | 0–127 | continuous | Mixer | |
/ob_x8/filter/filter_ky_trac |
0 / 123 | 0–127 | continuous | Filter | |
/ob_x8/oscillators/voice_detune_r |
0 / 4 | 0–127 | continuous | Oscillators | |
/ob_x8/oscillators/unison_voices |
0 / 75 | 0–8 | discrete | Oscillators | |
/ob_x8/buttons/osc_1 |
0 / 19 | 0–127 | continuous | Buttons | |
/ob_x8/buttons/osc_2 |
0 / 20 | 0–127 | continuous | Buttons | |
/ob_x8/buttons/noise |
0 / 21 | 0–127 | continuous | Buttons | |
/ob_x8/filter/kbd |
0 / 25 | 0–127 | continuous | Filter | |
/ob_x8/oscillators/unison_keymod |
0 / 76 | 0–127 | continuous | Oscillators | |
/ob_x8/master/vintage |
0 / 26 | 0–127 | continuous | Master | |
/ob_x8/modulators/mod_1_attack |
0 / 43 | 0–127 | continuous | Modulators | |
/ob_x8/modulators/mod_1_delay |
0 / 42 | 0–127 | continuous | Modulators | |
/ob_x8/modulators/mod_2_attack |
0 / 48 | 0–127 | continuous | Modulators | |
/ob_x8/modulators/mod_2_delay |
0 / 47 | 0–127 | continuous | Modulators | |
/ob_x8/control/bend_lever |
0 / 72 | 0–127 | continuous | Control | |
/ob_x8/modulators/mod1_env_type |
0 / 44 | 0–127 | continuous | Modulators | |
/ob_x8/modulators/mod1_quantize |
0 / 45 | 0–127 | continuous | Modulators | |
/ob_x8/modulators/mod2_env_type |
0 / 49 | 0–127 | continuous | Modulators | |
/ob_x8/modulators/mod2_quantize |
0 / 50 | 0–127 | continuous | Modulators | |
/ob_x8/master/chord_holdmode |
0 / 95 | 0–127 | continuous | Master | |
/ob_x8/modulators/osc1mod1_inver |
0 / 46 | 0–127 | continuous | Modulators | |
/ob_x8/modulators/osc1mod2_inver |
0 / 51 | 0–127 | continuous | Modulators | |
/ob_x8/modulators/osc2env_lfo_sp |
0 / 52 | 0–127 | continuous | Modulators | |
/ob_x8/portamento |
0 / 14 | 0–127 | continuous | ||
/ob_x8/control/portamento_leg |
0 / 18 | 0–127 | continuous | Control | |
/ob_x8/porta_mode |
0 / 15 | 0–127 | continuous | ||
/ob_x8/porta_match |
0 / 16 | 0–127 | continuous | ||
/ob_x8/porta_quantize |
0 / 17 | 0–127 | continuous | ||
/ob_x8/modulators/lfo_type |
0 / 27 | 0–127 | continuous | Modulators | |
/ob_x8/modulators/lfo_s_h_in |
0 / 28 | 0–127 | continuous | Modulators | |
/ob_x8/modulators/lfo_key_trig |
0 / 39 | 0–127 | continuous | Modulators | |
/ob_x8/modulators/lfo_trig_point |
0 / 40 | 0–127 | continuous | Modulators | |
/ob_x8/osc1_edits/osc_1_p_width |
0 / 7 | 0–127 | continuous | OSC1 Edits | |
/ob_x8/osc2_edits/osc_2_p_width |
0 / 8 | 0–127 | continuous | OSC2 Edits | |
/ob_x8/modulators/osc_squaremode |
0 / 10 | 0–127 | continuous | Modulators | |
/ob_x8/modulators/osc_tri_x_mod |
0 / 11 | 0–127 | continuous | Modulators | |
/ob_x8/modulators/lfo_key_track |
0 / 41 | 0–127 | continuous | Modulators | |
/ob_x8/modulators/lfo_shift_voc |
0 / 53 | 0–127 | continuous | Modulators | |
/ob_x8/modulators/vibr_lfo_wave |
0 / 55 | 0–127 | continuous | Modulators |
Performance MIDI¶
Notes, pitch bend and any CC are also available: /ob_x8/note/on <note> <velocity>, /ob_x8/cc/<number> <value>, /ob_x8/pitchbend <0-16383>, /ob_x8/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.