Fader Hub & Tascam Model 12: Live Mixer & Recorder

The Tascam Model 12 mixer can act as both an audio interface and MIDI controller. With 8 channels and a master fader, it perfectly fits Fader Hub‘s design.

When DAW Controller mode is set on the Model 12, the faders, pan pots and the mute, solo & record buttons can be used to control software instead of controlling the mixer directly.

This mode however use the HUI or MCU protocols, which are mainly designed for DAW (Digital Audio Workstation) control and are not natively supported by Fader Hub. With a bit of scripting with Plug’n Script, it is possible to use the Model 12 as a controller for Fader Hub as you can see in the video below:

Loopback MIDI

Fader Hub 1.2 introduces MIDI loopback, which lets you route the output of a plug-in back to Fader Hub’s MIDI input. So we’ll use this new feature with Plug’n Script to translate the MCU protocol into regular MIDI CC messages supported by Fader Hub.

Model 12 > Fader Hub MIDI IN > Plug'n Script > Fader Hub Loopback IN

The MCU Protocol

Buttons

The MCU protocol as implemented by the Model 12 uses a couple of MIDI Note message to toggle buttons in the software, and expects MIDI note messages as well from the software to update its own state (and turn LEDs on or off). So we’ll have to use another instance of Plug’n Script to keep track of the Model 12 state and send back to it the messages required for the status updates.

Model 12 > Fader Hub MIDI IN > Plug'n Script Status Updater > Fader Hub Out > Model 12

Faders

Faders simply send Pitch bend messages on 9 channels (9th is the FX Fader that can be used for the master fader for example). The translation into MIDI CC is straightforward:

 // Faders
case kMidiPitchWheel:
{
uint8 value=0;
value=uint8((127*uint(MidiEventUtils::getPitchWheelValue(data.inputMidiEvents[i])+8192))/16383);
uint8 channel=MidiEventUtils::getChannel(data.inputMidiEvents[i]);
if(channel<10)
{
// strips fader => apply offset
if(channel<9)
channel+=tracksOffset*8;
else
channel=0; // master is 59
// send MIDI CC value on selected channel
MidiEventUtils::setChannel(tempEvent,outputChannel);
MidiEventUtils::setType(tempEvent,kMidiControlChange);
MidiEventUtils::setCCNumber(tempEvent,59+channel);
MidiEventUtils::setCCValue(tempEvent,value);
data.outputMidiEvents.push(tempEvent);
}
break;
}

Pan Pots

Pan pots are implemented as incremental MIDI CCs, using values larger than 65 for decrements, and values lower than 63 for increment (0 and 127 meaning max and min respectively). This means that the state of the pots has to be stored in the script and increments applied upon changes:

 // Pots control
case kMidiControlChange:
{
if(MidiEventUtils::getChannel(data.inputMidiEvents[i])==1)
{
const uint8 cc=MidiEventUtils::getCCNumber(data.inputMidiEvents[i]);
if(cc>=16 && cc<24)
{
const uint8 value=MidiEventUtils::getCCValue(data.inputMidiEvents[i]);
int index=cc-16+tracksOffset*8;
if(value==127)
states[index].pot=0;
else if(value==63)
states[index].pot=127;
else if(value>65)
states[index].pot-=(value-64)/2;
else if(value<63)
states[index].pot+=(value)/2;
if(states[index].pot>127)
states[index].pot=127;
else if(states[index].pot<0)
states[index].pot=0;

// send pot event
MidiEventUtils::setChannel(tempEvent,outputChannel);
MidiEventUtils::setType(tempEvent,kMidiControlChange);
MidiEventUtils::setCCNumber(tempEvent,100+index);
MidiEventUtils::setCCValue(tempEvent,states[index].pot);
data.outputMidiEvents.push(tempEvent);
}
}
}

Tracks Banks

In order to address more than 8 channel strips, the MCU protocol lets you jump from groups of 8 tracks via MIDI note messages (notes 46 and 47) for +/-. In Fader Hub we have a maximum of 8 input strips and 8 LLAN Mixer strips, so we can use this feature to jump between the input and the LLAN strips.

This is managed in the transform script, switching MIDI CCs when receiving the bank change messages, and in the state script as well so that the LEDs are updated accordingly when switching strips banks.

Downloads

Here are the preset file for Fader Hub, and the Model 12 management scripts written for Plug’n Script (you need to have an install of Plug’n Script as a VST plug-in):

Model 12 Fader Hub Preset

Model12-scripts for Plug’n Script

How To Use Them

Install the scripts in the Documents/Blue Cat Audio/Blue Cat Plug’n Script/Scripts folder, and save the Fader Hub preset file on your computer.

Connect the Model 12 via USB, and select the DAW Controller Mode for Live (that’s the mode used for these scripts and preset). Launch Fader Hub and make sure the Model 12 is both selected as MIDI Input and Output in the audio/MIDI Settings.

You probably want to use it as an audio interface as well, although you can use another one too.

Load the preset, and voilĂ !

Using Other MCU Devices

The scripts and presets above have been specifically implemented for the Model 12. It should be however easy to adapt them to other devices.

To find out how the MCU protocol works for these devices, you may want to use the built-in MIDI log script in Plug’n Script and check the messages sent by the device when using it.

Enjoy!

>discuss this topic in the forum

 

Leave a Reply

Your email address will not be published. Required fields are marked *