You don't need a Pro Control to get some hands-on control of Pro Tools. You don't even need one of the 'supported' MIDI control surfaces: pretty much anything with knobs on will do.
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.
MIDI tracks work with the CS10 personality just the same as audio tracks, but also respond to (and record) standard MIDI Controller data such as volume and pan info. If you have a MIDI track in Record and are playing data into it, these controllers will be active without having to go through the process of programming the CS10 data. Additionally, whatever is receiving the MIDI from the output of the MIDI track may be able to make use of MIDI CC data. This provides an alternative way of controlling soft synths from hardware. If the manufacturer of the plug-in has implemented control data, each parameter on the virtual instrument will have been assigned a control value. Hopefully, this information will be published so you can program your controller to map to the controls you're interested in. In any case many of the CC data numbers are specified for standard uses like envelopes, so with any luck some of your controls will be mapped anyway.
Any moves you make can be recorded as continuous data by dropping the MIDI track into Record, instead of using Pro Tools ' standard automation system. Once again, all this is a bit fiddly, especially compared with the fast 'learn' method employed by Reason and Live. There is hope however, if Arturia's Minimoog plug-in is anything to go by. This RTAS synth has had control data learning functionality built in by the developers. The screen shot shows this in action. Command-clicking on any parameter in the plug-in window brings up a small window with control options. All that the user needs to do is click Learn and move a knob or slider on their MIDI controller. The plug-in will map that parameter to whatever CC value the controller is giving out, which is a whole lot easier than having to edit the hardware to match the software! Pat on the back to Arturia.
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.