JUCE AAX plugins and Avid's hardware DSPs?


#1

So, now that i successfully managed to compile an AAX plugin with JUCE, i was wondering:

Do AAX plugins compiled with JUCE use the ProTools DSP Hardware by default, or do i have to compile the plugin for the DSP hardware specifically ?

My knowledge of the actual AAX SDK is quite limited, but someone told me that you have to compile the plugin (or at least specific portions of the code) for the hardware DSPs using a special compiler (for Texas Instruments C6000, that comes for example with TI's Code Composer Studio).

Is this information still valid ?


#2

No idea, anyone ?


#3

No, how could it generate DSP code from a normal piece of C++?

To support PT DSP code you have to actually specifically write that code using their SDK and presumably compile it with their special compiler. All JUCE code is completely cross-platform, so only runs on the CPU.


#4

Hmm as i haven't found the time to look into the AAX SDK in depth, i can only rely on the testimony of others, but i was told that you can use JUCE as a frontend to AAX DSP plugins, as the AAX SDK doesn't provide extensive GUI functionality ? As a matter of fact, if you check the "examples" section of the AAX SDK, you can find examples using JUCE as a GUI toolkit ... 

But ok, as it seems, i've got to inspect the AAX SDK a little more in depth ...

 


#5

AAX DSP code is in fact written in plain c, with the exact same processing source code used for native (compiled using XCode/VS) and DSP (compiled with the TI compiler).  It is actually more cross-platform, not less, because it is a very tightly constrained subset of what you can get away with on the native side.

But the existing JUCE AAX wrapper does not adhere to every aspect of Avid's AAX architecture. Loosening those constraints works fine for AAX Native and makes it much more similar to other formats (AU/VST) but alas means the wrapper doesn't support AAX DSP, and would require considerable changes in order to do so.

You'll also find that the Avid SDK examples which use JUCE (for GUI only, not the wrappers) use version 1.53 -- woefully out of date.  And given the JUCEquake and major restructuring of JUCE that has occurred since, getting them to work with the current tip is non-trivial.

It's unfortunate that there appears to be little to no direct cooperation/collaboration between JUCE and Avid - this seems like it would be a win-win for both.

Alas, for now you're left to find your own solution.  And maybe poke Avid to update their examples to a modern version of JUCE.

 


#6

Ok, that's basically congruent with my expectations.

Maybe it's not even necessary to change the wrapper that much if you can compile DSP-Specific AAX callback function ? I'll probably have to do some research i that direction ...


#7

Hi Frank,

I take it this is still the same with JUCE 4.x and 5.x ?

Best,

Rail