Bug - Control surface linked with Pro Tools

Hi guys,

I’m having a little issue when trying to control the parameters of an RTAS plugin, using an external motorized control surface. In this case I’m using a CM Labs’s Motormix.

Basically, the Motormix is designed to fully communicate with Pro Tools (using MIDI SysEx protocol). The device is linked with MIDI cables to my sound card. After a few configuration steps in Pro Tools (I’m on a Mac OS X 10.6, Pro Tools 9), the Motormix is recognized. When I start a new session, create a track and put a RTAS plugin as an insert, the Motorsmix displays on its LCD screen all available automatable parameters in two distinct rows (and in several pages, 8 parameters per page): the first row is linked to some push buttons (on/off) on the control surface and the second row to rotary sliders. The parameters mapping is automatic, there is no way to change it.

If I insert one of the RTAS plugins that come with Pro Tools, the parameters are recognized correctly: for a plugin that only offers continuous parameters (float values between 0 and 1), the parameters will correctly be recognized as such by the Motormix and will only be displayed in the second row, in order to be manipulated by the rotary sliders. If a plugin has one or several discrete-like parameters (on/off), it will successfully be displayed on the first row and the push buttons will trigger on/off.

My problem is the following: with plugins built with Juce, the Motormix won’t recognize the parameters’ “type” at all. The four first parameters will appear on the first line, the next four on the second… parameters 9-12 will be on the first line of page 2, etc.
That means that four over eight parameters won’t behave as expected: on the first line, you can only set a parameter’s value to 0 or 1 (it’s only a push button), so it’s not possible to set other values for this parameter, or to automate it correctly.

If I try to schematize the LCD screen as the following scheme:
-----Pro tools built-in Plugin-----
Param2: off Param5: on <- first row (discrete parameters)
Param1: 0.50 Param3: 1.00 Param4: 65 Param6: 33k <- second row (continous parameters)
Here the parameters are distributed by type, regardless of their ID. Note: the text that appears (on/off/0.50/1.00…) is only what is indicated in juce::AudioProcessor::getParameterText() function so it can be numbers or text.

-----Juce Plugin-----
Param1: 0.00 Param2: 1.00 Param3: 1.00 Param4: 0.00
Param5: 0.15 Param6: 0.37 Param7: 0.86 Param8: 0.98
In this case, all 8 parameters are continuous, so they should only be displayed on the second row (in two separate pages) and nothing should appear on the first row. Here, the first four parameters are unusable and only parameters 5-8 will be correctly controllable.

I already read a thread talking about the function GetControlType() in Juce RTAS Wrapper that could either return kDAE_DiscreteValues or kDAE_ContinuousValues, but I don’t think it is related. The function always returns kDAE_ContinuousValues so if it was related, parameters should always appear as “continuous” values on the Motormix, no matter what.

I don’t think the problem is Motormix-related either. One client told us that he had problems with half the parameters on a totally different control surface. My clue is that there may be some information missing when parameters are declared and sent to the RTAS SDK, so even Pro Tools may not be able to tell if a parameter is discrete or continuous.

Does anyone already encountered this kind of problem? Any help would be greatly appreciated! :slight_smile:
Thanks for your time, sorry about the long post, I couldn’t find a clearer way to explain the problem.

Vincent Dortel
Dev @AudioGaming