Monday, 5 June 2023

MIDI CC - Guide

 MIDI CC List – Most Common Parameters
CC = continuous controller.

Most MIDI instruments will come with a MIDI implementation chart.

1 = Modulation wheel (in most cases this is Vibrato depth)
2 = Breath Control
7 = Volume
10 = Pan
11 = Expression
64 = Sustain Pedal (on/off)
65 = Portamento (on/off)
71 = Resonance (filter)
74 = Frequency Cutoff (filter)
------------------------------------------------------------------
What is the number of MIDI continuous controllers?
0-127
In MIDI terms, a continuous controller (CC) is a MIDI message capable of transmitting 
a range of values, 
usually 0-127.
--------------
Why does MIDI have 127 values?
Midi technically goes from 0-127, giving it 128 unassigned values. The maximum value that can be expressed by one 7 bit byte is equal to 2 to the power of 7. This provides us with a total of 128 values that can be assigned. This is the reason that Midi goes to 127 and not any higher.
----------------------------
Half of these MIDI CC values are assigned to on/off switches. 0-63 = off, 64-127 = on.
----------------------

MIDI CC List – Complete List

0 Bank Select (MSB)\
   use this to switch preset banks, so you can select presets. 
   MIDI allows 16,384 patches per MIDI channel.
1 Modulation Wheel
   It controls the parameter(s) it's mapped to in your synth, instrument or effect. 
   Commonly used for filter cutoff or vibrato.
2 Breath controller
   Originally for use with an electronic breath MIDI controller that could read 
   changes in pressure of breath. 
   Can be used for modulation in performances, and is often used with aftertouch.
3 = Undefined
      Early DX7 Aftertouch
4 Foot Pedal (MSB)
5 Portamento Time (MSB)
6 Data Entry (MSB)
   Data Slider
   Controls SYSEX, NRPN ( Non-Registered Parameter Numbers) and RPN values.
7 Main Volume (MSB)
8 Balance (MSB) 
   0 = left, 64 = centre, 127 = right.
9 = Undefined
10 Pan position (MSB)
     0 = left, 64 = centre, 127 = right.
11 Expression (MSB)
12 Effect Control 1 (MSB)
     For controlling effects in an instrument.
13 Effect Control 2 (MSB)
      For controlling effects in an instrument.
14 = Undefined
15 = Undefined
16 = General Purpose #1
17 = General Purpose #2
18 = General Purpose #3
19 = General Purpose #4
              Slider, Knob or Ribbon Controller
20-31 = Undefined
32=Bank Select (LSB)
       If you are using Abelton Live for example, using the Program Change option makes
       Live send MIDI CC 32 commands. 
       This is the reason why MIDI CC 32 does not appear as available MIDI control data
       in the Envelopes section of a Live Clip.
33= Mod wheel
       Used alongside CC1 to send a modulation command for instruments with higher mod resolution.
       Thus if the resolution of 128 increments (from CC1)  is not fine enough to provide a
       smooth transition through this range, the manufacturer can opt to add more resolution 
       by using a second byte to define the range. 
       Controller #’s 33 through 63 are used for this purpose.
34= Breath controller
       Used with CC2 to send modulation commands for instruments with higher mod resolution.
35=undefined
36-40
41=undefined
42=pan
      Used with CC10 to send modulation commands for instruments with higher mod resolution.
43=expression
44=effect control 1
45=effect control 2
46-63 = undefined
64 Sustain - Hold Pedal (on/off)
65 Portamento (on/off)
66 Sostenuto Pedal (on/off)
67 Soft Pedal (on/off)
68 Legato Pedal (on/off)
69 Hold 2 Pedal (on/off)
70 Sound Variation
71 Resonance (Timbre)
72 Sound Release Time
73 Sound Attack Time
74 Frequency Cutoff (Brightness)
75 Sound Control 6
76 Sound Control 7
77 Sound Control 8
78 Sound Control 9
79 Sound Control 10
80 Decay or General Purpose Button 1 (on/off) Roland Tone level 1
81 Hi Pass Filter Frequency or General Purpose Button 2 (on/off) Roland Tone level 2
82 General Purpose Button 3 (on/off) Roland Tone level 3
83 General Purpose Button 4 (on/off) Roland Tone level 4
84 Portamento Amount
85-90 = Undefined
91 Reverb Level
92 Tremolo Level
93 Chorus Level
94 Detune Level
95 Phaser Level
96 Data Button increment
97 Data Button decrement
98 Non-registered Parameter (LSB)
99 Non-registered Parameter (MSB)
100 Registered Parameter (LSB)
101 Registered Parameter (MSB)
102-119 = Undefined
120 All Sound Off
121 All Controllers Off
122 Local Keyboard (on/off)
123 All Notes Off
124 Omni Mode Off
125 Omni Mode On
126 Mono Operation
127 Poly Mode

--------------
Note that MIDI technology was only standardized in 1983 by a panel of music industry representatives
so synths before this time need to be modified if you wish to use the full range of CCs.

Unfortunately many 80's synths that have MIDI, have a sort of limited version of it
as the finer details of the MIDI spec were still being ironed out during this period. 
The earliest trailblazers like the JX-3P (1983), Jupiter-6 (1983) and the Prophet 600 (1982) have only really basic MIDI. (The P600 was the first commercially available synth to implement MIDI).
It's pretty much note on/off, pitch, maybe pitchbend, and not much else.
(There are a few vintage synths that let you modulate some other settings with the 
pitch bend MIDI CC).

Even synths like the JUNO-106 which has MIDI doesn't respond too well to MIDI continuous controllers. Remember that the Juno 106 was only released in 1984.
MIDI SysEx data can be transmitted/received from all the sliders and buttons for total remote control and sequencing capability. 
At the rear of the synth, next to the MIDI ports, there is a switch with 3 positions.
a]Keyboard and Hold data only
b]Keyboard, Hold, Bender, Patch selection data
c]All data (including SysEx).
It needs to be set to the last for sysex to be enabled.
-----------------------------------
My Roland Super Jupiter MKS-80 (released in 1984) responds to a few CC messages :
1 Modulation Wheel
7 Volume (MSB)
31 Bender sense
64 Sustain - Hold Pedal (on/off)


The old Roland also responds to patch changes from Abelton

Only the Pgm list works.

Leave Bank & Sub empty














----------------------------
My old Studio Electronics MIDI-MOOG (1989) (https://www.vintagesynth.com/misc/midimoog.php)
uses these MIDI CC:

1 Modulation Wheel
5 Portamento Time
7 Channel Volume
64 Sustain Pedal
65 Portamento On/Off

-----------------------
I found that  good way to discover what CC's your synth is using is to record the CC's that enter the computer with your DAW while twiddling the various knobs/wheels etc

I'm using abelton:
These are the CC's that my Alesis andromedia A6 uses:


pitch bend (right)- ??
modulation wheel (left) - 1

left - 20  28 52
right 20 , 52

you should be able to route these controllers to things like filter cutoff etc

The A6 was produced in 2001 and still has really basic MIDI







I think the best chance to get a modern MIDI implementation in vintage synths are with mods. 
   Links
 David Konsumer's "junosex" CC converter: an arduino based CC to SysEx converter that let's you use a common non-SysEx MIDI controller to speak with your SysEx-ready synth


No comments:

Post a Comment