I just wanted to implement the so-called “bypass parameter”. I made a parameter to represent bypass and overrode getBypassParameter() to return that parameter in my juce::AudioProcessor subclass and made a button to toggle this parameter. I was just about to test if it gets the right values in processBlock when I ran into the assert that tells you to implement processBlockBypassed whenever you make a plugin that reports latency at some point.
(For some reason this doesn’t happen if I bypass the plugin without the bypass-parameter in bitwig, but that’s just an interesting side-note…)
What really confuses me here is that the docs say one should not call this method anymore once a bypass parameter has been defined:
What should I conclude from this? Should I now implement processBlockBypassed anyway or is something about the bypass parameter not working correctly yet, in which case, how to find out what?
My goal is to implement a proper bypass parameter
a) so that the plugin can be bypassed from the GUI
b) in a way intended by the VST3 standard if possible
c) in a way that the parameter randomizer in FL studio isn’t able to modulate it.
(If b and c can’t both be fulfilled I’d prefer c to work)
(Btw I still don’t understand why FL Studio’s parameter randomizer is able to modulate the bypass parameter before you even actively create one, but if this is not trivial to explain ignore this side-question)