I have a Varispeed AU which is connected to (pulls from) a FormatConverter AU. In the FormatConverter AU render callback, I copy samples from a ring buffer and set the Varispeed AU playback with the following call:
AudioUnitSetParameter(outVarSpeed,kVarispeedParam_PlaybackCents, kAudioUnitScope_Global, 0, rate, 0);
After this runs for a few seconds, the FormatConverter stops calling it's render callback. The VariSpeed AU is still pulling data from the VariSpeed AU, (as verified by butting a callback between them with a break point set, instead of a AU connection) and the FormatConverter is returning sample data - the same sample data over and over again. No errors are passed through the chain.
When I comment out the above AudioUnitSetParameter function from the FormatConverter callback, everything is fine. Any ideas out there as to what is happening? I'm out of ideas/experiments.
This same code worked fine under OS X 10.4... I'm I no longer allowed to call AudioUnitSetParameter inside a realtime thread?
Thanks, Ethan... |