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 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 Rate
lfo1_rate
16 0-127
LFO1 Fade
lfo1_fade
20 0-127

OSC common

Control CC Values
Oscillator Balance
osc_balance
8 0-127
Cross Modulation Depth
cross_modulation_depth
70 0-127
Oscillator LFO1 Depth
osc_lfo1_depth
18 0-127
Oscillator Envelope Depth
osc_envelope_depth
25 0-127
Oscillator Envelope Attack Time
osc_envelope_attack
26 0-127
Oscillator Envelope Decay Time
osc_envelope_decay
27 0-127

OSC1

Control CC Values
OSC1 Control 1
osc1_control_1
4 0-127
OSC1 Control 2
osc1_control_2
76 0-127

OSC2

Control CC Values
OSC2 Range
osc2_range
21 0-127
OSC2 Fine Tune/Wide
osc2_fine_wide
77 0-127
OSC2 Pulse Width
osc2_pulse_width
78 0-127
OSC2 PWM Depth
osc2_pwm_depth
79 0-127

Filter

Control CC Values
Cutoff Frequency
cutoff_frequency
74 0-127
Resonance
resonance
71 0-127
Cutoff Frequency Key Follow
cutoff_key_follow
30 0-127
Filter LFO1 Depth
filter_lfo1_depth
19 0-127
Filter Envelope Depth
filter_envelope_depth
81 0-127
Filter Envelope Attack Time
filter_attack
82 0-127
Filter Envelope Decay Time
filter_decay
83 0-127
Filter Envelope Sustain Level
filter_sustain
28 0-127
Filter Envelope Release Time
filter_release
29 0-127

Amp

Control CC Values
Amplifier Level
amp_level
7 0-127
Amplifier LFO1 Depth
amp_lfo1_depth
80 0-127
Amplifier Envelope Attack Time
amp_attack
73 0-127
Amplifier Envelope Decay Time
amp_decay
75 0-127
Amplifier Envelope Sustain Level
amp_sustain
31 0-127
Amplifier Envelope Release Time
amp_release
72 0-127

Tone control

Control CC Values
Tone Control Bass
tone_control_bass
92 0-127
Tone Control Treble
tone_control_treble
95 0-127

Chorus

Control CC Values
Chorus Level
chorus_level
93 0-127

Delay

Control CC Values
Delay Time
delay_time
12 0-127
Delay Feedback
delay_feedback
13 0-127
Delay Level
delay_level
94 0-127

Keyboard

Control CC Values
Portamento Time
portamento_time
5 0-127

LFO2

Control CC Values
LFO2 Rate
lfo2_rate
17 0-127
Pitch LFO2 Depth
pitch_lfo2_depth
22 0-127
Filter LFO2 Depth
filter_lfo2_depth
23 0-127
Amp LFO2 Depth
amp_lfo2_depth
24 0-127

Controller

Control CC Values
Ribbon Controller Down
ribbon_controller_down
2 0-127

Control change

Control CC Values
Modulation
modulation
1 0-127
Panpot
panpot
10 0-127
Expression
expression
11 0-127
Hold1
hold_1
64 0-63 off, 64-127 on
Portamento
portamento
65 0-63 off, 64-127 on
Received, never sent
Legato Footswitch
legato_footswitch
68 0-63 off, 64-127 on
Received, never sent
Portamento Control
portamento_control
84 0-127
Bank Select
bank_select
0 80 user, 81 preset

Performance control

Control change

Control CC Values
Bank Select
performance_bank_select
0 80 user, 81 preset

Where these facts come from

Source documents

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.