Image Credit: Music Tech
Digital audio has made music production all the more accessible. MIDI controllers provide a physical interface between you & your digital audio workstation.
The interface that MIDI controllers provide allows you to navigate through your DAW easily. Moreover, MIDI controllers allow you to both compose music and apply effects easier too!
Forget your mouse and say hello to MIDI instruments!
What is MIDI?
MIDI, which stands for musical instrument digital interface, is a bi-product of digital audio. MIDI controllers use binary data to represent parameters and inputs that you can adjust without using your mouse.
These parameters include pitch, tempo and other controls. Different MIDI controllers present different functionalities. However, there are common parameters found on most controllers.
MIDI converts musical notes into digital data that your computer and other digital hardware can read and process.
Key pressed – data is sent to your computer – monitors output sound
What can you do with a MIDI controller?
So, rather than use your mouse and keyboard to find, click and enter musical notes and commands within your DAW, MIDI controllers provide an often simple interface to do so. These MIDI interfaces enable you to control DAW parameters with buttons, faders, and knobs.
Different types of MIDI controller knobs
Knobs that have a 360-degree rotation are known as encoders. These knobs have an “endless” range.
But knobs that have a rotation of 270 degrees are known as pots (potentiometers). These knobs have a capped range.
Are MIDI controllers necessary?
In truth, no. They’re not. But they will simplify your workflow and make digital music production all the more enjoyable! They allow you to streamline your workflow and therefore give your bedroom studio a professional edge.
Why use a MIDI controller?
MIDI controllers are so popular for a multitude of reasons.
Firstly, MIDI file sizes are pretty small. They’re much smaller than digital audio files. This means that computers can process them faster.
Secondly, MIDI files allow you to interact with the music you’re making. Whether a MIDI keyboard or pad controller, controllers allow you to play melodies and chords in your piano roll.
Additionally, using a MIDI controller allows you to navigate through your DAW seamlessly. No longer would you need to use your computer mouse and keyboard!
For example, MIDI controllers allow you to control the volume of channels; channel panning, effect parameters like wet/dry, resonance, attack and release times, and many more. You can find the full list of mappable parameters at the end of the article!
A time before MIDI controllers
Two of the first MIDI controllers to begin changing the way music was made was Sequential Circuits’s Prophet 600 in 1982 & Roland’s Jupiter 6 in 1983!
Before MIDI, musicians played multiple instruments and then had to go through endless recordings until they got it just right. This sounds like it could take days, right? It did! MIDI was created to allow musicians to control more than one electronic instrument with a singular keyboard. This allowed them to manipulate and control sounds from various instruments in one place. An innovative tool that saved a lot of time, for sure!
Due to these revelations, people could create music at home – rather than pay an arm and a leg to hire a recording studio. Music was still expensive to get into, but much more accessible.
How does a MIDI controller work?
Now that you know what you can do with a MIDI controller, now is a great time to talk about how MIDI controllers work.
To do this, we’re breaking down three essential elements of MIDI controllers.
What is MIDI CC?
Anyone who has been looking at or using a MIDI controller has seen “CC” a lot.
Well, CC stands for Continuous Controller. There are a total of 127 CC messages that you can use to your advantage.
Controllers use numbered MIDI CC messages. From CC#0, CC#1, CC#2… all the way up to CC#127. In short, these numbers represent a specific DAW parameter you can control. As a result, we use MIDI CC messages to switch between different controls and functionalities.
With this knowledge in mind, it’s MIDI CC messages that allow us to control things volume (CC#7), panning (CC#10), velocity (more on this in a moment) and more. When you use a knob, fader, pad, key, or button on a controller, your controller sends a MIDI CC message to your DAW – telling it what to do. By raising or attenuating a fader, your controller tells your DAW to bring fader X (a default parameter or one you assigned it to) up/down respectively.
What is MIDI aftertouch?
When you press a key, you’re applying pressure. And your controller sends the appropriate data once you have struck a key/control and while you hold it in/down. This data is called Aftertouch!
There are two types of aftertouch.
The most common is channel aftertouch. Channel aftertouch refers to the amount of pressure that you can apply to all keys at any time.
On the other hand, polyphonic aftertouch is specific to individual notes – and every note. For example, MIDI messages that convey polyphonic aftertouch contain both a note number and an amount (of pressure). However, channel aftertouch messages only contain an amount (of pressure).
Channel aftertouch is found in all MIDI controllers while polyphonic aftertouch isn’t. This is because polyphonic aftertouch requires a more expensive mechanism than channel aftertouch does.
Aftertouch data allows your computer to receive specific details about what key you’re pressing. Moreover, it tells your computer how you’re pressing it and what parameters you’re manipulating too.
What is velocity sensitivity?
Velocity sensitivity enables your computer/DAW to respond to the force and speed that you press a key with.
To illustrate, pressing a key gently generates a softer sound. But pressing a key harder generates a stronger sound. In short, velocity sensitivity allows you to play virtual instruments like you would a real one.
Touch sensitive keys allow us to utilise this technology in our MIDI setup. In acoustic pianos, hammers strike thin strings in the piano housing once you press a key. This causes the strings to vibrate and thus generate sound. How hard you press a key dictates how strong the hammers will strike the strings. To replicate this velocity sensitivity in MIDI controllers, controllers use 2 sensors per key to replicate these vibrations.
One sensor tells the computer which key you have struck, and the second sensor tells the computer how fast you struck the key. Whenever you press a MIDI key, a value between 0 – 127 is sent to your computer. 127 is full velocity while 0 is no velocity (and thus no sound).
This is also where multi-sampling comes in. Like in the linked article, a sample pack creator would record the different velocities of the keyboard they’re sampling. These recordings are then represented as CC values.
What are MIDI velocity curves?
Most MIDI controllers come with velocity curves.
Velocity curves are a selection of velocity parameter options available for you to choose from. No matter what velocity you manually apply, velocity curves output a predetermined velocity value that you have chosen.
Choosing a soft velocity will output softer notes – no matter how hard you press a key. And the same goes for harder velocity curves too!
You can use velocity curves to manage the loudness of your output.
MIDI 2.0 vs MIDI 1.0
Everything we have just discussed is all relevant to today’s MIDI controllers. But in 2020, MIDI got a huge upgrade.
The MIDI 2.0 spec was released after 40 years of MIDI 1.0 helping musicians like you & I bring our ideas to life.
The fact that MIDI 1.0 was left unaltered for this amount of time speaks volumes about the power it brings to the community. However, some clever computer people from companies like Apple, Google, Native Instruments, and Ableton gave it an upgrade.
MIDI 2.0 reduces set up time
In MIDI 1.0, communication goes one way – from the controller to the computer.
This means that you have to manually set up any new controller via selecting what MIDI channel the keyboard uses, you have to “activate” the controllers, and so many things that you wish would just be done automatically.
Well, your prayers have been answered. MIDI 2.0 has bidirectional communication. This allows your computer and controller to communicate with each other. Additionally, it means that two or more MIDI controllers plugged into the same set-up can communicate with each other too!
This works via a simple process. MIDI 2.0 has a communication process called MIDI CI (capability inquiry). This is made up of protocols that your controller will carry out once a new device is plugged in.
One of those is Protocol Negotiation. It’s the first protocol your MIDI 2.0 device carries out and it determines whether a connected device has MIDI 1.0 or 2.0 capabilities. If the connected device only has MIDI 1.0 capabilities, your 2.0 device will communicate as a 1.0 device.
Therefore, the first major upgrade that MIDI 2.0 brings is auto communication between devices!
As well as Protocol Negotiation, MIDI 2.0 devices undergo Profile Configuration. To combat the time taken to set up your controller in your DAW, assign its features to corresponding knobs and faders in your software, and the rest, MIDI 2.0 does all of this automatically!
If you’re using a mixer control surface, 2.0 will automatically configure your hardware towards your DAW mixer and you can jump straight in and start making music! As well as this, your control surface will be configured to any plugins that the faders, knobs, and buttons can be used.
MIDI 2.0 Improves Data Transfers
If you were curious to know how many MIDI channels there are in MIDI 2.0, the answer is a whopping 256 channels. That’s 240 additional channels compared to MIDI 1.0.
With 32 bit resolution, compared to 1.0’s 7 bit, complicated communication is now much more detailed and efficient.
MIDI 2.0 has parameter limits in the 1000’s. You’ll remember that 1.0 has a parameter limit between 0 – 127, so 2.0 allows for your pads, knobs, and faders to offer much more detailed adjustments on any parameter that they’re assigned to. Could you see encoder knobs becoming much more popular than pot knobs now?
Bringing back our improved set-up time segment, MIDI 2.0 automatically grabs information from all other connected devices. This includes any parameter information, production information such as manufacturer and model name, lists of featured presets and patches, and any controller mappings.
If you have a MIDI 2.0 enabled synth, your DAW will automatically connect!
Universal MIDI 2.0
MIDI packets, which are multi-byte packets of information devices transported between themselves to bring MIDI to life, are now universally transportable across USB, Apple’s Lightning Bolt, ethernet, and any other digital transport. This allows for ‘plug and play‘ at any time – anywhere!
The future of MIDI
Room, if you can call it a room in a digital space, has been left for future developers to design new MIDI messages that can be easily implemented into the MIDI language. This means that applications for devices that we couldn’t dream of today can be easily used tomorrow inside the MIDI language that we’re already comfortable with.
What are the most common MIDI CC messages?
Before we jump in, we should say that there is no standard MIDI CC message for Vibrato Amount or Vibrato Speed. However, you can assign them and other CC mappings yourself in your software instrument.
- CC#1 = Modulation wheel
- CC#2 = Breath Control
- CC#7 = Volume
- CC#10 = Pan
- CC#11 = Expression
- CC#64 = Sustain Pedal (on/off)
- CC#65 = Portamento (on/off)
- CC#71 = Resonance (filter)
- CC#74 = Frequency Cutoff (filter)
Full list of MIDI CC messages
- CC#0 = Bank Select (MSB)
- CC#1 = Modulation Wheel
- CC#2 = Breath controller
- CC#3 = Undefined
- CC#4 = Foot Pedal (MSB)
- CC#5 = Portamento Time (MSB)
- CC#6 = Data Entry (MSB)
- CC#7 = Volume (MSB)
- CC#8 = Balance (MSB
- CC#9 = Undefined
- CC#10 = Pan position (MSB)
- CC#11 =Expression (MSB)
- CC#12 = Effect Control 1 (MSB)
- CC#13 = Effect Control 2 (MSB)
- CC#14 = Undefined
- CC#15 = Undefined
- CC#16-19 = General Purpose
- CC#20-31 = Undefined
- CC#32-63 = Controller 0-31
- CC#64 = Hold Pedal (on/off)
- CC#65 = Portamento (on/off)
- CC#66 = Sostenuto Pedal (on/off)
- CC#67 = Soft Pedal (on/off)
- CC#68 = Legato Pedal (on/off)
- CC#69 = Hold 2 Pedal (on/off)
- CC#70 = Sound Variation
- CC#71 = Resonance (Timbre)
- CC#72 = Sound Release Time
- CC#73 = Sound Attack Time
- CC#74 = Frequency Cutoff (Brightness)
- CC#75 = Sound Control 6
- CC#76 = Sound Control 7
- CC#77 = Sound Control 8
- CC#78 = Sound Control 9
- CC#79 = Sound Control 10
- CC#80 = Decay or General Purpose Button 1 (on/off) Roland Tone level 1
- CC#81 = Hi Pass Filter Frequency or General Purpose Button 2 (on/off) Roland Tone level 2
- CC#82 = General Purpose Button 3 (on/off) Roland Tone level 3
- CC#83 = General Purpose Button 4 (on/off) Roland Tone level 4
- CC#84 = Portamento Amount
- CC#85-90 = Undefined
- CC#91 = Reverb Level
- CC#92 = Tremolo Level
- CC#93 = Chorus Level
- CC#94 = Detune Level
- CC#95 = Phaser Level
- CC#96 = Data Button increment
- CC#97 = Data Button decrement
- CC#98 = Non-registered Parameter (LSB)
- CC#99 = Non-registered Parameter (MSB)
- CC#100 = Registered Parameter (LSB)
- CC#101 = Registered Parameter (MSB)
- CC#102-119 = Undefined
- CC#120 = All Sound Off
- CC#121 = All Controllers Off
- CC#122 = Local Keyboard (on/off)
- CC#123 = All Notes Off
- CC#124 = Omni Mode Off
- CC#125 = Omni Mode On
- CC#126 = Mono Operation
- CC#127 = Poly Mode