Apple Silicon M1 - system-on-a-chip to Rule Them All.

same

1 Like

Alright, let’s give a quick overview what I experienced with my MacMini M1 so far relating VCV Rack usage:

Everything works as expected, Rosetta 2 translation works very smoothed and nicely, you don’t even notice that there is any translation/emulation somehow at all. I tested a a lot of plugins, but sure not all, but so far I did not found any problems.

The performance is very good and compared to my MacBook Pro late 2013 2.0 GHz Haswell CPU it is a quite huge difference! I could nearly run all my patches with internal 192kHz and the standard patch, which is loaded if you hit ‘new’, could be run up to 352.8KHz with no problems. Also the GPU performance is great - no fan was turned on for cooling, even on very heavy computings.

If you have an old Mac and want to upgrade for better performance and you’re fine with 8GB RAM, you can now do for less then 800€ or $700. I guess there will be more high-end ARM Macs coming next year with much more RAM, but they will be also more expensive.

If you have questions, fell free to ask :slight_smile:

Cheers, Patrick

11 Likes

Did you try to recompile some of your xcode project on the new machine ?

How can I load AU/VST3 on GarageBand? I am driving nuts :wink:

I am using CLion for development, but JetBrains has not yet updated it to run with M1. I have not recompiled any project yet. Still setup a development environment for native ARM, but this is difficult because of the missing homebrew :-/

If you want to setup a develop environment, you could go like that:

If you make a new instrument track yo will get this. Open the ‘plugin’ section at the bottom and you will see a blue bar that says “EPiano”

Click on that and you can choose an AU

then you can pick surge and you should get it loaded in GB

I also use clion and yeah can’t quite coax it to do a multi-arch Xcode build - seems to really want to use the code blocks generator.

but with cmake 3.18 if I use -GXcode -D\"CMAKE_OSX_ARCHITECTURES=arm64;x86_64\" as cmake arguments (modulo appropriate quote protection for in-script or what not) then run cmake --build dir I get a fat binary and a dual arch Xcode build. If that helps. (That’s basically how we build surge (which again, I don’t know if it works on the arm chips yet so grain of salt etc :slight_smile: ) )

1 Like

Appearently you can run the x86 version of Homebrew through Rosetta2. It’s not native development of course but it allows for running the programs:

Thanks for the info, but the challenge is to compile Rack for arm64 to run it natively. (Just for experimental usage)

So far I was able install home-brew by compiling all formulas by myself. It was tricky at some points, but seems to run now and I have installed all prerequisites needed to build Rack.

3 Likes

I know, it’s a bit off topic, but I wrote a small tool where you can check binaries for it’s architecture on console level:

I needed this to proof that homebrew formulas have been compiled to arm64 / fat binary.

Cheers, Patrick

1 Like

Was wondering if this would work since I don’t have access to an M1 Mac yet. How is the CPU performance? Clearly shows M1 is fine with SSE3 which a few of my modules use.

Edit: Rosetta running SSE3 I should add

Tempted by that price too for a development machine :smiley:

3 Likes

The macos command ‘lipo -archs’ will show the architectures too.

3 Likes

Thanks for the info… I did not found anything on the web, just an article for a small C snipped… never mind :wink:

Finally I was able to compile all dependencies for Rack on arm64/M1… it was a fight over 3 days, nearly all libraries had to be adapted, hacked or updated to compile, but now it works. The next step will be rewriting the x86 specific section of Rack itself to get it compiled and running :slight_smile:

Stay tuned!

10 Likes

i think you have it on your radar already, but just in case: here you should find all you need to get it compiled on arm: https://github.com/hexdump0815/vcvrack-dockerbuild-v1 - have a look at the aarch64 patches and the simde part and the simdeify script - its an ugly hack but works - you might just have to change the ifdefs of my hacks from the linux parts to the macos parts (if they are in ifdef linux regions) … good luck!

5 Likes

Perfect, that is what I need now :slight_smile: Did you patched also the installation of the dependencies?

the simde lib is a massive help. It is great, tested, and gives seamless SSE2 -> NEON compile transformation with just an include.

2 Likes

no the dependencies are just the same - but that is for linux which is quite consistent across different architectures … btw. my repo also has a hacky way to build all the open source modules in one run - even for (intel) macos, which might get interesting for you later then too - if you want to follow it, have a look at readme-macos.txt in the repo … you might just run it once without any adaption and see which modules do not compile out of the box - i guess most will compile without a problem on arm too, its just a few which need adjustments …

good luck and keep up your good efforts - hexdump

4 Likes