diff --git a/source/backend/plugin/CarlaPluginJuce.cpp b/source/backend/plugin/CarlaPluginJuce.cpp index 5367c26d0..6e1b6e3ce 100644 --- a/source/backend/plugin/CarlaPluginJuce.cpp +++ b/source/backend/plugin/CarlaPluginJuce.cpp @@ -58,10 +58,18 @@ static const ExternalMidiNote kExternalMidiNoteFallback = { -1, 0, 0 }; // ------------------------------------------------------------------------------------------------------------------- // find all available plugin audio ports -static void findMaxTotalChannels(juce::AudioProcessor* const filter, uint32_t& maxTotalIns, uint32_t& maxTotalOuts) +static void findMaxTotalChannels(juce::AudioProcessor* const filter, + const bool isAU, uint32_t& maxTotalIns, uint32_t& maxTotalOuts) { filter->enableAllBuses(); + if (isAU) + { + maxTotalIns = filter->getTotalNumInputChannels(); + maxTotalOuts = filter->getTotalNumOutputChannels(); + return; + } + const int numInputBuses = filter->getBusCount(true); const int numOutputBuses = filter->getBusCount(false); @@ -502,7 +510,8 @@ public: bool needsCtrlIn, needsCtrlOut; needsCtrlIn = needsCtrlOut = false; - findMaxTotalChannels(fInstance.get(), aIns, aOuts); + const bool isAU = fDesc.pluginFormatName == "AU" || fDesc.pluginFormatName == "AudioUnit"; + findMaxTotalChannels(fInstance.get(), isAU, aIns, aOuts); fInstance->refreshParameterList(); params = static_cast(std::max(fInstance->getNumParameters(), 0));