Audio Unit V3 Logic Pro frameCount

Hi, I am having an issue with the render block frame count when using an AUv3 in Logic Pro (and also GarageBand). I see a low frame count when a parameter is being automated. Normally, the frame count matches the audio settings, or in GarageBand it appears to be 128. But when a parameter is automated it can be 64 or 32. My audio unit causes dropouts when the frame count is 32. I would expect it to not go below the hardware setting. Is it correct behavior that the frame count would be low when automating a parameter and not otherwise? There seems to be too much overhead when the frame count is low for my audio unit. The example doesn't have a problem because the DSP code is so simple. I can get by with the low frame count when only generating a sine wave.

Replies

This is logged in Bug Reporter as bug 33836353. I believe that the events should be scheduled in a longer render cycle. This problem is not seen in the example code because it is just a toy example. I have more complex DSP code that is not working with a 32 frame frameCount. It is in a separate process as is recommended. If the frameCount followed the preferences setting it would work. The responder to the bug did not understand the problem. If someone else from Apple could take a look I would appreciate it.

According to Apple's documentation, the Audio Unit framecount will not always be the requestest value, but can change (for many different reasons), and your callback has to be able to handle these different and changing framecounts without under-run. Perhaps your app can do this by pre-buffering a small amount of data, or by using an error conceilment strategy.


I've seen framecounts as low as 16 frames.

Thank you. I will try a buffering approach.

I believe buffering will work. But this results in MIDI and parameter events that are not at the correct sample. I believe that Logic Pro should not have such small frame counts for AUv3s in a separate process.

In 10.13 Beta (17A360a) Logic Pro and GarageBand will load the AUv3 into their own process if the code is in the framework. This doesn't work in 10.12.6. This is a solution for the glitches that will work in that operating sytem.