For my latest plugin I implemented a bypass system with smooth fades and a bypass parameter. The goal is to prevent clicks when bypassing with some hosts and allow users to automate bypassing without problems in all hosts that support automation.
I used the newish AudioProcessor::getBypassParameter() to declare my bypass parameter to the JUCE wrappers and hosts.
I have to say the results are quite puzzling and seem to vary widely from host to host. This is not JUCE’s fault, but the hosts seem to do very different things. This makes me wonder whether it’s worth using getBypassParameter() at all - especially for AU. I see it’s working fine for VST3 where it is part of the specs.
Currently, I see these options:
1 - use getBypassParameter() always and hope for the best. Blame the hosts when support requests come in.
2 - ignore getBypassParameter() and add a bypass button to my GUI that just uses my logic. (might still be confusing as this means it’s possible to double-bypass the plugin)
3 - Only use getBypassParameter() for vst3 and use my internal stuff for the other formats. (maybe AUv3 works as well, but I haven’t tested that).
I wonder about the best practice in this case. Does anyone use getBypassParameter() and has some experiences to share? I am worried about users getting confused by the different levels of host support.