Finding AUV2-2 from the 0.16 release review.
The problem
src/wrapasauv2.cpp:775. When the CLAP is deactivated, _processAdapter is null, so a host SetParameter queues nowhere. _requestedFlush is still set, and flushParameters() then flushes an empty _flushAdapter. Nothing re-syncs AU element values into the plugin when it is next activated, so the value is lost outright.
The comment in flush() claims the deactivated path carries exactly this traffic. It does not.
Failure
A host sets kAudioUnitProperty_BypassEffect (which routes through SetBypassEffect → SetParameter) on the uninitialized unit at project load. After Initialize, the plugin is not bypassed while the host UI shows that it is.
Suggested fix
Queue onto _flushAdapter when _processAdapter is absent, so the deactivated path actually carries what its comment says it carries.
Finding AUV2-2 from the 0.16 release review.
The problem
src/wrapasauv2.cpp:775. When the CLAP is deactivated,_processAdapteris null, so a hostSetParameterqueues nowhere._requestedFlushis still set, andflushParameters()then flushes an empty_flushAdapter. Nothing re-syncs AU element values into the plugin when it is next activated, so the value is lost outright.The comment in
flush()claims the deactivated path carries exactly this traffic. It does not.Failure
A host sets
kAudioUnitProperty_BypassEffect(which routes throughSetBypassEffect→SetParameter) on the uninitialized unit at project load. AfterInitialize, the plugin is not bypassed while the host UI shows that it is.Suggested fix
Queue onto
_flushAdapterwhen_processAdapteris absent, so the deactivated path actually carries what its comment says it carries.