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:
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.