Apple Silicon / M1

This forum is for developers of Rack Extensions to discuss the RE SDK, share code, and offer tips to other developers.
User avatar
pongasoft
RE Developer
Posts: 276
Joined: 21 Apr 2016
Location: Las Vegas

Post 26 Dec 2020

I got a new Apple M1 computer and I have been trying to see if Jamba works with it. Jamba per se has no problem, but right now I am a bit stumped with my testing. Ideally I would like to be able to build a universal (= x86_64 + arm64) plugin on Apple M1 and distribute only this as the mac version of the plugin. As of right now this is not possible: see forum thread https://forums.steinberg.net/t/apple-m1 ... 7-1/679973

You might say, why do I care it is VST?

Well, here is the catch: Reason runs VST plugins. My experiment shows that if Reason is built as a universal binary and runs the native code (arm64) then it won't be able to load any VST plugins that has been built with x86_64 which as of right now is about 100% of them...

This also seems to be what the Apple documentation on Rosetta states: "On Apple silicon, a universal binary may run either natively or as a translated binary. The system runs the native version whenever possible, but the user might opt to run the code using Rosetta to support older plug-ins." (emphasis mine).

It doesn't seem that there is a way for an arm64 application to load an x86_64 plugin which would then be translated by the Rosetta layer... Everything needs to go through the Rosetta layer...

Or in other words, Reason and pretty much any DAW supporting VST plugins, will be forced to run on Rosetta / translation layer and as a result not be able to benefit from the speed of M1 and on the contrary be slowed down by the translation layer.

And down the line, a few years from now when Rosetta will not even exist, it will be the death of all VST plugins that have not been rebuilt.

What a mess...

Yan

User avatar
Billy
Posts: 795
Joined: 09 Dec 2016

Post 27 Dec 2020

Yeah unfortunately the more I read about the new apple hardware the more I realise I should start saving for a PC, I'm sure apple knows what it's doing but asking all those software developers to jump into it there vision is probably going to leave a good few of us stuck for a reasonable solution for some time to come.
:ignition: :reason: :refill: :re: :rebirth: :PUF_figure: :nektar: :mac: :EiEPro: :Alesis Mk2:
Follow Me @ https://twitch.tv/buskinbills

User avatar
tronam
Posts: 338
Joined: 04 Mar 2015

Post 28 Dec 2020

Billy wrote:
27 Dec 2020
Yeah unfortunately the more I read about the new apple hardware the more I realise I should start saving for a PC, I'm sure apple knows what it's doing but asking all those software developers to jump into it there vision is probably going to leave a good few of us stuck for a reasonable solution for some time to come.
There is always short term pain with these transitions and I certainly wouldn't recommend anyone invest in an M1 system for mission critical work, but this is just a hint of what's to come and I wouldn't assume Windows PCs will always stick with x86 as its primary, dominant CPU architecture in the future. The power per watt advantage is simply too dramatic to ignore, especially for laptops which represent the majority of consumer computers sold these days. Consider what the M1's GPU alone is delivering with just 5 watts. x86 isn't going away anytime soon, but there will be an enormous split and shift to ARM based CPUs across the whole industry, so software developers are going to need to get on board regardless. Windows will probably be the safest bet for backward compatibility though.

So far I'm really impressed with how well Rosetta 2 has been performing. Even my fairly large orchestral projects are running surprisingly well in Logic and none of the plugins, including Kontakt, are even native yet. This is the crucial element that Microsoft really failed to deliver on with their Surface Pro X and need to get right with their second generation device; strong emulation performance with non-native applications.

Maybe Reason Studios will add AU support with an upcoming version of Reason?

jwd606
Posts: 76
Joined: 19 Sep 2017

Post 28 Dec 2020

Fabfilter plugins run natively on M1, as does Nexus. Reaper runs in M1 as well, if you dislike Logic. And ProTools is supposedly on the way.

It's only been a couple of months, give it until next summer and I guess you'd be fine moving over. Whether Reason will run natively is a different question.

User avatar
pongasoft
RE Developer
Posts: 276
Joined: 21 Apr 2016
Location: Las Vegas

Post 28 Dec 2020

jwd606 wrote:
28 Dec 2020
Fabfilter plugins run natively on M1, as does Nexus. Reaper runs in M1 as well, if you dislike Logic.
As Reaper points out:
For maximum Intel plug-in compatibility, users with M1-powered Macs should use the Intel (10.15+) version rather than the native ARM64 beta version.
which is exactly what I was saying... Yes you can (easily) build an arm64 version of any DAW, but it won't be able to run the thousands and thousands of VST plugins that are Intel based. So at least, for the foreseeable future, it's not even an option...

User avatar
fieldframe
Posts: 870
Joined: 19 Apr 2016

Post 28 Dec 2020

I wouldn't worry. The original Rosetta was supported for four years (2006-2010). So it's reasonable to expect that Rosetta2 will be supported until at least 2024.

Think about it this way: If you were using a plugin right now that hadn't been updated by the developer since 2016, would you still use it in new projects, or would you be trying to move away from it? Any plugin that isn't running natively on Apple Silicon by 2024 will be in the same situation.

The music software industry moves slowly, but I think 1-2 years from now just about every major plugin will have migrated. Some will end up left behind, of course, but I think those will be a minority. That will allow another 2-year buffer for the stragglers, and of course, no one making music upgrades to a new MacOS the moment it comes out, so allow another year or so after that.

In the meantime, Rosetta2 is capable of running at 70-80% native M1 speed, which is already faster than many Intel processors can do natively. And newer M-series chips will be even faster. I think everyone will be running their DAWs in Rosetta mode for a couple of years, but once all the plugins you use have transitioned, it will be like a free 25% performance boost.
The Iron Law of Reason forums: All topics eventually turn into feature request threads; the only difference is how many posts it takes.

Looking for UI design? DM me for a portfolio.

User avatar
tronam
Posts: 338
Joined: 04 Mar 2015

Post 28 Dec 2020

Considering my main system is still on Mojave (two macOS versions behind), I'm definitely not a fan of change just for the sake of it and I do care about backward compatibility. But, I don't think that's what is going on here. Seeing this level of performance in a computer generating *zero* noise with nearly double the battery life is astonishing and will be nearly impossible to ignore for most active developers. Hopefully between now and the eventual deprecation of Rosetta in 4-5 years some innovative audio dev will have figured out a way to wrap abandonware VST plugins for future use. Even when encumbered by an emulation layer I doubt future Mx chips will struggle with running them at high levels of performance.

User avatar
pongasoft
RE Developer
Posts: 276
Joined: 21 Apr 2016
Location: Las Vegas

Post 29 Dec 2020

Screen Shot 2020-12-29 at 08.06.05.png

I figured out what was wrong: update on my testing

The "new" conclusion:
This does not change the fact that an “old” (Intel) plugin will only run in an Intel DAW (C8) or a universal DAW which is forced to go through the Rosetta translation layer (right click on the executable and select Open using Rosetta).

For a plugin developer, moving forward, it makes sense to build a universal plugin because the matrix shows that it will run in all cases (column F). And this is achieved by setting this in your CMakeLists.txt (before project()):

Code: Select all

set(CMAKE_OSX_DEPLOYMENT_TARGET 10.14 CACHE STRING "") # whichever macOS version you are targeting...
set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64" CACHE STRING "") # for universal
You do not have the required permissions to view the files attached to this post.

User avatar
miscend
Posts: 1698
Joined: 09 Feb 2015

Post 29 Dec 2020

Thats exactly as it was with the last transition from PPC to Intel. Apple users are used to it by now. They will just stop using plugins that aren't updated for ARM and move on.

  • Information
  • Who is online

    Users browsing this forum: CommonCrawl [Bot] and 0 guests