New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use audio workgroups for supernova DSP thread pool. #5624
Comments
I looked at this last summer. Unfortunately, the new API's require access to specific CoreAudio objects in order to set the workgroup properties. This is a problem for two reasons:
Sadly there is no mention of this on the PortAudio github, and indeed there are many years-old MacOS issues open in that repo, and it doesn't seem like the platform is very actively maintained. |
Hi Scott, thanks for looking into this!
FWIW, portaudio offers platform specific extension APIs, e.g. In fact, A similar function for CoreAudio might already be sufficient. On the other hand, something like |
IIRC We would need access to the I seem to recall that there were a few confounding factors to making this work, but ultimately I think whatever part of PA has access to the |
macOS 11 has a new API for managing audio threads that cooperate with each other. I think this would be appropriate for supernova's DSP thread pool.
Here's an introduction: https://developer.apple.com/documentation/audiotoolbox/workgroup_management/understanding_audio_workgroups
And here's a code example which might be relevant for our use case: https://developer.apple.com/documentation/audiotoolbox/workgroup_management/adding_parallel_real-time_threads_to_audio_workgroups
Should be rather simple to implement. I just don't have access to a macOS 11 machine.
The text was updated successfully, but these errors were encountered: