How to control Pro Tools faders from any MIDI device

Pro Tools doesn't have an easy MIDI Learn function like many other DAWs. Learn how to use SoundFlow to convert any MIDI input from your favorite device into the specific protocols that Pro Tools uses.

Introduction

Most DAWs have support for MIDI Learn to easily map a physical controller to a fader or knob in your software. Pro Tools instead relies mostly on the proprietary EuCon protocol and on very expensive hardware control surfaces that implement this protocol. Avid completely controls who can build surfaces with this protocol. Granted, most of those surfaces are great, take a look at the Avid S6 for example for a modern controller that is difficult to surpass:
But, they are expensive, and the restriction means you can't easily just plug in any MIDI controller with faders or knobs and get started mixing.It wouldn't be accurate to say though, that Pro Tools does not support MIDI surfaces at all. It does, just not in a very customizable manner.Take a look at how you set up a MIDI controller in Pro Tools (they call them Peripherals):
Here I've clicked Setup -> Peripherals... in the menu, selected the MIDI Controllers tab and then clicked the first drop down menu. The screenshot shows you the 4 different MIDI protocols that Pro Tools support: Command8, HUI, SurroundPanner and M-Audio Keyboard.
So this is why we said that the MIDI Controller support in Pro Tools is limited. If your MIDI device doesn't speak those protocols by itself, you're out of luck (read on). These protocols were made to talk to legacy devices that are in some cases more than 20 years old today, and since Avid wants you to buy the EuCon enabled controllers, they don't have any reason to make the MIDI support work any better.

Emulation to the rescue

BUT, there is a solution!SoundFlow has a built in HUI emulator - we can "act" like we're an actual, physical HUI device. This way we gain access to everything that the HUI protocol does - this includes controlling up to 8 tracks (8 faders) at the same time, and even pan automation, assigning inserts&sends, flipping faders and many other things you'd expect from a control surface.
By using SoundFlow to convert between your MIDI device and Pro Tools, you now no longer need to have a MIDI device that supports HUI or any of the other legacy protocols.

Getting started

Okay, so now we know that we want to set up SoundFlow as a "middle man" between your device and Pro Tools. But first things first. To get started with this tutorial you'll need to have SoundFlow installed, started a trial or a subscription, and learned how to assign a new trigger and to create your first command.

1. Setting up the SoundFlow HUI peripheral

First we'll need to make the connection between Pro Tools and SoundFlow's HUI device emulator. In Pro Tools, go to Settings -> Peripherals... and choose the MIDI Controllers tab.It should look like the following:
In the first slot, under Type: none, click the drop down and choose HUI:
In the Receive From drop down, choose Predefined -> SoundFlow HUI Output:
In the Send To, choose Predefined -> SoundFlow HUI Input:
Your settings should now look like this:
Click OK so save your settings.

Setting up the MIDI input

You'd think that this was enough, but Pro Tools wants us to go through one more step. We need to set up the SoundFlow HUI Input as a valid MIDI input.
To do this, click the menu SetupMIDIMIDI Input Devices... and the following dialog will appear:
Please make sure that the SoundFlow HUI Output is checked, and then click OK.
That's it. You have now succesfully set up SoundFlow's HUI emulator.

2. Creating the SoundFlow command

Next step we need to create the SoundFlow command that is going to receive the input from your MIDI device and forward it as HUI messages to SoundFlow's emulator.
This requires that you've spent a little time understanding how to create a new custom command and how to assign a trigger to it.

A. Creating the command

First, let's create a new command and call it MIDI Faders.Navigate to the Default Package under the Custom Commands section.
Hit Cmd+N to create a new command. Enter "MIDI Faders" into the Name box and hit OK.
You should now have a command selected in your Default Package named "MIDI Faders".

B. Assigning the trigger

Now let's assign your MIDI device to this command so that the command gets run every time we receive a MIDI message from your device.Select your command "MIDI Faders" and then click the New Trigger button in the "Command Triggers" section:
In the popup window, choose "All Applications" on the left and choose "None" in the middle:
By selecting "All Applications" we make sure that we can still control the faders even if Pro Tools is not in the foreground.In the right Choose Trigger column, select Midi Device. It will now start capturing:
Move a fader or press a key on your MIDI device to make sure it registers:
Now press OK to save your new trigger. It should look like this:

C. Entering the command script

Now that you've created your command and assigned a trigger, paste the following code into the script editor (bottom right section of the SoundFlow app):
var firstFaderCC = 12;
var numberOfFaders = 8;

var m = event.trigger.midiBytes;
var m1 = m[0], m2 = m[1], m3 = m[2];

if (m1 == 0xb0 && m2 >= firstFaderCC && m2 <= (firstFaderCC + numberOfFaders - 1))
{
var val = m3 * 127;

sf.midi.huiFader({
faderNum: m2 - firstFaderCC + 1,
value: val,
touchAndRelease: true,
});
}
You'll notice 2 important numbers in the first 2 lines. The first is 12, which specifies the CC number for the first fader in your MIDI device. The second is 8, which specifies the number of available faders.
So here we are assuming that the faders on your MIDI device all send CC messages from #12=Fader1, #13=Fader2, etc. all the way up to #19=Fader8.
If the faders on your MIDI device sends from different ranges of CC, then you can simply change the mapping by changing the number 12.
That's it, we have now pasted the code. You don't need to hit Save or anything, the code is automatically available now.

Testing our new command

We're now ready to switch over to Pro Tools.In Pro Tools' Edit window, select the first track that you want to map our 8 faders to, by Ctrl+Shift clicking the track's title with your mouse.Pro Tools will now display blue borders on the mapped tracks to signal that the HUI device is now controlling their faders.
And that's it. Try to move one of the faders on your MIDI device and you should be able to see the track's volume go up and down accordingly.