Subsystem Search

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
Modulation
part_modulation
1 0-127
Foot Type
part_foot_type
4 0-127
Portamento Time
part_portamento_time
5 0-127
Volume
part_volume
7 0-127
Panpot
part_panpot
10 0-127
Expression
part_expression
11 0-127

Switches and pedals

Control CC Values
Hold 1
part_hold_1
64 0-127
Portamento
part_portamento
65 0-127
Sostenuto
part_sostenuto
66 0-127
Soft
part_soft
67 0-127
Legato Foot Switch
part_legato_foot_switch
68 0-127
Portamento control
part_portamento_control
84 0-127

Sound controllers

Control CC Values
Resonance
part_resonance
71 0-127
Release Time
part_release_time
72 0-127
Attack time
part_attack_time
73 0-127
Cutoff
part_cutoff
74 0-127
Decay Time
part_decay_time
75 0-127
Vibrato Rate
part_vibrato_rate
76 0-127
Vibrato Depth
part_vibrato_depth
77 0-127
Vibrato Delay
part_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
Modulation
drum_modulation
1 0-127
Foot Type
drum_foot_type
4 0-127
Volume
drum_volume
7 0-127
Panpot
drum_panpot
10 0-127
Expression
drum_expression
11 0-127

Switches and pedals

Control CC Values
Hold 1
drum_hold_1
64 0-127
Sostenuto
drum_sostenuto
66 0-127
Soft
drum_soft
67 0-127

Sound controllers

Control CC Values
Resonance
drum_resonance
71 0-127
Release Time
drum_release_time
72 0-127
Attack time
drum_attack_time
73 0-127
Cutoff
drum_cutoff
74 0-127
Decay Time
drum_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

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.