There can't be many home studios that haven't been infiltrated by an Oxygen 8, or similar portable MIDI controller from the likes of M Audio, Edirol, Evolution, Kenton, Novation and others. It's incredibly easy to make use of all those knobs and sliders if you're using software like Reason or Live: you just use the 'learn' function to click on an on-screen parameter, then wiggle a hardware control, and the two are mapped together automatically. Of course this is far too effective and obvious an idea to have found its way into Pro Tools! (Actually, if I remember rightly, there was a MIDI learn function in Pro Tools years ago, but it was taken out.)
Pro Tools communicates with hardware control surfaces using a system of set 'controller personalities' or templates. There are four specific units that Pro Tools supports directly: Mackie's HUI, CM Labs' Motormix, JL Cooper's CS10 series, and Peavey's PC1600. If you have one of these you just hook it up, tell Pro Tools it's there in the Peripherals menu, and it'll work. In fairness, there are advantages to this scheme compared with the method of mapping hardware controls to on-screen parameters. The support is more sophisticated, allowing you to shuffle your controls across the mixer channels in banks of, say, eight at a time, and any open plug-ins have ready-to-go control, again with the ability to bank across the parameters to accommodate the number of knobs you have available.
But what if you don't have one of the devices on the sacred list? Well, quite a few devices can emulate one of those on the list. Examples of this are the Mackie Control, and Yamaha 02R and 01V mixers. The way these devices do this is to have templates that use exactly the same MIDI messages for altering each parameter as the control surface they are emulating. Pro Tools doesn't know it's being duped. Even if the manufacturer of your particular controller hasn't set up a Pro Tools template, you can do it yourself. All you need is a hardware controller that lets you edit the MIDI messages that each of its knobs, sliders and buttons emits, and a list of what those messages should be. Thankfully, even the humble Oxygen 8 lets you edit its rotary encoders, and Digidesign publish the full list for the CS10 template. Don't worry if you've never ventured all that deeply into MIDI messages, it's not as bad as you might think.
Another Option For MIDI Tracks And Soft Synths
There are various MIDI data types available in addition to the standard 'I hit this key that hard' kind of thing. Of particular interest to us here is the 'CC' or Continuous Controller class of messages. Each chunk of MIDI CC data contains several pieces of information: a number from 0-127 that identifies what it controls, a value determined by the position of the control input, and the MIDI channel number. All the controls that make up the CS10 template are of the CC variety and act very consistently: for a start they are all on MIDI channel 16, and have a full range of 0-127. Switch parameters that only have two states, either pressed down or not, are considered by Pro Tools to have been pressed if they receive a value of 127. Switches act like toggles, so consecutive presses and CC values of 127 will turn the switch on and off.
OK, let's have a look at a real example using Novation's Remote 25 Audio controller. The first job is to decide how to substitute the controls you have available for those on the CS10. The CS10 has eight faders, each with a single associated push button. A mode button switches the function of these buttons between mute, solo, record enable, channel select and channel control focus. There are four cursor buttons for bank selection, standard transport controls, and some edit function buttons.
The scrub wheel does not have any equivalent on the Remote 25, but all the rest of the buttons and faders can be mapped to similar controls. The first step is to pick a blank template and hit the Template Edit button. Wiggling the first fader arms it for editing. Now you have to refer to the data chart in Appendix A of the MIDI Control Surfaces Guide in the Documentation folder in your Pro Tools folder. Fader 1 is listed as CC 40h, with range 7Fh. This is the first hurdle, as these are values in hexadecimal (that's what the 'h' means) and the Remote 25 uses decimal. Luckily, it's very easy to convert from hex to decimal using the web site www.geocities.com/binary_converter. Hex 40 is 64 in decimal, and 7F is 127, the maximum value for a CC message. Now you can page through the option on the hardware for fader 1, and enter the details. On the Remote 25 that looks like this: Control Type 'CC'; Control Number '64'; Display Type '0-127'; Value Range '0-127'; MIDI Channel '16'. After setting these values, save the template, exit editing mode, and it's time to try it out in Pro Tools.
Within Pro Tools you need to declare a CS10 MIDI controller. Choose Setups / Peripherals and switch to the MIDI Controllers tab. In the first slot, choose CS10 and set the MIDI In and Out options to your controller. Hit OK and create some tracks. The first eight tracks in the mixer should have blue outlines around their names. Now move the fader completely up and down, and channel 1 should pick up and follow on screen. Pro Tools has an elegant system for picking up MIDI controller values. Instead of the PT fader just jumping to the current position of the controller, it only picks up when the controller moves through its current position. This makes for a smooth pick-up, free from sudden jumps.
Buttons are set up in almost exactly the same way as faders or knobs, as the CS10 template only uses CC-type data. You have to tell the controller how the button is to behave, and in Remote 25-speak 'momentary' is the best option, as this only emits the necessary 127 value while the button is depressed (which is what Pro Tools is expecting). If this behaves properly in Pro Tools, you can go ahead and set up all the other buttons and knobs/sliders. The most important buttons to include are the Mode button and the cursor buttons. The left and right cursor buttons select which channels get fader control, in banks of eight (if you have more available you can set this in Peripherals). The up and down cursors are the key to controlling plug-ins. When a plug-in window is open it becomes the target for MIDI control, and the track it's in will be outlined in red. You get four controls at a time, based on whatever you map to the knob controls of the CS10 template. Use the up/down cursors to step through which controls are active. The key thing is that you need to press the down cursor once to activate plug-in control.
My attempt to get an M Audio Oxygen 8 working as a CS10 emulator to control Pro Tools started off as a bit of fun, but it actually works quite well! The challenge is that although there are eight rotary knobs that can be stored in five banks, for a total of 40 controllers, there aren't any buttons. It's not the end of the world, though, because you can use knobs to control the button functions. If you set a knob to one of the control numbers that Pro Tools expects to be a button, you can emulate a button-press by momentarily turning the knob fully clockwise. I set up one bank of eight knobs to control faders, and another bank of eight as the four cursor keys and plug-in editing knobs. It might sound a bit of a gimmick, but it's actually pretty useful, especially for controlling soft synth plug-ins. Here's the quick-start guide for programming the Oyxgen 8: Press the MIDI/Select button and use the Octave Up/Down buttons to choose one of the five knob banks. Now hit MIDI/Select again, then press the note-key that has 'Set CTRL' printed above it. Press the '1' note-key to choose the first knob and press 'Enter' (the top key on the keyboard). The display will say 'P—', which is the prompt to enter a CC control number using the 0-9 keys. Type '64' (the Fader 1 control value) and 'Enter'. The display should now say 'C—' and you can now enter the MIDI channel, which must be '16'. Hit 'Enter' and 'MIDI/Select' to finish, and knob 1 should now be controlling your first Pro Tools fader.