diff --git a/plugins/SquidgeDistortion/SquidgeDistortion.cpp b/plugins/SquidgeDistortion/SquidgeDistortion.cpp index 126c429..6dfa417 100644 --- a/plugins/SquidgeDistortion/SquidgeDistortion.cpp +++ b/plugins/SquidgeDistortion/SquidgeDistortion.cpp @@ -8,6 +8,8 @@ START_NAMESPACE_DISTRHO +const int BUFFER_SIZE = 16384; + class SquidgeDistortion : public Plugin { public: @@ -99,6 +101,13 @@ protected: } void run(const float **inputs, float **outputs, uint32_t frames) override { + if (frames > BUFFER_SIZE) { + for (uint32_t i = 0; i < frames; ++i) { + outputs[0][i] = inputs[0][i]; + outputs[1][i] = inputs[1][i]; + } + return; + } gain_.processStereo(inputs[0], inputs[1], wetBufferL_, wetBufferR_, frames); clipper_.processStereo(wetBufferL_, wetBufferR_, wetBufferL_, wetBufferR_, frames); @@ -113,8 +122,8 @@ private: Gain gain_; Clipper clipper_; Mixer<2> mixer_; - float wetBufferL_[4096]; - float wetBufferR_[4096]; + float wetBufferL_[BUFFER_SIZE]; + float wetBufferR_[BUFFER_SIZE]; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(SquidgeDistortion); };