Synthesia for Apple Silicon (M1)

Synthesia is a living project. You can help by sharing your ideas.
Search the forum before posting your idea. :D

No explicit, hateful, or hurtful language. Nothing illegal.
Post Reply
njha
Posts: 2

Post by njha »

Hi! I just bought a Mac with the new ARM CPUs. I'd love if the build of Synthesia for Mac supported this natively/without emulation.

I'm happy to test builds if you don't have the hardware to!
Nicholas
Posts: 12775

Post by Nicholas »

Have you experienced any trouble running the non-M1 version? Is it stuttering or causing a bad experience in some other way?

For now there are only two is only one roadblock:
  1. I don't have an M1 Mac (and I just replaced my dev Mac Mini a few months before they announced the ARM change).
  2. I'll have to double-check, but we're still waiting on our sound library provider to update their end. EDIT: They've updated it!
njha
Posts: 2

Post by njha »

I think it uses a little more battery than it otherwise would, but other than that it runs fine.

Would cross-compiling it work? Alternatively (although I understand why you might not want to do this): allow the iPad version to be installed on Mac? That used to work even if the app developer blocked it but Apple fixed that in the newest update :)
Nicholas
Posts: 12775

Post by Nicholas »

You're correct that real-time emulation probably does draw more power. (Although, the lion's share of wasted power would still be due to a few glaring inefficiencies I added more than a decade ago when I didn't know any better. I've been cleaning those messes up slowly as I get a chance, between more pressing feature requests.)

It shouldn't take anything like cross-compiling. The code-base is already plain-C++ enough to compile as x86 or ARM (and as 32- or 64-bit). Now that I know our audio library has an M1 version available, the only tricky part is that I wouldn't have any way to test the build myself. It's super unnerving to send something out into the wild without even being able to run it yourself. Of course I'd do a beta test version first, but there's still something about not being able to see it with my own eyes.

The saddest part is that I had just upgraded our Mac development hardware about a month before the M1 announcement, so it's only a little more than a year old.
adiantek
Posts: 8

Post by adiantek »

How about Surface Pro X which is also ARM64-based? It's very easy to build arm64 exe with MSVC and cmake (just one flag only) except dependencies. x86 version works fine on SPX (also with MIDI device - Yamaha DGX 670). If you need sth to test on SPX you can tell me.

PS. I didn't see the 64-bit version for Windows, there is only 32-bit. AFAIK 64-bit emulation on arm64 uses less power than 32-bit emulation.
Nicholas
Posts: 12775

Post by Nicholas »

We still ship 32-bit only for Windows. At this point it's only because I've been dragging my feet on getting another build configuration up and running. Everything has been 64-bit ready for ages now.

Otherwise, I don't have any near-term plans to support Windows on ARM. I've seen two or three false starts in that direction from Microsoft over the years, so my plan is to wait until one actually takes hold. (Hearing that the x86 version works there makes it an even easier decision.)

And to the original topic: when Apple updates the MacBook Pro lineup (in November?), I was going to get one to finally have something with Apple silicon in it. Then we'll be able to add a native M1 slice to Synthesia for Mac.
Nicholas
Posts: 12775

Post by Nicholas »

My fancy new MacBook Pro just arrived today and I'm happy to report that it only took a couple minor changes in two files to get a native Apple Silicon build up and running. I don't see why this can't go out sooner rather than later with the upcoming small 10.8 bug-fix update.
Post Reply