News for hackers. Stuff that matters.
Re:The impact of Apple Silicon Macs on Broadway by jamesfmilne on Friday December 25, 2020 @06:16AM (#25535813)
It would be perfectly possible to run the VST/AudioUnit in a separate x86 process and communicate with the host using shared memory. Thankfully the endianness is the same so data structures are compatible.

Doesn't Logic Pro already support this?

Admittedly it does mean the plugin runs in a separate process&thread, requiring IPC to render each chunk of audio through that plugin.

Re:The impact of Apple Silicon Macs on Broadway by rock_artist on Friday December 25, 2020 @08:45AM (#25536428)
> Doesn't Logic Pro already support this?

It does. Apple provides all AU hosts ability to run Rosetta2 AUs in native DAWs

Re:The impact of Apple Silicon Macs on Broadway by marcan_42 on Friday December 25, 2020 @11:20AM (#25537271)
That's because AUv3 is an out of process plug-in architecture, with the performance overhead that that entails.

See here for why that doesn't scale to serious productions with high track count:

https://ardour.org/plugins-in-process.html

Re:The impact of Apple Silicon Macs on Broadway by ratww on Friday December 25, 2020 @07:49AM (#25536157)
> Doesn't Logic Pro already support this?

It didn't support it during the 32/64 bit transition, don't know about Intel to ARM. Of course even if Logic does it, there's the other DAWs.

Re:The impact of Apple Silicon Macs on Broadway by marcan_42 on Friday December 25, 2020 @11:17AM (#25537254)
The endianness being the same does not mean data structures are compatible. There are many, many more details about data structure layout that vary between architectures (and even compilers of the same architecture, especially once you delve outside of C).

VST2 is probably doable - what I use to run Windows VST2s on Linux is something similar with an out of process wrapper - but I can see VST3 with its C++ API being a major, major pain in the ass. And even then there are downsides. Running plug-ins out of process has significant context switching overhead. It's fine for one or two or half a dozen, but compare running 50 plug-ins in process and out of process and you'll notice a massive performance difference. You can fight that with larger buffer sizes, but that adds latency.