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 JP-8000 MIDI implementation
The MIDI implementation of the Roland JP-8000: what it answers to, and the 50 controls it offers.
At a glance
- Firmware
- Not recorded.
- MIDI channel
- Any one of 1 to 16.
- Parts
- Upper and Lower Part, 2 of them: each on a MIDI channel of its own, taking notes, controls, and program changes.
Performance Control: on a MIDI channel of its own, taking controls and program changes. - MIDI mode
- 3: omni off, poly.
- Voices
- 8, or 1 as set on the instrument, shared by the parts that play notes.
- 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, one value for every key. 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 256 presets.
- MIDI clock
- Received.
- Start and stop
- Received.
- Control change
- 50 controls, in the tables below.
- NRPN
- None.
- 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/jp_8000") has loaded them.
Upper and lower part
LFO1
| Control | CC | Values |
|---|---|---|
LFO1 Ratelfo1_rate |
16 | 0-127 |
LFO1 Fadelfo1_fade |
20 | 0-127 |
OSC common
| Control | CC | Values |
|---|---|---|
Oscillator Balanceosc_balance |
8 | 0-127 |
Cross Modulation Depthcross_modulation_depth |
70 | 0-127 |
Oscillator LFO1 Depthosc_lfo1_depth |
18 | 0-127 |
Oscillator Envelope Depthosc_envelope_depth |
25 | 0-127 |
Oscillator Envelope Attack Timeosc_envelope_attack |
26 | 0-127 |
Oscillator Envelope Decay Timeosc_envelope_decay |
27 | 0-127 |
OSC1
| Control | CC | Values |
|---|---|---|
OSC1 Control 1osc1_control_1 |
4 | 0-127 |
OSC1 Control 2osc1_control_2 |
76 | 0-127 |
OSC2
| Control | CC | Values |
|---|---|---|
OSC2 Rangeosc2_range |
21 | 0-127 |
OSC2 Fine Tune/Wideosc2_fine_wide |
77 | 0-127 |
OSC2 Pulse Widthosc2_pulse_width |
78 | 0-127 |
OSC2 PWM Depthosc2_pwm_depth |
79 | 0-127 |
Filter
| Control | CC | Values |
|---|---|---|
Cutoff Frequencycutoff_frequency |
74 | 0-127 |
Resonanceresonance |
71 | 0-127 |
Cutoff Frequency Key Followcutoff_key_follow |
30 | 0-127 |
Filter LFO1 Depthfilter_lfo1_depth |
19 | 0-127 |
Filter Envelope Depthfilter_envelope_depth |
81 | 0-127 |
Filter Envelope Attack Timefilter_attack |
82 | 0-127 |
Filter Envelope Decay Timefilter_decay |
83 | 0-127 |
Filter Envelope Sustain Levelfilter_sustain |
28 | 0-127 |
Filter Envelope Release Timefilter_release |
29 | 0-127 |
Amp
| Control | CC | Values |
|---|---|---|
Amplifier Levelamp_level |
7 | 0-127 |
Amplifier LFO1 Depthamp_lfo1_depth |
80 | 0-127 |
Amplifier Envelope Attack Timeamp_attack |
73 | 0-127 |
Amplifier Envelope Decay Timeamp_decay |
75 | 0-127 |
Amplifier Envelope Sustain Levelamp_sustain |
31 | 0-127 |
Amplifier Envelope Release Timeamp_release |
72 | 0-127 |
Tone control
| Control | CC | Values |
|---|---|---|
Tone Control Basstone_control_bass |
92 | 0-127 |
Tone Control Trebletone_control_treble |
95 | 0-127 |
Chorus
| Control | CC | Values |
|---|---|---|
Chorus Levelchorus_level |
93 | 0-127 |
Delay
| Control | CC | Values |
|---|---|---|
Delay Timedelay_time |
12 | 0-127 |
Delay Feedbackdelay_feedback |
13 | 0-127 |
Delay Leveldelay_level |
94 | 0-127 |
Keyboard
| Control | CC | Values |
|---|---|---|
Portamento Timeportamento_time |
5 | 0-127 |
LFO2
| Control | CC | Values |
|---|---|---|
LFO2 Ratelfo2_rate |
17 | 0-127 |
Pitch LFO2 Depthpitch_lfo2_depth |
22 | 0-127 |
Filter LFO2 Depthfilter_lfo2_depth |
23 | 0-127 |
Amp LFO2 Depthamp_lfo2_depth |
24 | 0-127 |
Controller
| Control | CC | Values |
|---|---|---|
Ribbon Controller Downribbon_controller_down |
2 | 0-127 |
Control change
| Control | CC | Values |
|---|---|---|
Modulationmodulation |
1 | 0-127 |
Panpotpanpot |
10 | 0-127 |
Expressionexpression |
11 | 0-127 |
Hold1hold_1 |
64 | 0-63 off, 64-127 on |
Portamentoportamento |
65 | 0-63 off, 64-127 onReceived, never sent |
Legato Footswitchlegato_footswitch |
68 | 0-63 off, 64-127 onReceived, never sent |
Portamento Controlportamento_control |
84 | 0-127 |
Bank Selectbank_select |
0 | 80 user, 81 preset |
Performance control
Control change
| Control | CC | Values |
|---|---|---|
Bank Selectperformance_bank_select |
0 | 80 user, 81 preset |
Where these facts come from
Source documents
- JP-8000 Owner's Manual, its user manual, read on 9 October 2026 (the file read).
- Roland - Support - JP-8000 - Owner's Manuals, its download page, read on 9 October 2026 (the file read).
- Roland - Support - JP-8000 - Updates & Drivers, its download page, read on 9 October 2026 (the file read).
- JP-8000 Software Update Procedure, 1.05, its release notes, read on 9 October 2026 (the file read).
How they were read
Owner's Manual, 138 sheets, a scan: the organisation, the parts and the performances at pp. 48 and 49, the ribbon at p. 66, mono at p. 70, the modulation lever at p. 73, the performance and system settings at pp. 85 to 90, the standard settings at p. 92, the MIDI chapter at pp. 93 to 98, MIDI in general at p. 107, the parameter lists at pp. 112 to 115, the Transmit/Receive Setting List at p. 116, the MIDI implementation at pp. 117 to 127, its chart at p. 128 and the specifications at p. 129. Roland's support pages for the instrument, its manuals and its updates. And the readme in Roland's update archive for operating system 1.05.
A SCAN, CITED BY PAGE. Every one of the 138 sheets is one 1-bit image. Wherever a page number is printed it is the sheet's own, which the first reading checked on thirty sheets and the second on every numbered sheet, pp. 2 to 133, so the manual is cited with no offset. Sheet 137 is blank. The book names no edition: the last page of distributors says "As of October, 28, 1996" (manual p. 136) and prints 01014512 and '96-11-E3-11S(D) beneath it, and the back cover 71451034 (manual p. 138).
TWO PARTS, EACH ON A CHANNEL OF ITS OWN. "On the JP-8000, two Patches are always selected, and you can choose to play just one or both Patches." (manual p. 49), one on the Upper part and one on the Lower, and the specifications give "2 (Upper/Lower)" (manual p. 129). Each part's channel is a performance's Part MIDI CH, 1-16, OFF (manual p. 86), and "On the JP-8000, the transmit channel and the receive channel are shared." (manual p. 107). The only part-channel figures the book prints are the standard settings a temporary performance is initialised to, the Upper part on 1 and the Lower on 2 (manual p. 92). The two are recorded as one kind of part with a count of two, because each holds a whole patch of the same parameters (manual pp. 49 and 112). The controls below are each part's on the reading of p. 107's sentence above, and of Volume and Panpot acting on each Part (manual p. 117): no page says which channel a knob's controller is sent on, or that one received on the Lower part's channel edits the Lower patch. Program change on a part's channel selects its patch (manual p. 94).
AND A THIRD CHANNEL SELECTS PERFORMANCES. The Performance Control Channel, 1-16, OFF: "This selects the MIDI channel on which MIDI Program Change messages will be transmitted and received to select Performances." (manual p. 89). "If you set the Part MIDI channel to the same MIDI channel as the Performance Control channel (p.89), Performance selections will take priority" (manual p. 86).
TWO MORE CHANNELS, NOT RECORDED AS PARTS. The Remote Control Channel, 1-16, ALL, OFF, takes a keyboard in place of the JP-8000's own: "By setting the Remote Control Channel to the transmit channel of an external MIDI device, you can use the keyboard and controllers of the external MIDI device in exactly the same way as the keyboard and controllers of the JP-8000 itself." (manual p. 89), which includes its arpeggiator and pattern recording (manual pp. 95 and 117). The Trigger Source Channel, 1-16, takes the notes that start envelopes when Individual Trigger is on, and in Split sends the Lower part's notes for them (manual pp. 88 and 117), on 15 in the standard settings (manual p. 92). Neither is a part: what arrives on them acts as the JP-8000's own keyboard and triggers do, through the key mode, the panel and the arpeggiator, which this format has no way to describe.
FORTY KNOBS, TWO MODES, AND NO PAGE SAYS WHICH IS THE FACTORY'S. The edit mode governs every slider and knob but Volume and Tempo (manual p. 89), and the Transmit/Receive Setting List gives the forty a column for each mode, and the ribbon's two halves an entry in MODE2's alone, headed MODE1 and MODE2 (Factory Setting) (manual p. 116). "MODE1: Editing data of the sliders/knobs will be transmitted and received using the prescribed MIDI messages." (manual p. 89), and in MODE2 "you can specify the MIDI messages that will be used to transmit and receive editing data." (manual p. 89), with the warning "Be aware that this mode uses MIDI in a non-standard way." (manual p. 89). The implementation sets the condition: "Tx/Rx Setting (p.89) is effective when Tx/Rx Edit SW (p.90) is ON and Tx/Rx Edit Mode (p.89) is MODE2." (manual p. 117). The chapter on recording to a sequencer says the opposite of the switch: Turn this OFF. (manual p. 97), then "When you move a controller or playback a Motion, control change messages or exclusive messages will be transmitted and recorded on the external sequencer." (manual p. 97). No page reconciles the two. MODE1 gives 28 of the forty a controller number and twelve EXCLUSIVE, and wherever MODE1 has a number MODE2's factory setting has the same one, so the controls below carry MODE2's factory numbers, and the twelve marked below travel as system exclusive in MODE1. No page gives the factory value of the edit mode, or of the edit switch - nor of the Program Change, Exclusive Receive and MIDI Sync switches, or of the performance and remote channels: the system parameters' list gives each setting's values and no default (manual p. 115), and the standard settings are a patch's and a performance's (manual p. 92). In MODE2 every number is a setting: "Tx/Rx settings can be made for controller numbers 1 to 31 and 33 to 95." (manual p. 117).
THE TWELVE ARE EXACTLY THE ONES AMONG THE FORTY THE IMPLEMENTATION DOES NOT NAME. MODE2 gives MODE1's twelve exclusive knobs controllers 20 to 31 (manual p. 116), and those twelve are the only numbers among the forty that the implementation's list of control changes has no entry for (manual pp. 117 and 118). Every number MODE1 uses is in that list, and the setting list writes a name before each number, mostly the list's: GENERAL1:CC16, SOUND-CTL5:CC74, EFFECT-CTL1:CC12 (manual p. 116) against General Purpose Controller 1, Sound Controller 5 and Effect Control 1 (manual pp. 117 and 118). For 92 to 95 it writes TREMOLO, CHORUS, SELESTE and PHASER (manual p. 116), where the list has Effects Depth 2-5 (manual p. 118). So what a number does is what the setting gives it, and with the edit switch on, a number assigned to a parameter loses the meaning the list gives it: "those control changes will not have their normal function but will function in the same way as JP-8000 knob movements for those Patch parameters." (manual p. 117). Volume, 7, is the plainest case: "Volume mesages are used to adjust the volume balance of each Part." (manual p. 117), and both modes give the Amp section's LEVEL VOLUME:CC07 (manual p. 116).
THE ADDRESS MAP AGREES. Its block for the same settings has 42 entries, the forty and the ribbon's two, each set to OFF, CC#1-31, AFTER, CC#33-95, SYSEX and the ribbon's without SYSEX (manual p. 122). Its names are its own: where the setting list has OSC2's PULSE WIDTH and PWM DEPTH it has OSC2 Control1 and OSC2 Control2, in the same order, and it spells Oscillaator Balance and Tone Control Base. The labels below are the parameter list's full names (manual pp. 112 and 113).
SEVEN CONTROLLERS THE SETTING LIST DOES NOT ASSIGN. The implementation also lists 1 Modulation, 10 Panpot, 11 Expression, 64 Hold1, 65 Portamento, 68 Legato Footswitch and 84 Portamento Control (manual pp. 117 and 118). The control pedal's Pedal Assign is OFF, MODULATION: CC01, PANPOT: CC10, EXPRESSION: CC11, LFO 1 RATE-RIBBON DOWN (manual p. 85), and its first setting is "MODULATION: CC01: The same change will occur as when the Modulation lever is moved." (manual p. 74). The only other page to put a number beside the lever or the hold pedal says "Modulation (CC#1), Pan (CC#10), Expression (CC#11), and Hold (CC#64) can be controlled via pedals or the modulation lever" (manual p. 107); no page says in so many words what the lever or the hold pedal sends. Those four are recorded both ways on that reading. The arpeggiator and pattern player send 84 (manual p. 120). No factory assignment and no fixed control sends 65 or 68: the instrument has a hold pedal jack and a control pedal jack and no other pedal jack (manual p. 129), and Pedal Assign offers neither (manual p. 85). A knob given 65 or 68 in MODE2 would send it, but as that knob's parameter rather than as a portamento or legato switch, so those two are recorded as received only.
THE RIBBON. Its two halves are settings of their own, and "Ribbon controller Transmit/Receive Settings are valid regardless of whether Edit Transmit/Receive Mode is set to MODE 1 or MODE" (manual p. 116) - the footnote stops there - and its own page says "The Transmit/Receive Setting of the ribbon controller is always valid, regardless of whether the Edit Transmit/Receive mode is set to MODE1 or MODE2." (manual p. 89). The channel pressure section puts it under the knobs' condition instead: "The Tx/Rx Setting (p.89) is effective when Tx/Rx Edit SW (p.90) is ON and Tx/Rx Edit Mode (p.89) is MODE2. You can assign Channel Pressure messages to the Ribbon Controller." (manual p. 118). Its right half, UP, is AFTERTOUCH, channel pressure, and its left, DOWN, BREATH:CC02 (manual pp. 89 and 116), which the implementation's reset values call the defaults too (manual p. 119). "The JP-8000's keyboard does not implement Channel Pressure." (manual p. 118), so at the factory settings the channel pressure this instrument sends is the ribbon's right half, and pressure it receives moves that half (manual p. 118). In MODE2 a knob can be given aftertouch instead (manual pp. 89 and 107).
PROGRAMS: 256 PATCHES AND 128 PERFORMANCES. 128 user and 128 preset patches, and 64 user and 64 preset performances (manual p. 129). Bank select's MSB is 80 for the user banks and 81 for the presets, its LSB 0, and program change takes 0 to 127 for a patch and 0 to 63 for a performance (manual p. 117). The Program Change switch is OFF, PC or BANK SEL + PC (manual p. 90), and bank select is "Not received and transmitted when the Tx/Rx Program Change SW is OFF or PC." (manual p. 117). presets counts the patches; a performance is a pair of them with settings of its own (manual p. 49), as asm/leviasynth counts its singles and not its multis.
EIGHT VOICES, SHARED. "The JP-8000's sound source is able to produce up to 8 notes (voices) at once." (manual p. 48), and the specifications give 8 Voices (manual p. 129). In Dual and Split a performance's Voice Assign divides them between the Lower and Upper parts, 6-2 to 2-6 (manual p. 85), and each patch's Mono switch plays one: "When this is Off, up to 8 notes can be played simultaneously." (manual p. 70).
CLOCK, TRANSPORT AND SONG POSITION ARE RECEIVED ONLY. The chart crosses every system realtime row as transmitted, and as recognised circles Clock with the footnote "O x is selectable." (manual p. 128), circles Start and Stop, and crosses Commands (manual p. 128). The implementation lists clock, start, continue and stop, each with "This message will be received if the MIDI Sync SW is ON." (manual p. 120), where the chart has no row for continue. The chart also circles song position as recognised (manual p. 128); this format has no field for it, and the implementation does not describe it.
WHAT IS NOT CARRIED, AND THE MISPRINTS IN IT. The system exclusive map (manual pp. 121 to 127). The registered parameters, bend sensitivity and master fine tuning, and data entry, 6 and 38, which carries their values (manual pp. 117 and 118). Bank select's LSB, 0 in every row. And the misprints, none of which changes a field: the MIDI chapter's table gives the user performances 51H/00H (manual p. 94), the presets' bank, where the implementation gives them 80 (manual p. 117); the system parameters' list gives the Program Change switch ON, PC, BANK SEL + PC (manual p. 115) where its own page gives OFF (manual p. 90); the setting list spells Effects Depth 4 SELESTE and leaves its footnote unfinished (manual p. 116); the implementation prints Effects Depth 2-5's third byte as kkH, its mark for a note number (manual p. 118); and the address map's two spellings above.