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 JUNO-106 MIDI implementation
The MIDI implementation of the Roland JUNO-106: what it answers to, and the 2 controls it offers.
At a glance
- Firmware
- Not recorded.
- MIDI channel
- Any one of 1 to 16.
- MIDI mode
- Receives in 1 (omni on, poly) and sends in 3 (omni off, poly).
- Voices
- 6.
- Note range
- 0 to 127: C-1 to G9, counting middle C as C4.
- Velocity
- Ignored. Release velocity is ignored.
- Aftertouch
- None, sent or answered.
- Pitch bend
- Not recorded.
- Program change
- Received and sent, with 128 presets.
- MIDI clock
- Neither sent nor received.
- Start and stop
- Neither sent nor received.
- Control change
- 2 controls, in the table below.
- NRPN
- None.
- System exclusive
- Supported.
Controls
In the order the definition gives them, by group. Under each control is the name a program calls it by, once pymidiinstrumentdefs.load("roland/juno_106") has loaded them.
| Control | CC | Values |
|---|---|---|
LFO Modulationlfo_modulation |
1 | 0-127 |
Holdhold |
64 | 0 off, 1-127 on |
Where these facts come from
Source documents
- JUNO-106 Owner's Manual, its user manual, read on 2 October 2026 (the file read).
- Roland - Support - Manual Archive, a web page, read on 2 October 2026.
How they were read
Owner's manual, 36 pages, read at pp. 23, 25 to 29, 32 and 34 to 35. The MIDI implementation is two sheets at the back which print no page number of their own; they are cited as pp. 34 and 35, the positions they occupy after printed page 33, and everything before them is numbered and matches the file page for page.
THIS INSTRUMENT IS TRANSCRIBED FROM A SCAN, as the DX7 is. The manual is photographic: all 36 pages extract zero characters, there is no text layer at all, and so tools/check_citations.py reports that it checked none of these numbers rather than that it failed to find them. Every number here was read by eye from rendered pages, twice and independently, by two readers who did not see each other's result.
ONE DOCUMENT EXISTS AND THESE ARE THE SEARCHES BEHIND THAT. Roland keeps a support page for this product and serves nothing on it: the element that holds a document list is empty, where the TR-8S's holds thirteen links and the JUPITER-X's more. The manual is offered instead from Roland's Manual Archive, which lists 457 documents for discontinued products. One line of it is this instrument's. Of those 457 titles, 39 name a MIDI implementation document, from the D-50's to the VM-3100's, and none is a JUNO-106: this instrument's MIDI material is the appendix inside its own manual. Roland's five older legacy indexes were searched too and none mentions it.
THE MIDI FUNCTION SWITCH IS WHY THE CHART HAS THREE COLUMNS A SIDE. A three-position switch beside the MIDI jacks decides what travels, and the chart's "Transmitted" and "Recognized" columns are headed 1, 2 and 3 for it. Position I is "communication of only Keyboard and Hold information" (p. 27); II is "the Keyboard, Hold, Bender on/off control, and Patch Selection information" (p. 27); III is "the information of II plus tone color parameter information by means of System Exclusive message" (p. 27). So both controls below exist only in the positions their comments give, and the implementation at p. 35 says the same thing a second way, section by section. Which position a player leaves the switch in is a rig setting and is not recorded here.
EVERY ROW OF THE CHART IS ACCOUNTED FOR. Twelve function blocks, twenty-six rows in all, and a Notes row. Carried as fields: Basic Channel, Mode, which is below, Note Number, Velocity, After Touch, Prog Change, System Exclusive, and System Real Time, whose Clock and Commands are both crosses both ways. Carried as controls: the two Control Change rows, 1 and 64. Left out with reason: Pitch Bender, which is below; System Common, whose Song Pos, Song Sel and Tune are crosses both ways and which the format has no field for; and the Aux Messages, whose Local ON/OFF, Active Sense and Reset are crosses and whose All Notes OFF is CC 123, a channel mode message that the format refuses as a control and the public guide forbids. The same goes for the 124, 125, 126 and 127 in the implementation's own received list: they are channel mode messages, excluded by category rather than missed.
MODE, ONE DEFAULT EACH WAY. The chart gives two different defaults, 3 transmitted and 1 recognised, and the implementation says which is which: "When power is first applied, receiver's mode is OMNI ON, POLY mode" (p. 35), which is mode 1, while the chart's own Notes row says "When power up. OMNI OFF, POLY ON are sent in channel 1" (p. 34), which is mode 3. So midi.mode gives each: it recognises mode 1 and announces mode 3, and no one number is true of both.
NOT RECORDED, PITCH BEND. It is received and transmitted in positions II and III, and how far it bends is two front-panel knobs rather than a number: DCO Bend Sens sets "the variable range of the DCO's pitch, when it is controlled by the Bender" (p. 23), to a maximum of plus or minus one octave, and VCF Bend Sens sets its maximum effect on the filter (p. 23). Nothing over MIDI sets either, so programmable would be false in a sense no other definition here uses it in, and semitones would be a number the manual never states. What the instrument does with a bend that arrives is recorded in the controls' comments instead: it ignores the low six bits, so a bend reaching it is coarse however it was sent.
ALSO NOT CARRIED, because the format has no field for it: the sixteen potentiometers and two switch bytes that system exclusive addresses as parameter numbers 0 to 17 (p. 35). That list is the whole of this instrument's remote editing - LFO rate and delay, DCO LFO and PWM, noise level, VCF cutoff, resonance, ENV, LFO and KYBD, VCA level, the four envelope times, sub level, and two bytes of switches for chorus, waveform, range, the high-pass filter, the VCA source, envelope polarity and PWM mode - and not one of them has a controller number or an NRPN. It is the same shape as the DX7's 156 voice parameters: real, published, and nothing a controls block can hold.
ONE PLACE WHERE THE DOCUMENT CONTRADICTS ITSELF, recorded rather than resolved and touching nothing above. The third exclusive layout, the one that carries a parameter change, prints its function type as the binary 0011 0001 against the hex $32 (p. 35). Those are different bytes: 0011 0001 is $31, which is what the layout above it prints for its own function type. The hex is the one the page's own worked example sends, and $30, $31, $32 for the three layouts is the pattern; the binary digit is the odd one out. The second reading found this and the first had not recorded that column at all.