MIDI controllers

Hardware MIDI Control Types

Context

The variety of the available MIDI controllers (used and new) is too much to track unless someone has too much time and energy or money to pay people to do so. 🙂

And not all hardware controllers are implemented equally. Some can be configured in a lot of detail – others not so much. Some need extra software, others can be configured on the hardware device. Sometimes they stop working with new MacOS releases (Windows MIDI is more forgiving with backwards compatibility).

So MIDI controller acquisition is a frustrating process, until one becomes quite experienced – usually by wasting considerable money buying different controllers. Or having an experienced friend with very similar priorities.

This post is intended to help a little with getting a general sense of what to look for. It’s not a purchasing guide.

My current mental model / classification of the various kinds of hardware controls available on MIDI controllers is entirely in the context of MIDI 1.0 (MIDI 2.0 is only very recently starting to be supported in a handful of devices).

MIDI messages are for music what character encodings are for text. They are just a series of numbers that can be used for all kinds of different things. As long as the sender and the receiver interpret the messages in the same way. The website for the MIDI standards body can be found at midi.org and has the official list of the MIDI 1.0 messages types.


MIDI Message Type Abbreviations

CCControl Change
PBPitch Bend
CAChannel Aftertouch / Channel Pressure
PCProgram Change
PAPolyphonic Aftertouch
Some of the more typical MIDI message types sent by hardware MIDI controllers.

Hardware Controls

Keyboard style Keys

  • Most reasonably modern keyboards will send MIDI note velocity in addition to the number.
  • Some keyboards also transmit note off velocity (the velocity of releasing a key).
  • Most keyboards can be configured to apply a pitch shift to the MIDI note numbers as they are being sent. This is important, since keyboards tend to have fewer than 127 keys (the number of allowable MIDI notes).
  • Quite a few keyboards can send channel aftertouch data, sensing the pressure applied while holding a key down (a single value for the maximum pressure applied amongst any of the keys being pressed).
  • Currently only available on relatively few keyboards, is the ability to sense and transmit MIDI polyphonic aftertouch data, sensing how much extra pressure is applied to each individual key.
  • Some keyboards can be configured via velocity curves to adjust for individual playing styles (hard vs soft).
  • Larger keyboards can frequently by configured to be split into multiple zones or parts to send on different MIDI channels and/or sometimes with other setting like pitch shifts.
  • A few modern keyboards have LED lighting to indicate zones and/or for eye candy – optionally for reacting for incoming data.
  • Very few current keyboards can sense and send additional MIDI data. For example, when a key is being wiggled left/right or if a key is touched more towards the front or more towards the back.
  • There’s also some non traditional takes on keyboard keys on some hardware.

Pads

  • Most reasonably modern pads will send MIDI note velocity in addition to the number.
  • Many modern pads can sense pressure applied at the bottom of the regular pad press and transmit MIDI polyphonic aftertouch data, i.e. sense and transmit MIDI data for how much extra pressure is applied to each individual pad while holding it down.
  • Very few current pads can sense and send additional MIDI data. For example, when a pad is being wiggled left/right or if a pad is touched more towards the front or more towards the back.
  • Quite a few modern pads have LED lighting to indicate zones and/or for eye candy – some can react to incoming data.
  • It’s quite common for hardware controllers to facilitate pads to be used like buttons.

Buttons

  • Buttons can be configured to send certain MIDI messages when being pressed or when being released. Or both. Common message types for buttons are CC, Note and PC.
  • Many buttons can be configured to function in one of several modes.
    • Gate mode means there’s a MIDI message being sent for pressing the button and another message set for releasing it. Most common are CC with value 127 and 0 for press and release, or a note with velocity higher than zero for press and velocity 0 for release.
    • Toggle mode means there’s alternating MIDI message for every press of the button. For example the button presses may alternatingly send a CC with values 127 and 0. Or Note messages alternating between velocity 127 and 0.
    • Trigger mode means there’s the same message on every press and no message on release. (Or a message on every release, but no message on press). This can also be an implied mode for PC messages.
    • Step mode means that every successive press sends slightly different MIDI message allowing for stepping through of a number of distinct values. This makes a button work a bit like like a multi-position switch.
  • Some modern buttons have visuals like LED lighting and/or LCD displays to indicate current status.
  • Some modern buttons also receive MIDI data changing their internal status and/or visuals.

Wheels

  • Wheels turn in a single dimension, most commonly sending CC or PB data.
  • Some wheels are self centering – i.e. when letting go of the wheel, it returns to a middle. Self centering is most common for wheels that are designed to send PitchBend data.
  • Most wheels have visual indicators to aid in telling their current position. Often a notch, or a line. Sometimes (also) some LED based indication. A notch is great for operating by feel. LEDs are great eye candy or on a dark stage.

Knobs

  • The traditional rotary control with a minimum and a maximum position.
  • Some have a click at their middle position, since the middle can be important for some use cases (like stereo panning).
  • Quite typically they have a visual position indicator, like a line or a dot.
  • Most commonly, they send MIDI CC messages, but some devices allow a selection of different MIDI message types to be sent.

Encoders

  • Look similar to knobs, but can turn endlessly. And in numerous GUI environments, encoders are also called “knobs”, making things extra confusing for users.
  • Quite often, one can tell the difference between a knob and an encoder, because knobs often have a visual position indicator on them (a small line or dot), and encoders generally do not have such an indicator.
  • Some encoders have clicks, most do not.
  • Most commonly send MIDI CC messages, but some devices allow a selection of different MIDI message types to be sent.
  • Many encoders can be configured to operate in at least 2 modes, including
    • Absolute mode tends to mean that the encoder sends the CC messages with values 0 to 127 like a typical knob would.
    • Relative mode means that the encoder sends a specific CC value repeatedly while being turned left and a different value while being turned right. The receiving device or software needs to also support and be configured to this mode to work.
  • Some encoders come paired with visual indicators for their current “position”. Might be an LED ring and/or an LCD display.
  • Some encoders can also receive MIDI messages, so they can have a new starting point for when they are next being turned. Especially useful when the encoder is associated with a visual indicator.

Multidimensional Encoders

  • Some encoders can transmit additional MIDI data associated with additional actions, like
    • touch / release sending a MIDI message when the encoder is being touched and/or released. Effectively this makes the encoder work like a button in addition to being an encoder.
    • press down is another button-like capability on some encoders – typically with a click.
    • simple joy-stick motion with click adds MIDI messages for pushing the encoder up/down or left/right. This is a lot like having 4 extra buttons. I’ve not yet seen anything more than a 4 way, but one day someone will probably make one. 🙂

Faders

  • Slide in a single dimension, typically sending MIDI CC messages.
  • Some can handle a less common high precision value in the format of the MIDI RPN/NRPN standard.
  • Some are motorized, so they can slide to a value that is being sent to them as a new starting point for the next move.

Touchstrips

  • Sensors that can tell where they are being touched along a single axis.
  • Some can be configured to be virtually self centering – i.e. when letting go of the strip, it sends MIDI messages as if it was last touched right in the center.
  • Some can be configured to operate in a relative mode quite similar to how encoders work. So they transmit different messages depending on the direction of the sliding motion on the strip.
  • Some faders come paired with visual indicators for their current “position”. Might be an LED strip and/or an LCD display.
  • Some touchstrips can also receive MIDI messages, so they can have a new starting point for when they are next being turned, or to show on their visuals.

XY Pads

  • Similar to touchstrips, but they can tell where they are being touched along a dual axis.
  • Typically they send 2 MIDI CC messages, one for each axis.
  • Some can be configured to be virtually self centering – i.e. when letting go of the pad, it sends MIDI messages as if it was last touched right in the center.

Joysticks

  • Similar to wheels, but they can measure in 2 dimensions the current location of the joystick. Some are self-centering.
  • Typically they send 2 MIDI CC messages, one for each axis.

Pedals

  • These are typically for foot control and typically are somewhat analogous to some of the controllers listed above.
  • Most commonly a pedal control is a simple pedal plugged into another MIDI controller (keyboard, etc.), with the MIDI controller translating the pedal into a MIDI message.
  • Continuous controllers, sometimes also called volume pedals or expression pedals can be seen as somewhat analogous to wheels typically sending MIDI CC messages.
  • Switch pedals can be seen as somewhat analogous to buttons.
  • Some pedal controllers are fully standalone and can send MIDI messages without needing another MIDI controller.
  • Pedal keyboards can be seen as analogous to regular keyboards.

Other Controls

Many Noord keyboards have an alternative control for pitchbend, which is sort of a wooden stick.

Breath controllers are a thing ever since the Yamaha DX-7. There are modern incarnations (however I’ve never tried any of those).

Distance sensors like Rolands D-Beam or some theremin type controllers can sense distance to a hand (or whatever) and transmit MIDI messages indicating the distance.

MIDI capable full instruments like a MIDI saxophone/clarinet, or a MIDI guitar. Or regular guitar to MIDI translation devices.

And maybe above all, MIDI drum kits are in mainstream use for decades already.

And there are more MIDI controllers being manufactured all the time. And even more home-made one’s spring to life every day. And that’s a good thing™ 🙂

One more observation

While MIDI is a standard format, there’s really no limit to what can be done with it. And that shows in the multitude of varying implementations of the MIDI protocol across the countless devices available new or used these days. And while I may have more MIDI controllers than most, my experience is still only with a small subset of what’s available. MIDI is also widely used in lighting in various art installations, and in a variety of accessibility applications. More big universes beyond the original music making roots of MIDI.

As such, my mental model described above is at best a high level approximation, and by no means a comprehensive reflection of a much bigger reality. (I have only so much time, space, money and brains). And my classification can be argued, because there’s not as much of an inherent difference between a pad and a button. Pads on many controllers can be used just like buttons. So is a button just a dumber pad? Is a touch strip just a dumber XY pad? Did anyone make a MIDI track ball yet? And would a wheel just be a dumber trackball?

But even with all of those caveats, I find that for my own clarity, some classification is better than none, since it allows me to remember things a bit better, when messing around with MIDI.