Log in
Log in

Create an account


MIDI Learn Explained

Control your software remotely with real knobs, buttons and faders

I’m often surprised by musicians who use their mice or trackpads to change MIDI software parameters, and then complain that they miss using real knobs and buttons. I’m surprised because they could use knobs and buttons if only they’d take advantage of MIDI Learn (sometimes called MIDI Assign), which gives you the ability to assign the physical controls on your hardware to the virtual controls you see on your computer screen.


If you use a software instrument or audio processor, you may be aware that it has MIDI Learn functionality even though you’ve never touched it. Using the controls on your keyboard’s front panel or your control surface allows a more intuitive, hands-on experience and makes programming software synths a lot more like programming hardware synths

CC me


The MIDI learn feature on a software synth or software processor lets you control its parameters with actual knobs, sliders, buttons or pads on a hardware MIDI controller.

As you probably know, MIDI data contains messages that communicate when a note plays, as well as its pitch, velocity and so on. Most other types of MIDI messages are Control Changes, also known as MIDI CCs. Generally speaking, MIDI CCs are responsible for communicating nuance and expression in our playing, along with an assortment of other functions. For almost 33 years, the MIDI 1.0 Specification has specified 128 types of CCs, with a number designated to each. For example, CC#1 controls modulation, the type of data usually sent when you push your keyboard’s modulation wheel forward. CC#7 controls volume, the type of data usually sent when you move your volume pedal or turn your volume knob.

The majority of CCs cover a finite range of continuous data. Modulation and volume are just two examples of continuous parameters. The MIDI Spec also defines six CCs that serve as switches used to turn parameters on and off. The most familiar MIDI switch is Sustain, CC#64, which is sent when you depress a sustain pedal connected to your keyboard. Some Control Change messages are undefined, meaning that the MIDI Spec doesn’t indicate what they should be used for, allowing manufacturers to use them for device-specific purposes that the MIDI Spec may not have anticipated.

Although CC#1 is intended to control modulation, CC#7 is intended to control volume, and CC#64 is intended to control sustain, you could easily reassign them to control other parameters, if you prefer. For example, you could assign CC#1 to control panning, portamento time or any other continuous parameter. More to the point, the ability to reassign MIDI CCs allows you to use them for controlling your software parameters onscreen, in some cases delivering mouse-free operation.

Twisting the night away

Some software lets you see the MIDI CC number you’re assigning to a particular control. Here I’m assigning my Novation Supernova II’s filter resonance knob, which sends CC#106, to control filter resonance in Arturia’s Oberheim SEM V.

If you own a control surface or a MIDI keyboard controller sporting a number of knobs, sliders, buttons and pads, you have what you need to control your software remotely. Even if you have a synth with controls for its own oscillators, filters, envelopes and so on, there’s a good chance you have what you need, as well. Many synthesizers transmit MIDI CC data when you manipulate their front-panel controls. This lets you record any real-time changes you make into your DAW in the form of MIDI CC data. If you sweep the filter by turning the cutoff knob while recording, for instance, you’ll hear the same filter sweep when you play back the track. The easiest way to see if your synth offers this functionality is turn a knob while recording and then view the track to see if MIDI CC data was recorded.

If you want to use your synth to control software, you’ll need to disconnect its keyboard and controls from the internal sound engine. Otherwise, you’d hear it every time you played the keyboard. You could accomplish this by simply turning the volume all the way down, but I suggest turning off MIDI Local Control. If you look in your synth’s Global commands, that’s where you’ll mostly likely find Local On/Off. Turning Local Off also allows you to monitor your hardware synth through a DAW without hearing echoes of every note.

Most software lets you enable MIDI Learn one control at a time. Typically, you right-click (or Control-click) the onscreen knob or button you want to control and select MIDI Learn from the menu that pops up. Then, you select a target for that control by twisting a knob or pressing a button on your hardware. Once you’ve done that, the software and the hardware controls are linked. Repeat the process for more controls. On some software, you’ll need to select a MIDI CC from a pop-up list, which requires you to find out which CC is sent by the hardware control you want to assign. Check your software manual for instructions.

You may be even able to map the controls on your hardware synth to identical functions on your soft synth, allowing you to control the filter with filter knobs, the oscillator with oscillator knobs, and so on. Linking an envelope generator’s attack slider to control your soft synth’s attack parameter, for example, is usually a simple matter of enabling MIDI Learn, clicking the onscreen control and moving the corresponding control on your hardware. Once you’ve set everything up and used it for a while, you’ll never want to go back.

Would you like to comment this article?

Log in
Become a member