Juno-106 SysEx in detail


In general, the Juno-106 does not use the Midi Command "Control Change" (Bn hex). Instead, it uses System Exclusive (SysEx) messages.
The only Control-Change messages which were used (and documented in the Owner's Manual) are:

Control Change: Modulation
code
(hex)
meaningcomment
BnControl Changen = Midi channel (0-F)
01Modulation 
vvvalue00 = Modulation off
7F = Modulation on
Example:
B0 01 00
Set Modulation off
Control Change: Pedal
code
(hex)
meaningcomment
BnControl Changen = Midi channel (0-F)
40Pedal 
vvvalue00 = Pedal hold off
7F = Pedal hold on
Example:
B0 40 7F
Set Pedal hold on

When controllers (faders, switches) are changed, a SysEx message will be sent.
Some of the switches were grouped together and the data are bit-masked.

SysEx: Control Change
code
(hex)
meaningcomment
F0Begin SysEx 
41Manufaturer ID41 = Roland
32Message Type32 = Control change
0nchanneln = Midi channel (0-F)
ccControlnumber of control
00 = LFO rate
01 = LFO delay time
02 = DCO LFO
03 = DCO PWM
04 = DCO Noise
05 = VCF Freq
06 = VCF Res
07 = VCF Env
08 = VCF LFO
09 = VCF Kybd
0A = VCA Level
0B = ENV A
0C = ENV D
0D = ENV S
0E = ENV R
0F = DCO SUB
10 = Switches 1 (see below)
11 = Switches 2 (see below)
vvValuevalue for that control
see next table for possible values
F7EOXend of SysEx
Example:
F0 41 32 00 01 40 F7
sets LFO rate to 64 (about center position of fader)

When the user changes the Bank, the Patch or to "Manual", a SysEx message will be sent.

SysEx: Bank / Patch Change
code
(hex)
meaningcomment
F0Begin SysEx 
41Manufaturer ID41 = Roland
30Message Type 30 = Bank/Patch change
31 = User changed to Manual mode
0nchanneln = Midi channel (0-F)
ppbank/patch number0..63 Bank A
64..127 Bank B
ddcontrol 01LFO rate
ddcontrol 02LFO delay time
ddcontrol 03DCO LFO
ddcontrol 04DCO PWM
ddcontrol 05DCO Noise
ddcontrol 06VCF Freq
ddcontrol 07VCF Res
ddcontrol 08VCF Env
ddcontrol 09VCF LFO
ddcontrol 10VCF Kybd
ddcontrol 11VCA Level
ddcontrol 12ENV A
ddcontrol 13ENV D
ddcontrol 14ENV S
ddcontrol 15ENV R
ddcontrol 16DCO SUB
ddcontrol 17Switches 1
bit 0: 16' on/off
bit 1: 8' on/off
bit 2: 4' on/off     [in theory bits 0..2 are mutually-exclusive]
bit 3: Pulse on/off (1=on)
bit 4: Tri on/off (1=on)
bit 5: 0 => Chorus on
bit 6: 0 => Chorus level 2 (if on), 1=> level 1
ddcontrol 18Switches 2
bit 0: 0=>DCO PWM=LFO, otherwise =MAN
bit 1: 0=>VCF Polarity +, otherwise -
bit 2: 0=>VCA ENV, otherwise GATE
bit 3+4: 00 => HPF=3, 01 => HPF=2, 10 => HPF=1, 11 => HPF=0
F7EOXend of SysEx

Note: if you have a PC sequencer where you can enter SysEx data, it's likely that you don't have to enter the leading "F0" and the trailing "F7" - they mark the beginning and the end of the data and your program may wrap the data into these bytes.