Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Logic isn't worth much without plugins…

Rosetta 2 cross-compiles Intel binaries to ARM. Why would VST/AU plug-in binaries be an exception?



(Audio/DSP) plugins are a tricky thing, it is not uncommon for some of them to have assembly or processor specific instructions to squeeze out as much performance as possible. Your 'budget' in this domain is limited to only a few milliseconds ...


But it does a AOT recompile from x86 to ARM for extensions and plugins according to the second presentation today.


Even if it's precompiled and not at runtime, we don't really know what the performance looks like, especially in hand rolled assembly where something that isn't a one-to-one cycle match could have obvious effects.


Also, Rosetta 2 doesn't support AVX. So it would rely on there being an alternate code path which would be AOT transpiled.


Will an ARM version of Logic support loading x86 plugins?

Last time Rosetta was on a process by process basis, so you might have to make some unfortunate choices.

Edit: https://developer.apple.com/documentation/apple_silicon/abou...

> The system prevents you from mixing arm64 code and x86_64 code in the same process. Rosetta translation applies to an entire process, including all code modules that the process loads dynamically.


Yes - they called out "plugins" being transpiled in the keynote.


I linked to the docs where it says they plugins and the process need to be the same architecture; you won't be able to mix and match in a process.

Also transpile is a source to source compilation and isn't the right term here.


Oh, I see. Extensions have a different model than plugins. Will be interesting to see how support develops and if it expands or not.


Apple has pushed XPC architecture for plug-ins for several years and has announced that these plug-ins will work in Rosetta for a Native host app. Audio Units will work as well.


VST is way older than Apple's push for XPC, and is dependent on being linked into the same process as the main DAW application.


No AVX is fairly brutal


What does that mean and what are you basing that on?


The question is if those plugins are modules (shared objects/dynamic libraries), or if they are used via some sort of IPC to an external process. (or even an XPC service)


They are shared libraries, yes. And rely on lower latency than you would get from an IPC channel to another process.


That would make sense. On the other hand, would that go for Audio Units as well? I thought those were XPC based.


They could have a separate bridging process to host the x86 plugins, so we can’t know whether it does or does not support them.


The plug-in arch doesn't really support that. They're reliant on being able to do brain surgery to the main app, and being in the same GUI context.


Performance, but that remains to be seen. VST performance can be absolutely crucial.


For sure! Hopefully we'll learn more specifics in another session.


They specifically mentioned Rosetta 2 would work for all binaries, including plugins.


cross compiles? Or emulates x86-64?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: