In the world of audio software, keeping up with hardware advancements is crucial. Back in 2021, we made strides in our mission to enhance audio processing performance, and released updates for most our plug-ins and software. These updates brought the exciting capability of multicore processing to both MacOS and Windows, promising the ability to handle multiple plugins simultaneously on multicore processors. The initial results were promising, on both Intel and Apple M1 processors, as demonstrated in our Intel vs Apple Silicon benchmark.
[EDIT: it seems that there is actually no multicore magic in MacOS Sonoma, see the details here 🙁 ]
The Problem
However, as technology evolves, so do the challenges. Something shifted with the release of MacOS 13, codenamed Ventura, and it specifically affected Apple Silicon processors. High-priority threads used for real-time audio processing started getting randomly assigned to efficiency cores instead of performance cores. This unexpected shift, even when the audio thread was waiting for completion, resulted in frustrating audio dropouts and poor multicore performance.
It is essential to note that Apple Silicon processors are asymmetric, with two types of cores: efficiency cores (E-cores), suitable for background tasks with low processing demands, and performance cores (P-cores), designed for heavy-duty processing tasks. In the realm of real-time audio, using efficiency cores is a definite no-go.
Apple’s Proposed “Hacks”
I am not sure why this change happened, but this caused many plug-ins and audio software to perform pretty badly on Apple silicon devices. Apple proposed some specific (and sometimes conflicting) solutions for real time audio, such as Audio WorkGroups, while promoting QOS-based priority for threads at the same time.
While this sounds like a good idea to have at last some real-time features at the OS Ievel to properly prioritize audio processing, their implementation is definitely not ideal and is limited to Core Audio applications and Audio Units, leaving other plugin formats out in the cold! Moreover, it is a bit perplexing to see Apple adding layers of complexity to their operating system while grappling with scheduler issues for Apple Silicon processors…
The Solution: MacOS Sonoma?
Enter MacOS Sonoma – a potential solution to this conundrum. While exploring Apple’s suggested fixes (none of which providing a comprehensive solution for Ventura yet), MacOS Sonoma was released, and it brought a pleasant surprise. Multicore scheduling performance appears to be fixed, and high-priority audio processing threads are once again running on performance cores. No more audio dropouts, and the multicore performance is impressive!
While it’s too early to declare victory, this development is certainly a positive sign for the future!
Should You Upgrade?
Now, the pressing question: should you rush to upgrade your OS? Well, it might be prudent to exercise caution for now. It’s still early days, and many software companies, including us, are likely in the midst of testing compatibility with this new system. However, if you’re feeling adventurous, you might consider installing it on a secondary partition and sharing your experience with us!
In the ever-evolving landscape of audio production, staying informed about hardware and software developments is essential. As we continue to explore the intricacies of MacOS Sonoma and its impact on audio processing, we’ll keep you updated on any new findings and insights.
[EDIT: check our November update on this topic]
I’m on Sonoma 14.5 and when I run the latest Digital Performer, it’s only using efficiency cores. I have the M1 Max set to “High Power” mode so this should never be happening. I don’t know what Apple is doing but I feel like Sonoma was clearly not a magic bullet here. Thoughts?
I don’t know how Digital Performer implemented their multithreading scheme, but there is not much you can do on the user side to change anything. When using Apple’s AudioWorkgroup feature, the system should handle audio priorities properly. But it does not necessarily use only the power cores. It has been made pretty opaque by Apple.