TIP: Knowing the MIDI messages that are available to us when sequencing for acoustic instruments – Part 2
By Andrea Pejrolo
In the second part of this article regarding the usage of MIDI CC to improve the expressivity and quality of our production, I discuss in detail the list of MIDI CC available.
Below is a table summary of all the 128 Controllers available in the MIDI standard.
Among the 128 control change (CC) messages available in the MIDI standard, there are a few that can be particularly useful in a sequencing and music production environment. In particular, certain CC messages can be extremely helpful in improving the realism of MIDI sororities when used to reproduce the sounds of acoustic instruments. Let’s take a look at the CC messages (and their functions) that are particularly helpful in these types of applications. In order to tackle so many control changes without being overwhelmed, they can be organized according to their function and simplicity. Here, we will start with the most basic and most commonly used messages, and end with the more advanced ones.
Most commonly used control changes
Among the most used CCs, there are four that, in one way or another, you will use even for the most basic sequencing projects. These CCs are volume (CC#7), pan (CC#10), mod- ulation (CC#1), and sustain (CC#64). While their names and functions are basically self- explanatory, their advanced use can bring your projects and your MIDI orchestration techniques to another level. Let’s take a look at each message individually.
Volume (CC#7) enables you to control the volume of a MIDI channel directly through the sequencer or MIDI controller. Like most of the MIDI messages, it has a range of 128 steps (from 0 to 127), with 0 indicating basically a mute state and 127 full volume. Keep in mind that this is not the only way to control the volume of a MIDI track (more on this later), but it is certainly the most immediate. Think of CC#7 as the main volume on the amplifier of your guitar rig. It controls the overall output level of a MIDI channel. Also keep in mind that, as is the case for most MIDI messages, the message is sent to a MIDI channel and not to a MIDI track, and you have one volume control per MIDI channel and not per track. Therefore, if you have several tracks (i.e., drums) sent to the same MIDI channel and MIDI cable, they will all share the same volume control.
Pan (CC#10) controls the stereo image of a MIDI channel. The range extends from 0 to 127, with 64 being panned in the center, 0 hard left and 127 hard right. As for CC#7, this mes- sage is sent to the MIDI channel and not to a specific track.
Modulation (CC#1) is usually assigned to vibrato, although in some cases can be assigned to control other parameters of a MIDI channel. For example, certain software synthesizers (e.g., Garritan Orchestra) use CC#1 to control the volume and sample switch of the instruments. This controller is a very flexible one and can, in fact, be used to manipulate several parameters that do not necessarily relate to vibrato. The way Modulation affects the sound depends on how the synthesizer patch is programmed.
Sustain (CC#64) is usually associated with the sustain pedal of a keyboard controller. By pressing the sustain pedal connected to your controller you send a CC#64 with value 127; by depressing the pedal, you send a value of 0. Whenever the MIDI channel receives a CC#64 with value 127 it will sustain the notes that were pressed at the moment the control message was sent, until a new message (this time with a value of 0) is sent to the same MIDI channel. The overall effect is the same as you would obtain by pressing the sustain pedal on an acoustic piano.
In addition to the basic controllers described above, there is a series of extended controllers that allow you to manipulate other parameters of a MIDI channel in order to achieve a higher degree of flexibility when controlling a MIDI device. These are the messages that you will take more advantage of when trying to take your sequencing, MIDI orchestration and arranging skills to a higher level. They are particularly suited to adding more expressivity to such acoustic parts as string, woodwind, and brass tracks, as these instruments usually require a high level of control over dynamics, intonation, and color.
Let’s take a look at the extended MIDI controllers that are available under the current MIDI specifications.
Breath controller (CC#2): This controller can be set by the user to affect different parameters; it is not tied to a specific operation. It is usually set to the same parameter con- trolled by aftertouch. Generally, you will find it programmed to control modulation, volume or vibrato. Breath controller is found mostly in MIDI wind controllers, where the amplitude of the controller is commanded by the pressure of the airflow applied to the mouthpiece.
Foot controller (CC#4): As in the case of the previous MIDI message, CC#4 can be assigned by the user to a series of parameters, depending on the situation. It can control volume, pan, or other specific parameters of a synthesizer. It is a continuous controller with a range of 0 to 127.
Portamento on/off (CC#65) and portamento time (CC#5): These give you control over the slide effect between two subsequent notes played on a MIDI controller. While CC#65 allows you to turn the portamento effect off (values 0–63) or on (values 64–127), with CC#5 you can specify the rate at which the portamento effect slides between two subse- quent notes (0–127).
Balance (CC#8): This controller is similar to pan (CC#10). It controls the balance between the left and right channels for MIDI parts that use a stereo patch, while pan is more often used for mono patches. It ranges from 0 to 127, where a value of 64 represents a center position, 0 hard left and 127 hard right.
Expression controller (CC#11): This particular controller is extremely helpful, and often used to change the volume of a MIDI channel. While you might recall that CC#7 controls the volume of a MIDI channel, expression allows you to scale the overall volume of a MIDI channel by a percentage of the value set by CC#7. In practical terms, think of CC#7 as the main volume on the amplifier for your guitar, and CC#11 as the volume on your guitar. They both, in fact, have an impact on the final volume of the part (MIDI channel), but CC#11 allows you to fine-tune the volume inside the range set by CC#7. To clarify further, think about the following examples. If you set CC#7 of a MIDI channel to 100 and CC#11 for the same channel to 127, you will get a full volume of 100. Now think what happens if you lower CC#11 to 64 (128 divided by 2); now, your overall volume will be 50 (100 divided by 2). Thus, expression can be extremely useful if used in conjunction with CC#7. A practical application would be to do all your volume automation with the Expression controller and use CC#7 to raise or lower the overall volume of your MIDI tracks.
Sostenuto on/off (CC#66): CC#66 is similar to CC#64. When sent by pressing a pedal, it holds the notes that were already On when the pedal was pressed. It differs, though, from the sustain message because the notes that are sent after the pedal is pressed won’t be held, as they are in the case of CC#64. It is very useful for holding chords while playing a melody on top.
Soft pedal on/off (CC#67): This controller works exactly like the pedal found on an acoustic piano. By sending a CC#67 to a MIDI device/part it lowers the volume of any notes played on a MIDI channel while the pedal is pressed. Soft pedal is off with values ranging from 0 to 63, and on with values from 64 to 127.
Legato footswitch (CC#68): This controller enables you to achieve a similar effect to the one used by wind and string players when playing two or more subsequent notes using a single breath or bow stroke. The legato effect achieved creates a smoother transition between notes. CC#68 achieves a similar effect by instructing the synthesizer to bypass the attack section of the voltage-controlled amplifier (VCA)’s envelope of the sound gener- ator and, therefore, avoiding a second trigger of the notes played.
Hold (CC#69): CC#69 is similar to the sustain controller #64. While the latter sustains the notes being played until the pedal is released (values between 0–63), CC#69 prolongs the notes played by simply lengthening the release part of the VCA’s envelope of the sound generator. This creates a natural release that can be used effectively for string and wood- wind parts to simulate the natural decay of acoustic instrument sounds.
|0||Bank Select||It allows you to switch Bank for Patch selection. It is sometimes used in conjunction with CC#32 in order to send Bank number higher than 128.|
|1||Modulation||It sets the Modulation Wheel to the specified value. Usually this parameter controls a Vibrato effect generated through a Low Frequency Oscillator (LFO). It can also be used to control other sound parameters such as volume in certain sound libraries.|
|2||Breath Controller||Can be set to affect several parameters but usually is associated with Aftertouch messages.|
|4||Foot Controller||Can be set to affect several parameters but usually is associated with Aftertouch messages.|
|5||Portamento Value||Controls the rate used by Portamento to slide between two subsequent notes.|
|6||Data Entry (MSB)||Controls the value of either Registered (RPN) or Non Registered (NRPN) parameters).|
|7||Volume||Controls the Volume level of a MIDI Channel.|
|8||Balance||Controls the Balance (Left and Right) of a MIDI Channel. It is mostly used on patches that contain stereo elements (such as stereo patches). 64 = Center, 127= 100% Right and 0=100% Left.|
|10||Pan||Controls the Pan of a MIDI Channel. 64 = Center, 127= 100% Right and 0=100% Left|
|11||Expression||Controls a percentage of Volume (CC#7).|
|12||Effect Controller 1||Mostly used to control the effect parameter of one of the internal effects of a synthesizer (for example the Decay Time of a Reverb).|
|13||Effect Controller 2||Mostly used to control the effect parameter of one of the internal effects of a synthesizer.|
|16-19||General Purpose||These Controllers are open and they can be assigned to Aftertouch or similar messages.|
|32-63||LSB for Control 0 – 31||These controllers allow you to have a “finer” scale for the corresponding controllers 0 through 31.|
|64||Sustain Pedal||Controls the sustain function of a MIDI channel. It has only two positions: Off (values between 0 and 63) and On (values between 64 and 127).|
|65||Portamento On/Off||Controls if the Portamento effect (slide between two consequent notes) is On or Off. It has only two positions: Off (values between 0 and 63) and On (values between 64 and 127).|
|66||Sostenuto On/Off||Similar to the Sustain controller, but holds only the notes that are already turned On when the pedal was pressed. It is ideal for the “Chord Hold” function, where you can have one chord holding while playing a melody on top. It has only two positions: Off (values between 0 and 63) and On (values between 64 and 127).|
|67||Soft Pedal On/Off||Lowers the volume of the notes that are played. It has only two positions: Off (values between 0 and 63) and On (values between 64 and 127).|
|68||Legato Footswitch||Produces a Legato effect (two subsequent notes without pause in between). It has only two positions: Off (values between 0 and 63) and On (values between 64 and 127).|
|69||Hold 2||It prolongs the release of the note (or notes) playing while the controller is On. Unlike the Sustain controller (CC# 64), the notes won’t sustain until you release the pedal but instead they will fade out according to their release parameter.|
|70||Sound Controller 1||Usually associated with the way the Synthesizer produces the sound. It can control, for example, the sample rate of a waveform in a Wavetable synthesizer.|
|71||Sound Controller 2||Controls the envelope over time of the VCF (Voltage Control Filter) of a sound, allowing you to change over time the shape of the filter. It is also refereed as “Resonance”.|
|72||Sound Controller 3||Controls the release stage of the VCA (Voltage Control Amplifier) of a sound, allowing you to adjust the sustain time of each note.|
|73||Sound Controller 4||Controls the attack stage of the VCA (Voltage Control Amplifier) of a sound, allowing you to adjust the time that the waveform takes to reach its maximum amplitude.|
|74||Sound Controller 5||Controls the filter cutoff frequency of the VCF, allowing you to change the brightness of the sound.|
|75-79||Sound Controller 6-10||Generic controllers that can be assigned by a manufacturer to control non-standard parameters of a sound generator.|
|80-83||General Purpose Controllers||Generic button-switch controllers that can be assigned to various On/Off parameters. They have only two positions: Off (values between 0 and 63) and On (values between 64 and 127).|
|84||Portamento Control||Controls the amount of Portamento.|
|91||Effect 1 Depth||Controls the depth of Effect 1 (mostly used to control the Reverb Send amount).|
|92||Effect 2 Depth||Controls the depth of Effect 2 (mostly used to control the Tremolo amount).|
|93||Effect 3 Depth||Controls the depth of Effect 3 (mostly used to control the Chorus amount).|
|94||Effect 4 Depth||Controls the depth of Effect 4 (mostly used to control the Celeste or detune amount).|
|95||Effect 5 Depth||Controls the depth of Effect 5 (mostly used to control the Phaser effect amount).|
|96||Data Increment (+1)||Mainly used to send an increment of data for RPN and NRPN messages.|
|97||Data Increment (-1)||Mainly used to send a decrement of data for RPN and NRPN messages.|
|98||Non Registered Parameter Number (NRPN) LSB||Selects the NRPN parameter targeted by controllers 6, 38, 96 and 97.|
|99||Non Registered Parameter Number (NRPN) MSB||Selects the NRPN parameter targeted by controllers 6, 38, 96 and 97.|
|100||Registered Parameter Number (RPN) LSB||Selects the RPN parameter targeted by controllers 6, 38, 96 and 97.|
|101||Registered Parameter Number (RPN) MSB||Selects the RPN parameter targeted by controllers 6, 38, 96 and 97.|
|120||All Sound Off||Mutes all sounding notes regardless of their release time and regardless of whether the Sustain Pedal is pressed.|
|121||Reset All Controllers||Resets all the controllers to their default status.|
|122||Local On/Off||Enables you to turn the internal connection between the keyboard and its sound generator On or Off. If you use your MIDI synthesizer on a MIDI network, most likely you will need the Local to be turned Off in order to avoid notes being played twice.|
|123||All Notes Off||Mutes all sounding notes. The notes that are turned Off by this message will still retain their natural release time. Notes that are held by a Sustain pedal will not be turned Off until the pedal is released.|
|124||Omni Mode Off||Sets the device to Omni Off Mode.|
|125||Omni Mode On||Sets the device to Omni On Mode.|
|126||Mono Mode||Switches the device to Monophonic operation.|
|127||Poly Mode||Switches the device to Polyphonic operation.|
For more articles on MIDI, visit Andrea Pejrolo’s blog – www.acousticmidiorchestration.com
Andrea Pejrolo is the Assistant Chair of the Contemporary Writing and Production department at Berklee College of Music in Boston.
Andrea is a composer, producer, audio engineer and bassist. He is the author of Creative Sequencing Techniques for Music Production(1st edition 2005, and 2nd edition 2011) and Acoustic and MIDI Orchestration for the Contemporary Composer(2007) and has written several articles for music magazines, including Sound On Sound, Bass World Magazine (USA), Muralann and Boheme Press (Canada), and Il Capitello Publisher (Italy). Andrea has extensive and active professional experience as a sound designer, audio engineer/producer, MIDI programmer and composer for film, TV, theater and multimedia. Some of his recent collaborations and projects include iAcoustica Studio drum library, iDrum Rock Edition for iPhone/iPad in collaboration with Izotope, arrangements and recording with the City of Prague Philharmonic Orchestra, Kevin Bacon’s “Lover Boy”, Harry Davis’ “MVP”, Don Sebesky, ABC, CBS, Cy Coleman, Burning Petals Music Production (U.K.), the Broadway Show “Swing” (St. James Theater, NY), and the Grand Canyon Music Festival.
Andrea holds a Ph.D. in jazz composition/performance from New York University, a Master in Composition for Film, TV, Theater and Multimedia from the University of Bristol (U.K.) and a Music Diploma in Jazz Performance from Manhattan School of Music in New York City.