I had a quick go at compiling the Rack2 source for arm on an M1 mac. I didn’t have many problems with the dependencies, just minor configuration issues. The Rack simd code relies on the SSE intrinsics though, so they’ll need a NEON version, or even just a generic C version.
But it all seems to work well anyway, Rosetta is amazing, the new macbook pro’s run Rack way better with Rosetta than my year old XPS runs it natively.
I didn’t mean it to sound like VCV could just easily do it, VCV have a more complex problem than me. I’m happy compiling the free version of rack and recompiling just the plugins I care about so I can see what the performance difference is. VCV has to worry about working well with other DAWs, convincing plugin developers it’s worth supporting another architecture and extending their own infrastructure to another architecture.
I can see why it’s not worth them worrying about yet.
Yes, it happens completely automatically the first time you try to run an Intel program on your M1 machine.
Ooohh… Nice The trouble here will be the (few?) closed-source plugins, that are delivered to Andrew/team as binaries, they will have to be supplied in ARM format to work as well.
To sum up my understanding:
Intel programs (DAW’s, Rack, …) running on M1: No problem, runs seemlessly under Rosetta2, which you get automatically the first time you try and run it. Hassle free.
Intel programs running on M1 trying to load a ARM library (i.e. a plugin), or ARM programs trying to load a Intel library: Probably not, unless special provisions are made.
So, everything same architecture: No problem, which means since Rack and its plugins are Intel you’ll be fine if the DAW is also Intel. But the mixed architecture thing, not so much, but I have read reports of certain DAW’s of one architecture being able to load plugins of another architecture, but for that scenario you definately need to check the fine print on the manufaturer pages.
Thanks! After looking at that I stumbled across SIMDe, and with that repo I can just include their header files instead of the x86 ones and with some minor changes can compile and run rack natively on M1.
The other issue I ran into was Rack having special linker commands for modules that execute Lua… I just deleted them and linked normally.
I loaded the default Rack2 template at 768khz single threaded and the native build had a 28% decrease in CPU utilisation compared to Rosetta 2.
Maybe you could compare your findings with the try out that Patrick @heapdumpdid a while ago or V1.x?
And compare, if not merge the 2 efforts together?
I think he ran into some issues at that time that might be relevant for you.
VCV Rack 2 runs actually much better on an M1-Mac than on a Mac with Intel-Iris-Graphics. Rosetta does a great job and I wouldnt expect large performance-Improvements on a native M1-version as there arent significant Improvements on the native Versions of Ableton 11 and Bitwig either.
The native Reaper version is quite a bit snappier and leaner on the M1 as is the Opera Browser, over the non-native variants. So there are gains to be had, though definitely not in all apps. No crashes worth worrying about here, stable and fast things are in general. Big Sur here though, I wait on Monterey until that shakes out the major niggles, and nothing there listed under the trumped improvements interests me at all, Only a faster OS