Pro Tools now supports Midi effect plugins as of update 2024.3. However, they only show up on Mono instrument track, which makes little sense as midi channels shouldn’t care about the number of audio channels. I’ve tracked down the problem to this segment:
static void createDescriptor (AAX_IComponentDescriptor& desc,
const AudioProcessor::BusesLayout& fullLayout,
AudioProcessor& processor,
Array<int32>& pluginIds,
const int numMeters)
{
[[maybe_unused]] auto aaxInputFormat = getFormatForAudioChannelSet (fullLayout.getMainInputChannelSet(), false);
[[maybe_unused]] auto aaxOutputFormat = getFormatForAudioChannelSet (fullLayout.getMainOutputChannelSet(), false);
#if JucePlugin_IsSynth
if (aaxInputFormat == AAX_eStemFormat_None)
aaxInputFormat = aaxOutputFormat;
#endif
if (processor.isMidiEffect())
// this line is the culprit
aaxInputFormat = aaxOutputFormat = AAX_eStemFormat_Mono;
It’s possible to change it to AAX_eStemFormat_Stereo and then have the plug-in show up on stereo tracks, but then it won’t show on any other channel combinations.
I also tried adding the stereo format after, but it just overwrote the mono:
Hi, thanks for this info, I was struggling for days trying to figure out why I could only instantiate on mono instrument tracks.
Adjusting L2418 of juce_audio_plugin_client_AAX.cpp to stereo has the added side-effect of noise coming out of the speakers!
Small correction for your solution though:
if (processor.isMidiEffect())
aaxInputFormat = aaxOutputFormat = AAX_eStemFormat_Mono;
is the part that needs removing, and then your additions. It’s possible to leave the other part you said to remove in place.
Now everything works perfectly!
Could the JUCE team weigh in on this. It’s clearly an issue at the moment only being able to instantiate AAX MIDI FX plugins on mono instrument tracks.