Skip to content

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:

osc-bridge osc-send /ob_x8/bank_select_msb 63

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.