AudioProcessorGraph PDC and changing latency

You’re assuming every plugin developer overrides AudioProcessor::processBypassed() and handles this… if they don’t then the delay compensation can be wrong if the AudioProcessorGraph is bypassed… I’ve added a delay to AudioProcessor and in the AudioProcessor’s processBypassed() method I delay the audio by the latency amount. processBypassed() is not a pure virtual method so developers aren’t forced to override it.

I had to add a new method:

AudioProcessor::prepareBypassDelay()

which gets called in AudioProcessorGraph:: setBypassed()

        void setBypassed (bool shouldBeBypassed) noexcept
        {
            if (processor != nullptr)
            {
                if (auto* bypassParam = processor->getBypassParameter())
                    bypassParam->setValueNotifyingHost (shouldBeBypassed ? 1.0f : 0.0f);
            
                // Added by Rail Jon Rogut
            
                if (shouldBeBypassed)
                    processor->prepareBypassDelay();
            }

            bypassed = shouldBeBypassed;
        }

Rail

1 Like