MIDI CCs and NRPNs

CCs (Continuous Controllers) directly supported by Yoshimi

Unless stated otherwise, LSB range is 0 to 127.

CC Function Notes
0 Bank Change MSB (bank root, interchangeable with CC 32)
1 Mod Wheel
2 Breath
6 NRPN data MSB
7 Volume
10 Panning
11 Expression
32 Bank Change LSB (bank, interchangeable with CC 0)
38 NRPN data LSB
64 Sustain Pedal
65 Portamento
68 Legato Pedal
71 Filter Q
74 Filter Cutoff
75 Bandwidth
76 FM Amplitude
77 Resonance Center Frequency
78 Resonance Bandwidth
96 NRPN Data Increment
97 NRPN Data Decrement
98 NRPN LSB
99 NRPN MSB
120 All Sound Off
121 Reset All Controllers
123  All Notes Off
Back to top

Extended CCs

The following channel mode messages are internally translated so that they can be MIDI learned. They will appear to have the following numbers.

CC Function
128 Pitch Bend
129 Channel Pressure
130  Key Pressure

NRPNs (Non Registered Parameter Numbers) directly supported by Yoshimi

Unless stated otherwise, Data LSB range is 0 to 127.

NRPN MSB  NRPN LSB  Function
4 0 - 3 System Effect Number
8 0 - 7 Insertion Effect Number
64 0 Direct Part Control
64 1 Vector Control
64 2 System Settings
96 0 Load Instrument From History
96 1 Load Patchset From History
96 2 Load Scale From History
96 3 Load State From History
96 4 Load Vector From History
96 5 Load MIDI Learn List From History

The following don't currently use data bytes. Some sequencers allow them to be omitted.

NRPN MSB  NRPN LSB  Function
65 0 Solo Disabled
65 1 Solo Row type
65 2 Solo Column type
65 3 Solo Loop type
65 4 Solo Two Way type
65 5 Solo Channel type
66 0 - 119 Solo type's controller
68 68 Normal shutdown, exit 0
68 69 Fast shutdown, exit 16 (does not check or save settings)

NRPN Data Values

System / Insertion Effects

If Data MSB bit 6 is set (MSB >= 64) then LSB decides the effect type:

0 - Off
1 - Reverb
2 - Echo
3 - Chorus
4 - Phaser
5 - AlienWah
6 - Distortion
7 - EQ
8 - DynFilter
This must be done before making a parameter change (unless already set).

For System effects, if Data MSB bit 5 is also set (MSB >= 96) then it sends the designated system effect to system effect 2 - 4, represented by MSB 96 to 98. The actual range depends on which effect you are sending from. You can't send one to itself, or a lower numbered one. LSB then sets the amount of the effect to pass on.

For Insertion effects, if Data MSB bit 5 is also set (MSB >= 96) then LSB decides the part that the effect will be sent to:
0 to highest active part.
126 - Master Output
127 - Off
This must be done before making a parameter change to insertion effects (unless already set).

Otherwise Data MSB decides which parameter of the currently selected effect will be changed and Data LSB sets the actual value. This will be in the range 0 - 127 unless noted otherwise.

The parameters for each effect type are as follows:

Reverb
0 - Volume or Dry/Wet
1 - Pan
2 - Reverb Time
3 - Initial Delay
4 - Initial Delay Feedback
5 - reserved
6 - reserved
7 - Low Pass
8 - High Pass
9 - High Frequency Damping (64 - 127) 64 = no damping
10 - Reverb Type (0 - 2) Random/Freeverb/Bandwidth
11 - Room Size)
16 - Preset (0 - 12)
Echo
0 - Volume or Dry/Wet
1 - Pan
2 - Delay
3 - Delay between left and right
4 - Left/Right Crossing
5 - Feedback
6 - High Frequency Damp
16 - Preset (0 - 8)
17 - BPM Mode for delay (0 - 1) off/on
Chorus
0 - Volume or Dry/Wet
1 - Pan
2 - LFO Frequency
3 - LFO Randomness
4 - LFO Type (0 - 1) Sine/Triangle
5 - LFO Stereo Difference
6 - LFO Depth
7 - Delay
8 - Feedback
9 - Left/Right Crossing
10 - reserved
11 - Mode (0 - 1) Add/Subtract
16 - Preset (0 - 9)
17 - BPM Mode for frequency (0 - 1) off/on
Phaser
0 - Volume or Dry/Wet
1 - Pan
2 - LFO Frequency
3 - LFO Randomness
4 - LFO Type (0 - 1) Sine/Triangle
5 - LFO Stereo Difference
6 - LFO Depth
7 - Feedback
8 - Number of stages (0 - 11)
9 - Let/Right Crossing
10 - Mode (0 - 1) Add/Subtract
11 - Phase
12 - Hypersine (0 - 1) off/on
13 - Distortion
14 - Analog (0 - 1) off/on
16 - Preset (0 - 11)
17 - BPM Mode for frequency (0 - 1) off/on
AlienWah
0 - Volume or Dry/Wet
1 - Pan
2 - LFO Frequency
3 - LFO Randomness
4 - LFO Type (0 - 1) Sine/Triangle
5 - LFO Stereo Difference
6 - LFO Depth
7 - Feedback
8 - Delay (0 - 100)
9 - Left/Right Crossing
10 - Phase
16 - Preset (0 - 3)
17 - BPM Mode for frequency (0 - 1) off/on
Distortion
0 - Volume or Dry/Wet
1 - Pan
2 - Left/Right Crossing
3 - Drive
4 - Level
5 - Type (0 - 13)
Atan
Asym 1
Power 1
Sine
Quants
Zigzag
Limit
LimitU
LimitL
Ilimit
Clip
Asym 2
Power 2
Sigm
6 - Invert the signal (0 - 1) no/yes
7 - Low Pass
8 - High Pass
9 - Mode (0 - 1) mono/stereo 10 - PreFilter (0 - 1) distortion first/filter first
16 - Preset (0 - 5)
DyneFilter
0 - Volume
1 - Pan
2 - LFO Frequency
3 - LFO Randomness
4 - LFO Type (0 - 1) Sine/Triangle
5 - LFO Stereo Difference
6 - LFO Depth
7 - Filter Amplitude
8 - Filter Amplitude Rate Change
9 - Invert the signal (0 - 1) no/yes
16 - Preset (0 - 4)
17 - BPM Mode for frequency (0 - 1) off/on

EQ This effect is an exception in the way it's managed. It also has no presets.
0 - Gain
The others change individual EQ bands using the following formulae:
10+N*5 - Band's filter type (0 - 9)
Off
Lp1
Hp1
Lp2
Hp2
Bp2
N2
Pk
LSh
HSh
11+N*5 - Band's filter frequency
12+N*5 - Band's filter gain
13+N*5 - Band's filter Q (bandwidth or resonance)
14+N*5 - reserved
Where N represents the band being adjusted (starting from zero)
Back to NRPN types
Back to NRPN Data values Back to top

Direct Part Control
Data MSB is the control to be managed, and LSB the value to set.

0 - Part number (this must be set first)
1 - Program Change
2 - Controller number (0 - 119)
3 - Controller value
4 - Channel number for this part
(0 - 15) select for all messages
(16 - 31) select for note off only
(32 - 47) mute
5 * - Audio destination (0 - 2) main/part/both
8 - Send part output the System effect 1
9 - Send part output the System effect 2
10 - Send part output the System effect 3
11 - Send part output the System effect 4
64 * - Key shift (28 - 100) gives -36 to +36
* requires the part to be enabled

Vector Control
Data MSB Options:
0 - X sweep CC
1 - Y sweep CC
2 - Enable X features
3 - Enable Y features

Data LSB Features:
1 = fixed as Volume
2 = default is Pan
4 = default is Filter Cutoff (Brightness)
8 = default is Mod Wheel

18 = Reversed Pan
36 = Reversed Filter Cutoff
72 = Reversed Mod Wheel

Setting the sweep CC for X enables vector control. It also sets, but doesn't enable the default X features.
Setting the sweep CC for Y sets, but doesn't enable the default Y features.
If you don't enable any features not a lot will happen! The numbers are chosen so they can be combined. So, 5 would be Volume + Brightness and 19 would be Volume + Reversed Pan

Additional Settings
MSB LSB
4 x1 instrument ID
5 x2 instrument ID
6 y1 instrument ID
7 y2 instrument ID
IDs are instruments from the current bank.

MSB LSB
8 Alternate CC for X feature 2
9 Alternate CC for X feature 4
10 Alternate CC for X feature 8
11 Alternate CC for Y feature 2
12 Alternate CC for Y feature 4
13 Alternate CC for Y feature 8
These additional controls for changing the actual feature actions are unique to NRPNs. They are not available to either the GUI or the CLI.

System Settings

Data MSB  Data LSB  Function  Notes
2 28 - 100 Master key shift shift = LSB - 64
7 Master volume
64 - 79 28 - 100 Channel key shift channel = MSB - 64, shift = LSB - 64
80 0, 32, 127 CC for Root path 127 disables
81 32, 0, 127 CC for Bank path 127 disables
82 Enable program change less than 64 disables
84 Set CC control for extended program change greater than 119 disables
85 16, 32, 64 Set the number of available parts
86 0 Save all dynamic settings

Loading from History Lists

For all of these, the Data LSB is the list index number in the range 0 - 24. However, if there aren't that many entries in the list, for those that don't exist an error will be reported.

For instruments, the Data MSB is the part number to load to. If a value greater than 63 is given, the instrument will be loaded to the last part number seen by the NRPN system. If none were seen, the command will be ignored.

For Vectors, the Data MSB is the base channel to install it on. If a value greater than 15 is set, it will be loaded to the base channel it was originally saved from.

For all of the others Data MSB should be set to zero.

Back to Direct PartBack to NRPN types
Back to VectorsBack to NRPN Data values
Back to top