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: