For real-time multi-threaded audio programming on Apple Silicon-based Macs, it is necessary to receive OSWorkGrpup from the host DAW and have the generated threads join the OSWorkGroup in order to effectively use E-Core and P-Core.
I was able to implement it following apple’s guide for the audio unit format plugin, but I don’t know how to get the OSWorkGroup for the VST format plugin.
Does anyone know how to get OSWorkGroup in VST?
By the way, if I set the audio out in Cubase 12 to the same as the default audio in macOS, I can get the OSWorkGroup from the device ID of the default audio, and by joining the thread to the OSWorkGroup, the P-Core and E-Core are balanced. We have confirmed that it can be used well.
Thanks for your reply Arne.
I understand that the API is not currently available yet.
However, I am hoping that the API will be implemented soon. Because we want to be happy.
Hi,
is there something new to share on this? We’re looking also for this API extension as we can currently only use the DSP thread for real-time processing on Silicon macs with VST/VST3
Thanks,
accSone - builder of crusher-X
We’re currently looking at exposing the os workgroup in JUCE. It would be helpful to know how the VST3 API might look, so that the JUCE API can be compatible with both AU and VST3.
Sorry, for the delay. We’ve identified that the issue we’d like to fix with this is not only a macOS issue and thus we will provide a cross platform solution for running tasks inside the process block. We won’t expose the os workgroup via an API. We believe that a plug-in is not the best scheduler for real-time threads and that the host must be responsible for this. Thus the host will be able to provide as many tasks in parallel to the plug-in as currently capable depending on the current processed audio graph and available hardware resources.
Has there been any updates on this topic? We have audio workgroups working fine for Audio Units and standalone since quite some time, it would be nice to have this rolling on VST3 as well.
It is possible to get the workgroup directly from the device on some apps, but having a VST3 API for it would be much preferred.