Written from devices/oberheim/ob_xa.electra-dennis-ferrer.fw-encore.jsonEdit on GitHubJSON

Oberheim OB-Xa (per Electra preset) MIDI CC chart, NRPN and OSC map

The Oberheim OB-Xa MIDI implementation: 38 CC, each named, for Claude (MCP), SuperCollider or any OSC app.

  • sourceElectra One preset
  • firmwareencore
  • real unitnot yet checked

Not checked on a real Oberheim OB-Xa yet. Own one? Load a sound or send a control, and tell us whether it worked.

Maker
Oberheim
Version
per Electra preset
Source
Electra One preset
OSC prefix
/ob_xa

Use 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_xa.electra-dennis-ferrer.fw-encore.json --out-port <N> --in-port <M>

Then send OSC to 127.0.0.1:7777, for example:

osc-bridge osc-send /ob_xa/frequency_1 63

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

MIDI controls

38 controls, each with its number, its range and the name to send
Control CC Range Name to send
Frequency 1 28 0–127 /ob_xa/frequency_1
Pulse width 19 0–127 /ob_xa/pulse_width
Frequency 2 29 0–127 /ob_xa/frequency_2
Waveform 102 0–127 /ob_xa/waveform
Sync 104 0–127 /ob_xa/sync
F env 105 0–127 /ob_xa/f_env
Waveform 106 0–127 /ob_xa/waveform
Cutoff 16 0–127 /ob_xa/cutoff
Resonance 17 0–127 /ob_xa/resonance
Modulation 18 0–127 /ob_xa/modulation
Osc 1 108 0–127 /ob_xa/osc_1
Osc 2 109 0–127 /ob_xa/osc_2
Noise 111 0–127 /ob_xa/noise
4 pole 112 0–127 /ob_xa/4_pole
Track 113 0–127 /ob_xa/track
Filter env 20 0–127 /ob_xa/filter_env
Filter env 21 0–127 /ob_xa/filter_env
Filter env 22 0–127 /ob_xa/filter_env
Filter env 23 0–127 /ob_xa/filter_env
Amp env 24 0–127 /ob_xa/amp_env
Amp env 25 0–127 /ob_xa/amp_env
Amp env 26 0–127 /ob_xa/amp_env
Amp env 27 0–127 /ob_xa/amp_env
Lfo rate 80 0–127 /ob_xa/lfo_rate
Freq depth 1 0–127 /ob_xa/freq_depth
Pulse w depth 81 0–127 /ob_xa/pulse_w_depth
Lfo shape 88 0–127 /ob_xa/lfo_shape
Osc 1 85 0–127 /ob_xa/osc_1
Osc 2 86 0–127 /ob_xa/osc_2
Filter 87 0–127 /ob_xa/filter
Osc 1 82 0–127 /ob_xa/osc_1
Osc 2 83 0–127 /ob_xa/osc_2
Portamento 5 0–127 /ob_xa/portamento
Unison 114 0–127 /ob_xa/unison
Detune 30 0–127 /ob_xa/detune
Split double 89 0–127 /ob_xa/split_double
Upper lower 90 0–127 /ob_xa/upper_lower
All notes off 123 0–127 /ob_xa/all_notes_off

Performance MIDI

Notes, pitch bend and any CC are also available: /ob_xa/note/on <note> <velocity>, /ob_xa/cc/<number> <value>, /ob_xa/pitchbend <0-16383>, /ob_xa/program_change <n>.

JSON

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.

Other versions

The Oberheim OB-Xa is mapped in 2 versions. per Electra preset.

Frequently asked questions

Which MIDI CC controls the filter cutoff on the Oberheim OB-Xa?

CC 16 (0–127), named /ob_xa/cutoff in SynthHub's map.

How many parameters of the Oberheim OB-Xa can be controlled over MIDI?

SynthHub's map of the Oberheim OB-Xa lists 38 MIDI CC parameters, each with its number, range and a readable name; the full chart is on this page.

Can an AI agent like Claude control the Oberheim OB-Xa?

Yes: SynthHub's hosted MCP server knows the Oberheim OB-Xa's MIDI map, and its browser relay lets the agent send it parameter changes or load a sound, each sound change confirmed by you.