Skip to content

Roland JD-XA: MIDI CC, NRPN and OSC map

The Roland JD-XA as named OSC addresses — 75 CC, 16 NRPN — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.

Device Roland JD-XA
Vendor Roland
OSC prefix /jd_xa
Source 📦 Derived from MIDI Guide (community CC/NRPN data)
Firmware unknown
Revision per pencilresearch canonical CSV
Upstream pencilresearch
Data licence CC-BY-SA-4.0 — MIDI Guide (https://midi.guide) by Pencil Research and contributors
Driver file devices/roland/jd_xa.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/roland/jd_xa.json --out-port <N> --in-port <M>

Then send OSC to 127.0.0.1:7777, for example:

osc-bridge osc-send /jd_xa/modulation 63

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

MIDI CC and NRPN parameters (91)

OSC address CC NRPN (MSB/LSB) Range Nature Section
/jd_xa/modulation 1 0–127 continuous
/jd_xa/osc2_pwm 2 0–127 continuous
/jd_xa/osc2_pw 4 0–127 continuous
/jd_xa/portamento_time 5 0–127 continuous
/jd_xa/volume 7 0–127 continuous
/jd_xa/panpot 10 0–127 continuous
/jd_xa/expression 11 0–127 continuous
/jd_xa/reverb_level 12 0–127 continuous
/jd_xa/delay_level 13 0–127 continuous
/jd_xa/tfx1_control 14 0–127 continuous
/jd_xa/tfx2_control 15 0–127 continuous
/jd_xa/lfo1_rate 16 0–127 continuous
/jd_xa/lfo2_rate 17 0–127 continuous
/jd_xa/lfo3_rate 18 0–127 continuous
/jd_xa/osc1_pitch 19 0–127 continuous
/jd_xa/osc2_pitch 20 0–127 continuous
/jd_xa/osc3_pitch 21 0–127 continuous
/jd_xa/osc1_fine 22 0–127 continuous
/jd_xa/osc2_fine 23 0–127 continuous
/jd_xa/osc3_fine 24 0–127 continuous
/jd_xa/osc1_cross_mod 25 0–127 continuous
/jd_xa/osc1_p_env_depth 26 0–127 continuous
/jd_xa/osc2_p_env_depth 27 0–127 continuous
/jd_xa/osc3_p_env_depth 28 0–127 continuous
/jd_xa/osc1_level 29 0–127 continuous
/jd_xa/osc2_level 30 0–127 continuous
/jd_xa/aux_level 31 0–127 continuous
/jd_xa/hold 64 0–127 continuous
/jd_xa/portamento 65 0–127 continuous
/jd_xa/atck_pitch_env 70 0–127 continuous
/jd_xa/resonance 71 0–127 continuous
/jd_xa/release_time 72 0–127 continuous
/jd_xa/attack_time 73 0–127 continuous
/jd_xa/cutoff 74 0–127 continuous
/jd_xa/decay_time 75 0–127 continuous
/jd_xa/vibrato_rate 76 0–127 continuous
/jd_xa/vibrato_depth 77 0–127 continuous
/jd_xa/vibrato_delay 78 0–127 continuous
/jd_xa/tfx1_select 80 0–127 continuous
/jd_xa/tfx2_select 81 0–127 continuous
/jd_xa/delay_time 82 0–127 continuous
/jd_xa/mic_level 83 0–127 continuous
/jd_xa/tfx_reverb_send_lev 91 0–127 continuous
/jd_xa/lfo_pitch_depth 92 0–127 continuous
/jd_xa/lfo_filter_depth 93 0–127 continuous
/jd_xa/lfo_amp_depth 94 0–127 continuous
/jd_xa/decay_pitch_env 95 0–127 continuous
/jd_xa/nrpn_msb 98 0–127 continuous
/jd_xa/nrpn_lsb 99 0–127 continuous
/jd_xa/rpn_msb 100 0–127 continuous
/jd_xa/rpn_lsb 101 0–127 continuous
/jd_xa/osc1_cutoff 102 0–127 continuous
/jd_xa/cutoff_fine_osc2_cutoff 103 0–127 continuous
/jd_xa/osc3_cutoff 104 0–127 continuous
/jd_xa/osc1_resonance 105 0–127 continuous
/jd_xa/osc2_resonance 106 0–127 continuous
/jd_xa/osc3_resonance 107 0–127 continuous
/jd_xa/osc1_filt_env_depth 108 0–127 continuous
/jd_xa/osc2_filt_env_depth 109 0–127 continuous
/jd_xa/osc3_filt_env_depth 110 0–127 continuous
/jd_xa/osc1_key_follow 111 0–127 continuous
/jd_xa/osc2_key_follow_fine 112 0–127 continuous
/jd_xa/osc3_key_follow 113 0–127 continuous
/jd_xa/osc1_hpf_cutoff 114 0–127 continuous
/jd_xa/drive_osc2_hpf_cutoff 115 0–127 continuous
/jd_xa/osc3_hpf_cutoff 116 0–127 continuous
/jd_xa/amp_level 117 0–127 continuous
/jd_xa/all_sound_off 120 0–127 continuous
/jd_xa/reset_all_controllers 121 0–127 continuous
/jd_xa/local_on_off 122 0–127 continuous
/jd_xa/all_notes_off 123 0–127 continuous
/jd_xa/omni_off 124 0–127 continuous
/jd_xa/omni_on 125 0–127 continuous
/jd_xa/mono 126 0–127 continuous
/jd_xa/poly 127 0–127 continuous
/jd_xa/p1_lfo_shape 0 / 3 0–16383 continuous
/jd_xa/p2_lfo_shape 0 / 4 0–16383 continuous
/jd_xa/p3_lfo_shape 0 / 5 0–16383 continuous
/jd_xa/p1_lfo_pitch_depth 0 / 15 0–16383 continuous
/jd_xa/p2_lfo_pitch_depth 0 / 16 0–16383 continuous
/jd_xa/p3_lfo_pitch_depth 0 / 17 0–16383 continuous
/jd_xa/p1_lfo_filter_depth 0 / 18 0–16383 continuous
/jd_xa/p2_lfo_filter_depth 0 / 19 0–16383 continuous
/jd_xa/p3_lfo_filter_depth 0 / 20 0–16383 continuous
/jd_xa/p1_lfo_amp_depth 0 / 21 0–16383 continuous
/jd_xa/p2_lfo_amp_depth 0 / 22 0–16383 continuous
/jd_xa/p3_lfo_amp_depth 0 / 23 0–16383 continuous
/jd_xa/analog_pulse_width 0 / 37 0–16383 continuous
/jd_xa/p1_envelope 0 / 124 0–16383 continuous
/jd_xa/p2_envelope 0 / 125 0–16383 continuous
/jd_xa/p3_envelope 0 / 126 0–16383 continuous

Performance MIDI

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