Hosts bypass causes unpleasant click


#1

Hello,
Due to fact I want my plugin to mute whole input buffer I have in my process block something like:
bufferWritePointer[sample] = 0.0f;

But when i click bypass my plugin on my host (wich is Logic Pro X) it causes unpleasant click. How to avoid that?

And at all I am not sure how to send flag from my host to my plugin that I clicked bypass. I mean bypass button in Logic on insert slot where is my plugin.

Do I just need to override AudioProcessor::processBlockBypassed() ?


#2

No. The problem is caused by the combination of Juce and Logic. If you override processBlockBypassed and implement a fade, it will work in other AU hosts, but not in Logic. I described the issue here a few days ago:

Currently this happens even with the JUCE demo project. Logic does not handle AU bypass correctly (like AULab and probably other AU hosts), but Apple examples do work right with Logic and it even applies fades by itself, but with JUCE it goes somehow wrong probably due to something the AU wrapper is doing that causes problems for Logic. I tried figuring out what part of the AU wrapper code causes the issue, but so far no luck and I’d rather not spend days on this as it’s mostly a guessing game.


#3

but Apple examples do work right with Logic and it even applies fades by itself, but with JUCE it goes somehow wrong

What do you mean „Apple examples”. Do you mean original Logics built in plugins?

And sorry for stupid question, but: do you claim in Logic processBlockBypassed is not even called at all, or only “fade” doesn’t work?


#4

Logic does not call plugins at all during bypassed state. It handles bypassing by itself.

By Apple Examples I mean the example projects you can download from Apple and compile with XCode without Juce. For example FilterDemo with the Cocoa UI.


#5

By Apple Examples I mean the example projects you can download from Apple and compile with XCode without Juce. For example FilterDemo with the Cocoa UI.

Hmm… nice, I didn’t know there are such things. Why nobody told me ? :slight_smile:

Is there any special website with such examples?


#6

So isn’t it possible to combine in some way processorBypassed() with such method which is used in Apple examples?


#7

https://developer.apple.com/library/archive/samplecode/sc2195/Introduction/Intro.html


#8

So really isn’t there any flag that is sent to plugin when bypass from Logic Pro X?
It’s unbelievable. It seems to be very important thing.