From 8eb18cd5aeada4c05eb4919d1e118dc5b88a406c Mon Sep 17 00:00:00 2001 From: hogliux Date: Fri, 20 Oct 2017 15:51:27 +0100 Subject: [PATCH] VST2 Hosting: Don't try changing the channel layout for multi-bus VST2s. Multi-bus VST2s have a fixed layout. --- .../format_types/juce_VSTPluginFormat.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp index fec1925513..074294971a 100644 --- a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp +++ b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp @@ -743,12 +743,18 @@ struct VSTPluginInstance : public AudioPluginInstance, //============================================================================== void prepareToPlay (double rate, int samplesPerBlockExpected) override { + auto numInputBuses = getBusCount (true); + auto numOutputBuses = getBusCount (false); + setRateAndBufferSizeDetails (rate, samplesPerBlockExpected); - SpeakerMappings::VstSpeakerConfigurationHolder inArr (getChannelLayoutOfBus (true, 0)); - SpeakerMappings::VstSpeakerConfigurationHolder outArr (getChannelLayoutOfBus (false, 0)); + if (numInputBuses <= 1 && numOutputBuses <= 1) + { + SpeakerMappings::VstSpeakerConfigurationHolder inArr (getChannelLayoutOfBus (true, 0)); + SpeakerMappings::VstSpeakerConfigurationHolder outArr (getChannelLayoutOfBus (false, 0)); - dispatch (plugInOpcodeSetSpeakerConfiguration, 0, (pointer_sized_int) &inArr.get(), (void*) &outArr.get(), 0.0f); + dispatch (plugInOpcodeSetSpeakerConfiguration, 0, (pointer_sized_int) &inArr.get(), (void*) &outArr.get(), 0.0f); + } vstHostTime.tempoBPM = 120.0; vstHostTime.timeSignatureNumerator = 4;