1 (edited by christianwn 2017-12-08 16:08:03)

Topic: A concultion to multi core / multi cpu realtime audio prosessing

After 3-5 years of studying testing how to make my computer into a music workstation for music creation and processing in  realtime, not mastering and mixing, I have arrived at certain conclusions:

Even if everyone suggests that getting a faster and more modern cpu is the right path to take, this is not necessary so. A faster cpu can hide a bad setup and make things seam fine because of it's great speed, but even a 10 year old multicore cpu should  be able to handle audio possessing to a high degree.

To process realtime audio on multiple cores is not as strait forward as you would think. If you do everything inside of one daw, you should be ok no? Wrong. Yes, the daw can use more than one core, but if you do groups of parallel vst possessing that is ultimately going to be mixed down to a stereo output of some kind (headphones, loudspeakers etc), then no matter how fast your cpu are, you can not do this smooth, especially on very low latency. That is why many daw guides don't recommend going to low on latency.
This could also be an operating system limiting thing, as neither windows or linux is in any way built like a real realtime os, like QNX. I do think that to get the fantastic hardware we have available today to process audio really well, a realtime os is needed even if we try over best, even with very good drivers that circumvent the os as much as possible and extremely cleaver programming.
I found that to have low latency parallel vst processing, you need separate daw/programs that is running on its dedicated cpu core (cpu affinity), and all of them running on separate cores. This daw/program will take an input from the sound card or a vsti instrument and you add all the vsts you like to that sound source inside that daw/program. To mix everything together you use loopback in totalmix, and route or mix these different daw/programs to a final daw that is running on a separate core(s), this way the dsp on the sound card/interface do the audio synchronization and and all the small daws doing the vst and vsti processing can run undisturbed and glitch free.
This method works best on pci and pcie cards. Usb and firewire not so good, but can be done. It also have the limitation of the driver implementation, rme support 8 daw connections with the multi client asio driver. So even this solution is not perfect. If you use an external mixer and send all signals out of the sound card/interface directly, you can free up one daw connection and you don't have to use loopback in totalmix. But then you would need another method for recording the final mix and you would have a hybrid solution. A hybrid solution could give some very interesting solutions, depending on mixer capabilities off course, like sending aux busses into the computer for effects. This way you get the best of both worlds and the synchronization is mostly done in the external mixer.
Even if we are in 2017 soon 2018, these issues are not totally solved and perhaps they never will. A faster cpu is not the solution anymore even if it runs things more and more smooth. We also have power consumption to consider. Look at all the dedicated dsp's out there, all the digital effect boxes and what have you, they do not need the absolute newest biggest intel i7 in a price range of 20.000 euro/dollar to process audio.
At the moment 8 daw/programs running in parallel is the most you can get out a any computer, even if you have 12 or more cores.
This is why I as a music creator, have found out that doing everything on the computer is next to impossible, with this kind of workflow.