Questions & Answers

why not use the full power ??

+7 votes
431 views
asked Jan 16, 2022 in Instruments and Plug-Ins by christianschmidt7 (660 points)
Because of the very CPU-hungry plugins, it would be good if S1 could handle true multithreads. Apart from that, as far as I know, it would be the first DAW that can do that. Maybe I'm wrong here.
There is no such thing as a single core computer anymore. There's everything from 4 to 24 cores, and 8 is certainly the minimum standard right now. So why does at least one core have to do all the work?

Meanwhile, there are plugins that distribute the load across multiple cores much more efficiently, such as Unify. Why can't a DAW do the same?
As far as I can see, CPU usage on my 12 cores, on average, is not even close to 50%, while S1 is already in the red.
2 cores are at 32% and 35% max, every other core is between 2 and 24% utilized.
Absolutely inefficient. Other DAWs are no better, I've heard.
Which is no reason not to get better ... and it would be a real marketing argument ;)

1 Answer

0 votes
answered Feb 24, 2022 by frankengel (430 points)
While this sounds great in theory, the problem is that in most cases plugin chains have dependencies that make it less efficient to use multiple cores than to use just one for a given chain.

For example, if you have 20 tracks with a compressor and an EQ on each, and some of those tracks get fed into a bus with a reverb, and the reverb and the individual tracks get mixed together, in theory, the 20 compressors can operate in parallel, and the 20 EQs can operate in parallel, but the compressor and EQ on each track cannot necessarily operate in parallel with each other, as whichever one comes second needs the output from the first in order to begin its processing.  Add side chains to the mix and the plugins on individual tracks can depend on the result of other tracks as well.

In some cases it may be of benefit to run the tracks in parallel where possible, but when they finish processing, the final output of those going to reverb need to be mixed together (the sends) and the output of the reverb and the tracks mixed together to produce the final output, meaning the reverb and the final mix are both stuck until the plugins finish.

There is overhead involved in gathering the data from individual threads which are processing independently.  In some cases the overhead of running the EQ and compressor plugins in different threads (on different cores) can exceed the performance gains of splitting them up.

Determining when to divide the plugins across multiple threads for a performance boost can be more difficult than you would expect, so while some DAWs do effectively split up the workload in parallel when it is reasonable to do so, but the nature of many projects prevents this from being useful or effective.

The short version is that most modern DAWs (including Studio One from what I can tell) will make use of multiple cores when there are parallel operations that warrant doing so, but many projects are structured in such a way (side chains, sends to busses, etc.) which inhibit this to some degree, making the single-core performance of the CPU much more important for DAWs than for many other types of programs.

Consider that if you have a project with one track and a large number of plugins on it which process one after the other, the DAW is unlikely to be able to split them up and run them in parallel as each needs to wait for the result of the previous one.
...