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 JD-08 MIDI implementation

The MIDI implementation of the Roland JD-08: what it answers to, and the 85 controls it offers, on firmware 1.03.

At a glance

Firmware
This page describes firmware 1.03.
MIDI channel
Any one of 1 to 16.
Parts
Part, 2 of them: each on a MIDI channel of its own, taking notes, controls, and program changes.
System: on a MIDI channel of its own, taking notes and program changes.
MIDI mode
3: omni off, poly.
Voices
Not recorded.
Note range
0 to 127: C-1 to G9, counting middle C as C4.
Velocity
Sent and received. Release velocity is ignored.
Aftertouch
Polyphonic, a value for each key. It sends none.
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
Sent and received.
Start and stop
Sent and received.
Control change
85 controls, in the tables below.
NRPN
None.
System exclusive
None.

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/jd_08") has loaded them.

Part

Portamento

Control CC Values
PORTAMENTO TIME
portamento_time
5 0-127
Received, never sent
PORTAMENTO
portamento
117 0-127
PORTAMENTO MODE
portamento_mode
118 0-127
Received, never sent

Bender range

Control CC Values
BENDER RANGE UP
bender_range_up
41 0-127
Received, never sent
BENDER RANGE DOWN
bender_range_down
49 0-127
Received, never sent

TVF

Control CC Values
TVF CUTOFF
tvf_cutoff
3 0-127
TVF RESONANSE
tvf_resonance
9 0-127
TVF FILTER MODE
tvf_filter_mode
86 0-127
TVF ENVELOPE DEPTH
tvf_env_depth
87 0-127
TVF KEY FOLLOW
tvf_key_follow
89 0-127
TVF LFO SELECT
tvf_lfo_select
90 0-127
TVF LFO DEPTH
tvf_lfo_depth
102 0-127

TVA

Control CC Values
TVA LEVEL
tva_level
103 0-127
TVA BIAS POINT
tva_bias_point
104 0-127
TVA BIAS LEVEL
tva_bias_level
105 0-127
TVA BIAS DIRECTION
tva_bias_direction
106 0-127
TVA LFO SELECT
tva_lfo_select
107 0-127
TVA LFO DEPTH
tva_lfo_depth
108 0-127

LFO 1

Control CC Values
LFO1 RATE
lfo1_rate
14 0-127
LFO1 DELAY
lfo1_delay
15 0-127
LFO1 FADE
lfo1_fade
16 0-127
LFO1 OFFSET
lfo1_offset
17 0-127
LFO1 KEY TRG
lfo1_key_trg
18 0-127
LFO1 WAVEFORM
lfo1_waveform
19 0-127
LFO1 RATE (Rate sync)
lfo1_rate_sync
96 0-127

LFO 2

Control CC Values
LFO2 RATE
lfo2_rate
20 0-127
LFO2 DELAY
lfo2_delay
21 0-127
LFO2 FADE
lfo2_fade
22 0-127
LFO2 WAVEFORM
lfo2_waveform
23 0-127
LFO2 OFFSET
lfo2_offset
24 0-127
LFO2 KEY TRG
lfo2_key_trg
25 0-127
LFO2 RATE (Rate sync)
lfo2_rate_sync
97 0-127

Pitch envelope

Control CC Values
PITCH ENVELOPE TIME KEY FOLLOW
pitch_env_time_key_follow
26 0-127
PITCH ENVELOPE L0
pitch_env_l0
27 0-127
PITCH ENVELOPE T1
pitch_env_t1
28 0-127
PITCH ENVELOPE L1
pitch_env_l1
29 0-127
PITCH ENVELOPE T2
pitch_env_t2
30 0-127
PITCH ENVELOPE T3
pitch_env_t3
31 0-127
PITCH ENVELOPE L2
pitch_env_l2
35 0-127

Filter envelope

Control CC Values
FILTER ENVELOPE TIME KEY FOLLOW
filter_env_time_key_follow
46 0-127
FILTER ENVELOPE T1
filter_env_t1
47 0-127
FILTER ENVELOPE L1
filter_env_l1
48 0-127
FILTER ENVELOPE T2
filter_env_t2
50 0-127
FILTER ENVELOPE L2
filter_env_l2
51 0-127
FILTER ENVELOPE T3
filter_env_t3
52 0-127
FILTER ENVELOPE SUSTAIN LEVEL
filter_env_sustain_level
53 0-127
FILTER ENVELOPE T4
filter_env_t4
54 0-127
FILTER ENVELOPE L4
filter_env_l4
56 0-127

Amp envelope

Control CC Values
AMP ENVELOPE TIME KEY FOLLOW
amp_env_time_key_follow
55 0-127
AMP ENVELOPE T1
amp_env_t1
57 0-127
AMP ENVELOPE L1
amp_env_l1
58 0-127
AMP ENVELOPE T2
amp_env_t2
59 0-127
AMP ENVELOPE L2
amp_env_l2
60 0-127
AMP ENVELOPE T3
amp_env_t3
61 0-127
AMP ENVELOPE SUSTAIN LEVEL
amp_env_sustain_level
62 0-127
AMP ENVELOPE T4
amp_env_t4
63 0-127

WG

Control CC Values
WAVEFORM
waveform
72 0-108
PITCH COARSE
pitch_coarse
79 0-127
PITCH FINE
pitch_fine
80 0-127
PITCH RANDOM
pitch_random
81 0-127
PITCH KEY FOLLOW
pitch_key_follow
82 0-127
WG LFO1 DEPTH
wg_lfo1_depth
83 0-127
WG LFO2 DEPTH
wg_lfo2_depth
85 0-127

Effect B

Control CC Values
FX B LEVEL
fx_b_level
12 0-127
Received, never sent
FX B REVERB TIME
fx_b_reverb_time
13 0-127
Received, never sent
FX B REVERB LEVEL
fx_b_reverb_level
91 0-127
Received, never sent
FX B DELAY L LEVEL
fx_b_delay_l_level
92 0-127
Received, never sent
FX B CHORUS LEVEL
fx_b_chorus_level
93 0-127
Received, never sent
FX B DELAY C LEVEL
fx_b_delay_c_level
94 0-127
Received, never sent
FX B DELAY R LEVEL
fx_b_delay_r_level
95 0-127
Received, never sent

Palette

Control CC Values
TONE PALETTE A
tone_palette_a
68 0-127
Sent, never received
TONE PALETTE B
tone_palette_b
69 0-127
Sent, never received
TONE PALETTE C
tone_palette_c
70 0-127
Sent, never received
TONE PALETTE D
tone_palette_d
71 0-127
Sent, never received

Without a group

Control CC Values
Modulation Wheel
modulation_wheel
1 0-127
PART LEVEL
part_level
7 0-127
Received, never sent
EXPRESSION
expression
11 0-127
Received, never sent
HOLD PEDAL
hold_pedal
64 0-127
Received, never sent
SOSTENUTO PEDAL
sostenuto_pedal
66 0-127
Received, never sent
LEVEL
level
110 0-127
Received, never sent
LAYER
layer
111 0-127
ACTIVE
active
112 0-127
SOLO
solo
115 0-127
LEGATO
legato
116 0-127
Received, never sent
UNISON
unison
119 0-127
Received, never sent

Where these facts come from

Source documents

How they were read

The manual Roland lists as the JD-08 Reference Manual, which calls itself "JD-08 Owner’s Manual" (reference p. 64) on its back, edition 01, 64 pages: the panel at pp. 3 to 13, patches at pp. 15 and 16, the sound modes and portamento at pp. 19 and 20, patterns at p. 23, the sequencer settings at p. 32, Effect B at p. 36, the part, layer, LFO, WG and key range settings at pp. 41 to 47, the keyboard and MIDI settings at pp. 49 and 50, the factory patches at pp. 55 and 56, the waveform list at pp. 56 to 58, the Part chart at pp. 59 to 61, the System chart at p. 62 and the specifications at p. 63. The HTML edition's Part chart, read against the PDF's. The Quick Start, read for an absence. And Roland's Owner's Manuals and Updates & Drivers pages for the JD-08, with the system program's own page.

THE SURVEY BEHIND THIS CORPUS SAID ROLAND PUBLISHES NO MIDI IMPLEMENTATION CHART FOR THE JD-08, AND ITS MANUAL CARRIES TWO, BEFORE ITS SPECIFICATIONS. "MIDI Implementation Chart (Part)" (reference p. 59) and "MIDI Implementation Chart (System)" (reference p. 62), each Date: Oct. 13, 2021 and Version: 1.00. The Owner's Manuals page lists seven Quick Starts and the Reference Manual twice, as PDF and as HTML, and no separate MIDI implementation (manuals_page); JD-08_reference_eng02_W.pdf and every other name tried answered 403. The HTML edition's Part chart has the same 85 controller rows as the PDF's, number, marks and name (chart_html).

TWO PARTS AND A SYSTEM CHANNEL, EACH WITH A CHANNEL OF ITS OWN. "Sets the MIDI transmitting/receiving channel for PART A." (reference p. 50), and the same for PART B, each 1 to 16; and the system's, 1 to 16 or OFF, where the parts have no OFF: "Pattern selection (program change messages) is output using this channel." (reference p. 50). The system channel is also the one an external keyboard plays on: "Use the MIDI channel you set here when using an external MIDI keyboard in place of the K-25m." (reference p. 50), and another setting names the connector it arrives at - off, MIDI or USB - which "Normally you will leave this “OFF.”" (reference p. 50). Each part plays a patch of its own: "You can select separate patches for parts A and B." (reference p. 15). The Part chart, by its title, covers the two parts. The System chart takes no control change, selects a pattern by program change, "Selects the step sequencer pattern." (reference p. 62), and passes notes, velocity and aftertouch on: "Transmits/receives between the selected part and the system." (reference p. 62). It also recognises pitch bend, and no page says what that bends. No page gives a factory channel for any of the three, or says what the system channel's OFF does.

EIGHTY-FIVE CONTROLLERS: 63 BOTH WAYS, 18 RECEIVED ONLY AND 4 SENT ONLY. The four sent only are the PALETTE sliders, TONE PALETTE A to D on 68 to 71 (reference p. 60), which carry "The last parameters you operated" (reference p. 6). The 18 received only are portamento time and mode, the part's level, expression, LEVEL, the hold and sostenuto pedals, the two bender ranges, the seven Effect B controllers and the legato and unison switches. Effect B can be heard on Part A only: "Effect B is only enabled for PART A." (reference p. 36), and no page says what its seven controllers do on Part B's channel. The keyboard's controllers go out on each part's channel, "What you play on the keyboard for PART A (note and control change messages) as well as patch selections (program change messages) are output using this channel." (reference p. 50); a sequencer setting, CC, makes the unit output a control change when a panel control moves - "When this is on, the unit outputs a control change message whenever you change the patch’s settings (when you operate the controls on the panel)." (reference p. 32) - and no page says what happens when it is off, or outside sequencer mode. There is no controller for the part's pan, "Sets the pan position for each part." (reference p. 42), and 10 is not on the chart.

EVERY CONTROL BELOW NAMES THE PART, BECAUSE THE PARTS' CHANNELS ARE THE ONLY ONES THAT TAKE CONTROL CHANGE. No channel derives from a base - the system's and each part's are set on their own (reference p. 50) - so a control naming no part would mean a channel the JD-08 does not have. All eighty-five numbers are on the Part chart, which by its title covers the parts, and the System chart crosses control change in both columns (reference p. 62): so by the two charts an external keyboard, which plays on the system channel, reaches no part with its controllers. The chart treats the two parts alike, so each control is written once; the seven Effect B controllers name the part too, and the paragraph above says what is known of Part B's.

NO PAGE SAYS WHICH LAYER A RECEIVED CONTROLLER CHANGES. A patch has four layers, switched on and off and chosen for editing with the [TONE A] to [TONE D] buttons: "Select the layer to edit." (reference p. 3). Most of the controllers set what the manual calls a layer's parameters - "Configures the LFO-related settings for the selected layer." (reference p. 41), and the TVA "Adjusts the layer’s volume." (reference p. 11) - and the chart names 111 LAYER and 112 ACTIVE without saying what their values mean (reference p. 60). Nor does it say which volume 110 LEVEL is, where the manual has three: "Adjusts the part volume." (reference p. 42), "Adjusts the tone volume." (reference p. 42) and the layer's. What the hold pedal does is a layer's setting too: "Sets whether the tone sustains when you operate the hold pedal." (reference p. 43).

ONE CONTROLLER HAS A RANGE PRINTED IN THE CHART, AND IT DOES NOT FIT ITS LIST. 72's remark reads WAVEFORM (TX: ENCODER) (RX: 0-108) (reference p. 60): received over 0 to 108, and sent as TX: ENCODER, which the chart does not explain, while the waveform list numbers 108 waveforms from 1 (reference pp. 56 to 58). No other controller has a range or a value printed in the chart, and no page says how a value maps onto its parameter, so those that set a choice - the TVF's mode, HPF, BPF or LPF (reference p. 10), or an LFO's five waveforms (reference p. 7) - are left continuous here, their states named only on the panel's pages. The labels are the chart's Remarks with their doubled spaces made single, and 72's shortened to WAVEFORM; the chart's own spelling, TVF RESONANSE, is kept.

PROGRAM CHANGE REACHES 256 PATCHES, BY BANK. "letting you save a total of 4 x 8 x 8 = 256 patches." (reference p. 15), in groups A to D, banks 1 to 8 and numbers 1 to 8, all of them user memories; the factory filled 85, A.11 to B.35: "This is a list of the patches stored in this unit by factory default." (reference p. 55). The Part chart gives LSB 0, MSB 0–1 and PC 0–127 both ways (reference p. 60), so a bank select of 0 or 1 and a program of 0 to 127 reach them - but no page maps a number to a group, bank and patch. The system channel's program change instead selects one of 128 patterns (reference pp. 23, 62 and 63), and "A pattern can contain patch numbers for parts A and B, as well as the recorded sequence data." (reference p. 23).

CLOCK AND TRANSPORT BOTH WAYS, ON THE SYSTEM CHANNEL'S CHART, AND NO SONG POSITION. Clock, Start and Stop are circled both ways and Continue is received only: "Works the same as “start.”" (reference p. 62), and Song Position is crossed both ways on both charts (reference pp. 60 and 62). The Part chart circles Clock and Commands both ways without the System chart's distinction (reference p. 60). Which port the sequencer follows is a MIDI setting - automatic, internal, MIDI or USB - and which port sends clock another - off, MIDI, USB or all (reference p. 50); neither has a default stated, and the automatic choice "Automatically detects the signal inputted to the jack." (reference p. 50) without naming the jack. The EXT CLK IN jack takes pulses: "Use this jack to input clock signals from an external source." (reference p. 12). A soft thru setting re-sends what arrives at MIDI IN "as-is from the MIDI OUT connector." (reference p. 50).

PITCH BEND AND AFTERTOUCH ARE RECEIVED, NOT SENT. Pitch bend and polyphonic aftertouch are crossed as transmitted and circled as recognised, and channel aftertouch crossed both ways, on both charts (reference pp. 59 and 62). A layer switch, bEnd, "Sets whether MIDI pitch bend messages are received (ON) or not (OFF)." (reference p. 45), and another, AFt.b, whether aftertouch bends the pitch. Aftertouch also moves the cutoff and the volume by layer settings (reference p. 43), has a part's sensitivity, "Sets the aftertouch sensitivity." (reference p. 42), and can give vibrato (reference p. 45); the modulation lever's vibrato depth is a WG setting: "Sets the depth of vibrato that is controlled by the modulation lever." (reference p. 45). The bend range is set in the range menu, which the manual calls "range-related settings for the selected part" (reference p. 41), down 0 to 48 semitones and up 0 to 12 (reference p. 47), and 41 and 49 set it over MIDI.

MODE 3, AND THREE OF THE FOUR MODE MESSAGES ARE ALL NOTES OFF ON A PART'S CHANNEL. Mode 3 is the default both ways on both charts (reference pp. 59 and 62). On a part's channel, omni off, omni on and mono "Works the same as “all notes off.”" (reference pp. 60-61), poly is crossed both ways (reference p. 61), and all sound off, reset all controllers and all notes off are received. The system channel takes none of them (reference p. 62). Local control is crossed. Active sensing is circled both ways on both charts.

SYSTEM EXCLUSIVE IS CROSSED BOTH WAYS ON BOTH CHARTS (reference pp. 60 and 62), and no other page mentions it, so it is recorded as absent, as roland/tr_08's is.

THREE MORE FAULTS AND ONE ODDITY, NONE IN A FIELD, ALL FOUND BY THE BLIND SECOND READER. The System chart's aftertouch row carries the remark "Transmits/receives between the selected part and the system." (reference p. 62) over a cross for transmitted. The layer settings print F.AFt for two settings, aftertouch to cutoff and aftertouch to volume (reference p. 43). The TVA envelope has an L4 in the text - "This adjusts the volume for L1, L2, SUSTAIN LEVEL and L4." (reference p. 8) - and no controller on the chart, where the filter envelope's L4 is 56. And the two LFOs take their controllers in different orders: offset, key trigger and waveform on 17 to 19 for LFO1, waveform, offset and key trigger on 23 to 25 for LFO2 (reference p. 59), which both editions print.

NOT RECORDED, AND WHY:

The Quick Start holds no MIDI map at all (quick_start).