From c2ec851c2cfa5aba54d97eb8428bd1ae35bc29fb Mon Sep 17 00:00:00 2001 From: attila Date: Wed, 29 Jun 2022 18:31:59 +0200 Subject: [PATCH] VST3 Client: Avoid AudioBuffer assertion when plugin has no audio channels --- .../juce_audio_processors/format_types/juce_VST3Common.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/juce_audio_processors/format_types/juce_VST3Common.h b/modules/juce_audio_processors/format_types/juce_VST3Common.h index a997fa8eaa..77544c7ae3 100644 --- a/modules/juce_audio_processors/format_types/juce_VST3Common.h +++ b/modules/juce_audio_processors/format_types/juce_VST3Common.h @@ -597,6 +597,8 @@ public: auto* getNextChannelBuffer() { return buffer.getWritePointer (channelCounter++); } + auto getArrayOfWritePointers() { return buffer.getArrayOfWritePointers(); } + private: AudioBuffer buffer; int channelCounter = 0; @@ -673,7 +675,10 @@ public: setUpInputChannels (data, (size_t) vstInputs, scratchBuffer, inputMap, channels); setUpOutputChannels (scratchBuffer, outputMap, channels); - return { channels.data(), (int) channels.size(), (int) data.numSamples }; + const auto channelPtr = channels.empty() ? scratchBuffer.getArrayOfWritePointers() + : channels.data(); + + return { channelPtr, (int) channels.size(), (int) data.numSamples }; } private: