Bypassed plugins with latency

Hey folks,

I’ve a plugin that does some analysis and incurs a latency, I also do some dry/wet mixing internally so I have an internal delay line that uses this latency also. I notify the host about the latency in my processBlock and things line up like they should.

When the plugin is in bypassed mode I continue to report the latency to the host and keep the delaylines filling up to ensure smooth continuity - in the processBlockBypassed I have dutifully filled in. From my brief testing and perusal of the forums it seems behaviour extremely inconsistent between hosts and formats. What I’ve noticed:

  • It works well in Pro Tools and the bypass block is getting called correctly.
  • From what I can tell Logic/AU’s bypass is rubbish/non-existent so we
    a: Just have to deal with it - Any Waves plugins that produce latency experience the same issue during bypass
    b: Add a bypass parameter to the plugin like Sound Toys Little Alterboy and hope users use that instead
  • VST3 doesn’t seem to call processBlockBypassed in Ableton, Reaper and Studio One, but Ableton does some internal syncing to keep things smooth.

Is there something I’m missing for VST3? Does this summary correspond to others’ experiences? Has anyone got some advice for ensuring smooth bypass across different hosts and formats?

Thank you!

On newer JUCE revisions there’s ability to link your bypass to host which is useful.

processBlockBypassed works…
but as you’ve mentioned not all hosts actually have a bypass.
Logic for example simply stops the plug-in which is as inactive in Pro Tools.
AU itself does support bypass and you can try MOTU Digital Performer and see it works :slight_smile:

So it is a good thing to have your own bypass internally and if possible. link it to host.
(I’ve yet to try the linking to host bypass).

Yes you’re right ttg, I think some of them just suspend the processing. The more I investigate the more confused I get!