Myths and Facts About 64 Bit
Synfire Pro 1.5 will include an additional (experimental) 64 bit host engine to support memory hungry sampler plugins, especially huge orchestral libraries. While from a software engineering perspective, making the 64 bit engine was no more difficult than doing the 32 bit thing, there are various fundamental limitations associated with the 32/64 bit architecture as such.
In this post I want to point out some fundamental facts about 64 bit, and some facts about our coming audio engine, so you can get an idea what is possible and what is not.
I always wondered why virtually all audio developers and even the major market leaders do seem to have such a hard time coming up with a satisfying 64 bit solution. The path to 64 bit started years ago already and as it looks today, we are still not completely there. Why is this?
64 Bit Means: Only 64 Bit
As a fundamental fact, a 64 bit host program can only load 64 bit plugins. If your favorite plugin is only available as 32 bit, you're out of luck.
Some hosts provide a 64-to-32 bit bridge, but, as forum discussions out there suggest, these bridges are not very stable yet. That's no wonder, because a bridge requires to launch a separate program that comunicates with the host by sending commands over an IPC connection. This adds a huge deal of complexity in a field of expertise that most audio developers are usually not familiar with.
To summarize it, if you run a 64 bit host and want it to be truly stable, you have to do without your 32 bit plugins.
No 64 Bit VST on MacOS X
The Cognitone Audio Engine can host 32 bit VST also on a Mac, but 64 bit VST won't work. You will need to install the 64 bit AudioUnit version of that plugin instead. Although this is not much of a limitation, because all the major plugins come as AU/VST/RTAS variants anyway.
Our current observations also suggest that you preferably should use AudioUnits on the Mac platform anyway, because VST seem to be less stable on the Mac.
No ReWire for 64 Bit
As the transport remote control of the drones uses ReWire internally, this kind of transport control will (probably) not work in a 64 bit DAW. I haven't yet checked if there are bridges for ReWire too, or if there is a new developers kit for ReWire already in the making, so we might get positively surprised, but I won't promise anything at this time.
64 Bit Operating Systems do Half The Job
In many cases, running multiple 32 bit applications on a 64 bit operating system is better than running one 64 bit application. Why? The huge address space of a 64 bit OS ensures that your 32 bit application gets all of the maximum 4GB of physical memory, without the other applications getting into its way. On a 32 bit OS, all processes running on your computer must share the same 4GB and that can quickly get tight. Therefore, the sole fact that you are running a 64 bit operating system already offers a huge advantage for your 32 bit applications.
64 Bit is Slower
You might expect the contrary, but its a fact that 64 bit programs do run slower. Internal data sizes are twofold, while the hardware caches stay the same size. There are more reasons that I don't remember right now, but basically there is some 5% or so performance cost that comes with 64 bit. Therefore, when talking about 64 bit, we are solely talking about increased memory size for a single process. It has nothing to do a performance gain.
We do not have the time and resources currently to implement a true 64-to-32 bit bridge for the audio engine (to be honest, I am eager to return to the development of the user interface and the core composition features as soon as possible). As a workaround you can run a 32 bit engine and another 64 bit engine in parallel, both communicating with Synfire directly. There will be a noticeable timing difference between them, though, as they each run independently. Therefore we recommend you host all instruments of a particular project on a single engine only.
The Track Drone will be available for 32 and 64 bit, so you can load it natively (no bridge needed) into a 64 bit DAW. A 64 bit drone however can only load and manage 64 bit plugins. And, as it looks today, will not be able to provide DAW transport control.
Whether all this really works on every DAW and OS, for AU and VST and for 32 and 64 bit, the beta test will hopefully show.
I wonder what your experiences are with 64 bit hosts today?