TheWholeDamnZoo wrote:Is Live unique in its inability to take advantage of multiple cores or is this the case in every DAW?
There is no "inability to take advantage of multiple cores" in any modern DAW as far as I can tell (I haven't studied them all). I suggest that what all DAWs have in common is specific
real time programming problems that developers cannot currently fully escape in modern OSes. At least not in a satisfactory fashion.
While I can't describe in technical detail, the main problem is that if you have a buffer slice of events (MIDI and automation) or audio (instruments, audio clips and processing) or possibly the events to audio conversion (taking place inside an instrument), then each processing step that must result in 1 sample — 44100 samples per second, so that's easily a massive amount of real time calculations per second — and where each processing stage is stacked in the same time slice (1 sample in the audio stage) on top of all others, the task to spread
track work out to other cores when
work is already shared as 1 core per track and in other words a lot of calculations are taking place within the same time slice (with some adjustment for the current latency), then this task can be
prohibitively expensive from a CPU resource standpoint.
Think about it, you already have 1 core per track and on top of that we are talking about
adding additional piecemeal work spread out over cores and moving small amount of data between cores in already crowded CPU caches and lanes. You can only do that so many times before
the overhead eats up any gains you might find spreading out like this to begin with.
That certain plug-ins, like some instruments, can spread out work over multiple cores is different because this is only one step in the processing. And the work is often like note by note or discrete internal steps. Even when this is technically possible in Live, sometimes this causes problems resulting in crackles and what not. Sometimes it will work fine as well, so it's possible Live can accommodate certain multi-core supporting plug-ins.
As far as I know, Bitwig and Live, are the only DAWs with some kind of Session mode. It has been suggested to me, that, "Bitwig has better multicore support than Live", but I've yet to see any actual proof of this. That is, no shared projects or CPU samples or even presentations of results. If others can't repeat the results that you think you got in DAW X regarding multi-core support, then they didn't happen.
What can be argued is that some DAWs may better
hosts for multi-core supporting plug-ins. But this is something else.
About DAW multi-core work being spread out over cores beyond 1 core per track:
Bring the proof that can be repeated! Share the projects and the detailed results! Now!