Anyone interested in a build of Cantabile for Windows ARM?
What is ARM?
ARM is a different type of processor to those found in x64 Intel based computers. It’s the same/similar processor as found in Apple Silicon Macs, iPhones and Android phones, Raspberry Pi’s etc… They offer good performance with excellent power efficiency. If you’ve seen a machine with a SnapDragon Elite processor - that’s an ARM machine.
Normally an ARM machine can’t run x64 Intel software, but Windows now includes a supposedly quite good emulation layer that allows this work. But emulation will always have quirks and in general runs slower than non-emulated code.
What does this mean for Cantabile?
I haven’t tried, not heard if Cantabile x64 runs under Windows ARM emulation. Even if it did - I probably wouldn’t recommend it. Also, Microsoft is now recommending DAW and plugins vendors both provide bother ARM and x64 builds of their products.
There’s no telling which audio drivers might work through emulation - I suspect many won’t.
As for plugins, things get interesting. I would expect that over time, more and more plugin developers will ship ARM versions. For older plugins and vendors that don’t take up ARM, it’s likely that Windows x64 emulation will let these plugins work as is - but certainly there will be those that don’t work well, or at all.
Thoughts?
So, I’m considering trying a build of Cantabile for ARM. I don’t think it’s too much work, just need to get an ARM based laptop to test with.
But… I’m curious what the feel in the community is? Anyone else interested in or considering an ARM based machine?
Personally, I think it’s probably still a bit too early unless you happen to luck out with the drivers/plugins you need - but I don’t want Cantabile to be the bottleneck here.
this is a super interesting topic. I don’t think there will be a definite shift to ARM, not overnight anyway. Apple has shown us that it can be done, although their way was definitely disruptive. And a lot of apps still run in emulation.
So yes, ARM is welcome. TBH, I can’t say if and when I’ll buy an ARM PC nor if I’d use it for gigs.
But I’m pretty sure that ARM will be a big part of the future of IT.
I understood that some generic audio drivers are in the works for Windows, but I am not convinced that they will do the trick. For now I am keeping away from the ARM world for music production.
I just setup a business persons on a Dell XPS 13 9345 running a Qualcomm® Snapdragon® X Elite X1E-80-100, 12 cores. Windows and application setup went very quickly and the laptop ran cooler than an Intel processor during the same process.
If I’ve learned anything in the world of audio tech it’s to avoid new platform technology until those with money to burn have finished beating out the flames…
In term’s of Brad’s question, I guess the question is how much technical effort/debt is there supporting multiple platforms, and how much would it take you away from providing brilliant support (as you do) for the x64 platform?
FWIW it’s why, after a lot of research, I went the Java route in 2001 for my Synth Librarians as you get cross platform pretty much for free (other than a few gotchas, like mouse events and drag and drop that are subtly different between platforms), but I do not have the real time demands in my librarians that something like Cantabile has.
So, my vote is please focus on x64 being the best it can be.
BTW, I am a huge fan of RISC architectures - or was when I was more nerdy about processors and also at the cutting edge of parallel processing in the late 80s/early 90s. Anybody remember the Transputer? The most elegant processor design ever in my opinion!
When your state of the art PC was a 16MHz 80386 (maths coprocessor optional), I had a 16 Transputer parallel processing array on my development desk that gave me 500Mhz of processing power (using pre-qualified 30MHz chips, I wrangled as development samples out of Inmos, that were not even on the market) and by default 16 math coprocessors all built into their respective CPUs! I probably had one of the fastest Mandlebrot generators (all the rage then) going at the time! Of course it was really designed for super duper realtime image processing. I was running advanced area correlation autotracking algorithms that had (up to that point) never been run in realtime before. Ah, those were the days…
I am also an ex “Amiganaut” - what a processor architecture the Commodore Amiga was compared to the equivalent PC XT of the day! It could pre-emptively multi-task in 128K or memory out of the box, with its coprocessors for sound and graphics using DMA to share the workload with the 68000 CPU.
Now? I just want things to work!
So back OT, as I said above, my vote is x64 focus unless you get other platform support pretty much for free.
I’m dropping x86 support soon which frees up a little of the current workload. As best I can tell the build of an ARM version should be pretty much just a rebuild with the new toolset. The .NET code is already machine independent, and the C++ code doesn’t use any assembly (I switched that to intrinsics a long time ago). I’m also pretty sure the other libs I use are all straight C++ too.
There will need to be a separate setup program for it, but InnoSetup (what I use for Cantabile setup) works on ARM so that too should be easy update.
So, I expect it will be pretty straight forward, but as they say “expect the unexpected”.
The biggest cost will probably be some additional support load, but given the luke warm demand for it right now I think that can be managed too.
Wow, I remember very well, even though I was on 68K and VMEbus at the time. The Transputer wasn’t used much here, except in some scientific areas, so I never used it.