This page is read from MIDI Instrument Definitions, a Python library used in the author's other projects, in which every number is traced to a document its maker published. Its source is on GitHub.
Roland JUPITER-X MIDI implementation
The MIDI implementation of the Roland JUPITER-X: what it answers to, and the 41 controls it offers, on firmware 3.0.
At a glance
- Firmware
- This page describes firmware 3.0.
- MIDI channel
- Any one of 1 to 16.
- Parts
- Part, 4 of them: each on a MIDI channel of its own, taking notes, controls, and program changes.
Part R: on a MIDI channel of its own, taking notes, controls, and program changes. - Voices
- Not recorded.
- Note range
- 0 to 127: C-1 to G9, counting middle C as C4.
- Velocity
- Sent and received. Release velocity is received.
- Aftertouch
- Channel pressure and polyphonic, each answered. It sends aftertouch too.
- Pitch bend
- How far it bends is not recorded, and the range can be changed.
- Program change
- Received and sent, with 128 presets.
- MIDI clock
- Sent and received.
- Start and stop
- Not recorded.
- Control change
- 41 controls, in the tables below.
- NRPN
- Not recorded.
- System exclusive
- Supported.
Controls
In the order the definition gives them, by part and group. Under each control is the name a program calls it by, once pymidiinstrumentdefs.load("roland/jupiter_x") has loaded them.
Part
Continuous controllers
| Control | CC | Values |
|---|---|---|
Modulationpart_modulation |
1 | 0-127 |
Foot Typepart_foot_type |
4 | 0-127 |
Portamento Timepart_portamento_time |
5 | 0-127 |
Volumepart_volume |
7 | 0-127 |
Panpotpart_panpot |
10 | 0-127 |
Expressionpart_expression |
11 | 0-127 |
Switches and pedals
| Control | CC | Values |
|---|---|---|
Hold 1part_hold_1 |
64 | 0-127 |
Portamentopart_portamento |
65 | 0-127 |
Sostenutopart_sostenuto |
66 | 0-127 |
Softpart_soft |
67 | 0-127 |
Legato Foot Switchpart_legato_foot_switch |
68 | 0-127 |
Portamento controlpart_portamento_control |
84 | 0-127 |
Sound controllers
| Control | CC | Values |
|---|---|---|
Resonancepart_resonance |
71 | 0-127 |
Release Timepart_release_time |
72 | 0-127 |
Attack timepart_attack_time |
73 | 0-127 |
Cutoffpart_cutoff |
74 | 0-127 |
Decay Timepart_decay_time |
75 | 0-127 |
Vibrato Ratepart_vibrato_rate |
76 | 0-127 |
Vibrato Depthpart_vibrato_depth |
77 | 0-127 |
Vibrato Delaypart_vibrato_delay |
78 | 0-127 |
Effect send levels
| Control | CC | Values |
|---|---|---|
General Purpose Effect 1 (Reverb Send Level)part_general_purpose_effect_1_reverb_send_level |
91 | 0-127 |
General Purpose Effect 3 (Chorus Send Level)part_general_purpose_effect_3_chorus_send_level |
93 | 0-127 |
Without a group
| Control | CC | Values |
|---|---|---|
Bank Select (MSB)part_bank_select_msb |
0 | 0-127 |
Bank Select (LSB)part_bank_select_lsb |
32 | 0-127 |
Part R
Continuous controllers
| Control | CC | Values |
|---|---|---|
Modulationdrum_modulation |
1 | 0-127 |
Foot Typedrum_foot_type |
4 | 0-127 |
Volumedrum_volume |
7 | 0-127 |
Panpotdrum_panpot |
10 | 0-127 |
Expressiondrum_expression |
11 | 0-127 |
Switches and pedals
| Control | CC | Values |
|---|---|---|
Hold 1drum_hold_1 |
64 | 0-127 |
Sostenutodrum_sostenuto |
66 | 0-127 |
Softdrum_soft |
67 | 0-127 |
Sound controllers
| Control | CC | Values |
|---|---|---|
Resonancedrum_resonance |
71 | 0-127 |
Release Timedrum_release_time |
72 | 0-127 |
Attack timedrum_attack_time |
73 | 0-127 |
Cutoffdrum_cutoff |
74 | 0-127 |
Decay Timedrum_decay_time |
75 | 0-127 |
Effect send levels
| Control | CC | Values |
|---|---|---|
General Purpose Effect 1 (Reverb Send Level)drum_general_purpose_effect_1_reverb_send_level |
91 | 0-127 |
General Purpose Effect 3 (Chorus Send Level)drum_general_purpose_effect_3_chorus_send_level |
93 | 0-127 |
Without a group
| Control | CC | Values |
|---|---|---|
Bank Select (MSB)drum_bank_select_msb |
0 | 0-127 |
Bank Select (LSB)drum_bank_select_lsb |
32 | 0-127 |
Where these facts come from
Source documents
- JUPITER-X/Xm MIDI Implementation, 1.06, dated 19 April 2022, implementation, read on 6 October 2026 (the file read).
- JUPITER-X/Xm Parameter Guide, 07, parameter guide, read on 6 October 2026 (the file read).
- JUPITER-X Reference Manual, 07, its user manual, read on 6 October 2026 (the file read).
- JUPITER-X Owner's Manual, 08, its user manual, read on 6 October 2026 (the file read).
- JUPITER-X/Xm JD-800 Model Expansion Owner's Manual, 06, its user manual, read on 6 October 2026 (the file read).
- JUPITER-X Sound List, 02, its user manual, read on 6 October 2026 (the file read).
- JUPITER-X/Xm Vocal Designer Model Expansion Owner's Manual, 04, its user manual, read on 6 October 2026 (the file read).
- Roland - Support - JUPITER-X - Owner's Manuals, its download page, read on 6 October 2026.
How they were read
ELEVEN ENGLISH DOCUMENTS, 377 SHEETS, AND THE TWO THAT MATTER DIVIDE THE WORK THE OPPOSITE WAY ROUND FROM THIS MAKER'S LAST INSTRUMENT HERE. See the comment above the definition. Every one of the eleven was opened and searched, because rank 89 cost a corrected definition for reading the document whose name promised the map and not the one that held it.
WHAT IS IN EACH, WHICH IS THE POINT OF LISTING THEM. The MIDI Implementation (90 sheets) holds the 24 controllers below and the system exclusive address map, and gives no tone parameter a controller number. The Parameter Guide (75) holds the per-model tone tables, every Rx switch, and the system MIDI settings this definition's clock rests on. The Reference Manual (65) holds the models, the parts and the polyphony. The Owner's Manual (31) holds the specification. Both of those print the range of controllers an assignable control can be set to. Of the other seven, three name no controller number: SOUND PACK/WAVE EXPANSION Install Manual (4), Roland Cloud Connect Setup Manual (3) and MainStage Profile Usage Guide (2), in their text and in their pictures. The Editor Owner's Manual (14) has none in its text and one in a picture: its screenshot of a tone editor shows a Source 1 set to MOD:CC01 (sheet 10). The Sound List (61) gives the two sliders of each of its 192 factory scenes a function, and 298 of the 384 are controllers (sound_list pp. 3-8). The Vocal Designer Model Expansion guide (13) names one in passing, "CC17 (controller number 17)" (vocal_designer p. 7). And the JD-800 Model Expansion guide (19) has a map of its own. Until 2026-10-12 this said the seven named none but for the JD-800's. The search behind that did not look for the Sound List's spelling, CUTOF: CC74, or at a picture.
FIFTEEN NUMBERS HAVE NO HEADING UNDER TRANSMISSION, ONE SENTENCE SAYS ANY CONTROLLER CAN BE SENT, AND THE CONTROLS THAT SEND ARE OFFERED ALL FIFTEEN. 5, 10, 66, 67, 68, 71, 72, 73, 75 to 78, 84, 91 and 93 each have a heading under reception (implementation pp. 1-3) and none under transmission, whose headings are bank select, 1, 4, 7, 11, 64, 65 and 74 (implementation p. 6). First, the transmission half opens its controllers with "By selecting a controller number that corresponds to the setting of parameters of controllers (knobs, etc.), this unit can transmit any control change message." (implementation p. 6). Second, the address map gives the three assignable buttons, the two sliders, the two pedals and the two wheels a function each, in the system's block and again in the scene's, eighteen parameters, and every one lists the controllers from MOD:CC01 to PHASR:CC95 with 32 as OFF:CC32 (implementation pp. 9, 10, 12 and 13). The fifteen are there as PTIME:CC05, PAN:CC10, SOSTE:CC66, SOFT:CC67, LEGAT:CC68, RESO:CC71, RELES:CC72, ATTAK:CC73, DECAY:CC75, VRATE:CC76, VDPTH:CC77, VDLY:CC78, PCTRL:CC84, REV:CC91 and CHO:CC93. Third, the Parameter Guide gives a slider's choices as "CC01–CC95 Controller number 1–95" (parameter_guide p. 3), and its table of what can be assigned to which control has a row CC01–31, 32 (OFF), 33–95 marked in all six columns (parameter_guide p. 37), which the Reference Manual and the Owner's Manual print as well (reference p. 52; owners_manual p. 31). Fourth, the Sound List has the factory scenes' sliders on six of the fifteen: RELES: CC72 76 times, ATTAK: CC73 73, RESO: CC71 37, PTIME: CC05 26, DECAY: CC75 five and VDPTH: CC77 once, of 298 (sound_list pp. 3-8). A missing heading denies nothing, so the fifteen state no direction, which is the reading roland/juno_x gives the four of them that its own implementation leaves out of transmission. Until 2026-10-12 each said direction: receives. What sending rests on is the first of the four and one sentence of the Reference Manual, "MIDI messages can be sent from the MIDI OUT connector and from USB MIDI OUT when you operate the controllers of this unit, such as the knobs and keyboard, and the various pedals connected to the rear panel." (reference p. 45). The second and third say a control can be set to the number, and the fourth that the factory's sliders are.
THE TONE PARAMETERS' NUMBERS ARE COUNTED HERE AND NOT CARRIED, AND THE COUNT WAS WRONG UNTIL 2026-10-12. The Parameter Guide's CC# column is in six tables (parameter_guide pp. 16-24): the common parameters of the tones it heads RD-PIANO, XV-5080, PR-A, PR-B, PD-C, PR-D, COMMON, PR-X, 7 rows with a number; JUPITER-8, 33; JUNO-106, 22; JX-8P, 30; SH-101, 22; and JUPITER-X, 35, four of whose rows hold more than one number. That is 149 rows and 155 numbers, 52 of them distinct, where this file said 156 rows over 46. A row is counted here as what lies between two rules of a table. Two readers who did not see each other's reading agree on every table, number for number. See the comment above the definition for what the numbers collide over, and for the lists that give a tone's four partials sixty numbers, seventeen of them in no table.
THE PARAMETER GUIDE'S TONE MAP HAS A SYSTEM SWITCH, AND FOUR OF THE NUMBERS BELOW ARE TONE NUMBERS TOO. The first of the Parameter Guide's tone tables has a note above it, "You can set whether control change messages (CC) are transmitted/received" (parameter_guide p. 16), by the Tone CC Map parameter, which "Sets whether control change messages (CC) for the tone parameters are transmitted/received (ON) or not (OFF)." (parameter_guide p. 36). 5 is the portamento time in all six tables, as it is in the implementation. 84 is not the same thing in the two documents: the implementation's is Portamento control, whose value is a note (implementation p. 2), and the JUPITER-X tone table gives 84 to FENV1 DECAY, by its footnote the first filter envelope's (parameter_guide pp. 23-24). No page reconciles them, and the control below is the implementation's. The JD-800 guide's effects table gives 93 to CH Level and 91 to RV Level (jd_800 pp. 13-14), the numbers of the two send levels below, and that guide does not name the switch.
THE IMPLEMENTATION CONTRADICTS ITSELF ABOUT NRPN, SO nrpn IS LEFT EMPTY RATHER THAN SET TO none. Three of its sentences treat NRPN as something this instrument holds: Data Entry is "the value of the parameter specified by RPN/NRPN" (implementation p. 1), RPN null sets both RPN and NRPN to unspecified (implementation p. 3), and Reset All Controllers resets "NRPN unset; previously set data will not change" (implementation p. 4). And the reception half, whose headings name 34 controller numbers, has none for 98 and none for 99, which are the only way to select an NRPN parameter, and no NRPN parameter list exists anywhere in 90 sheets. A document that says a thing twice and does not agree gets neither statement carried, and the disagreement written down instead - which is the rule novation/peak and novation/circuit_tracks established for default and which has not been applied to this field before.
AND IT CONTRADICTS ITSELF ABOUT ITS OWN MODEL ID, WHICH CHANGES NOTHING AND IS WORTH KNOWING. Its prose says "The model ID of the exclusive messages used by this instrument is 00H 00H 00H 65H." (implementation p. 5) and the two byte tables on that same sheet both gloss the fourth byte as 52H model ID #4, each under a line of bytes that has 65H there. The identical table in the transmission half reads 65H in its bytes and in its gloss, and a line under it has the model ID ending 65H (implementation p. 7), and the worked checksum example sends F0 41 10 00 00 00 65 12 (implementation p. 90). Seven places give 65H and two give 52H, so the two are the misprint - which a consumer needs only because a sysex implementer reading sheet 5 alone would address a device that is not there.
EVERY CONTROL NAMES ITS PART, ONCE FOR THE FOUR PARTS AND ONCE FOR PART R, AND SEVEN NUMBERS ARE THE FOUR PARTS' ALONE. Each part listens on a channel of its own setting, "Specifies the MIDI receive channel of each part." (parameter_guide p. 6), so none derives its channel from a base, and a control naming no part would mean one. The implementation's entries change the part's own parameters - "The Cutoff parameter (SCENE PART EDIT: MODIFY) will change." (implementation p. 2) - so a controller reaches whichever part listens on the channel it arrives on. Six entries name a parameter the Parameter Guide marks Part 1–4 only (parameter_guide p. 5) - Porta Time, Porta Sw, Legato Sw and the three vibrato offsets, which 5, 65, 68 and 76 to 78 change - and the entry for 84 says its glide "is determined by the Portamento Time value." (implementation p. 2), the same parameter. So the four parts carry all 24 numbers and Part R the other seventeen, Foot Type and bank select among them: 41 controls.
NOT RECORDED: the mode, there being no chart in any of the eleven documents to carry a Mode row. The transport, which no document mentions in any spelling - the implementation's System Realtime sections hold Active Sensing and nothing else in either direction, F8H, FAH, FBH and FCH appear on none of its 90 sheets, and the START/STOP in the reference manual is a function assignable to a pedal (reference p. 52) rather than a message. And the polyphony as a number, for the reason the maker gives.