Hi Bill,
We found a slight modification to our original code that works. We call AudioUnitSetParameter followed by AUParameterListenerNotify instead of just calling AUParameterSet and the problem goes away.
In an earlier thread (Wed, 19 Jul 2006) on the CoreAudio list, you stated,
AUParameterSet is not an AU API - rather it is an <AudioToolbox/ AudioUnitUtilities.h> API (AudioEvent...) - it does 2 things: - calls AudioUnitSetParameter - calls AUEventNotify
So, what is the difference between AUEventNotify and AUParameterListenerNotify?
More info about how we're using these calls: Our ProcessBufferLists method is called via AUEffectBase::Render. Our Audio Unit process component processes its inputs and thus modifies the parameters that the VU meters are "listening" to. The problem occurs when using some hosts (Peak, AU Lab) when the transport is paused. ProcessBufferLists continues to be called with buffers of zeros as inputs. AUParameterSet gets called, but the listeners aren't notified. Once playback resumes, AUParameterSet starts notifying listeners again.
|