Our old code used the VST3 SDK’s “auwrapper” to wrap our VST3 plugins as Audio Unit plugins. I’ve been working on an issue where we noticed that the index was wrong (off by one) in our loaded old (pre-JUCE) sessions that had automation data. Looking into the old auwrapper code, I found that the wrapper ignores the Bypass parameter, because the hosts supply their own. So, for our AU versions, I stopped adding that parameter. Unfortunately, that means that we no longer get notifications for changes to the host’s Bypass parameter.
So, my question is, how can I maintain backwards compatibility with our old pre-JUCE auwrapper plugins, but still get notifications when the host-provided Bypass parameter is changed? We need this because our code needs to handle Bypass differently than simply feeding the inputs to the outputs when rendering; we need to set a flag in our DSP so that we can prevent artifacts when Bypass turns on or off while playing audio.
So far, the only option I’ve found that works for both new automation and loading old automation is to add my Bypass parameter to the end of my list of parameters, so that it does not affect the indexing of any other parameters. That leaves us with two Bypass parameters, but at least they both work, and old and new automation are correct.
But if there is a way to get notifications when the host-provided Bypass parameter changes, without adding our own parameter, that would be the best option. Is that possible?