I do not see PDC as complex. Plug-in (i) reports that it will create output for the input with delay X(i). After summing, each strip output is delayed from the input by (X0+X1+X2...Xn). When these outputs are mixed into some bus, "faster" strip should wait for "slower strip", so the mix is calculated from the output corresponding to the same original input. The bus can it turn add more delay, so summing different buses should be also synchronized.
F.e.
|-> Bus 1 (0 delay) --> |
Track | | --> Mix to Bus 4 (0.2s delay)---|
|-> Bus 2 ( 1s delay) ---> | |
| | --> Mix to Bus 5
|-> Bus 3 (0.3s delay) -------------------------------------|
To mix things correctly, we need to:
* add 1s delay to Bus 1
* add 0.9s delay to Bus 3 (Bus 4 output is 1s + 0.2s, original Bus 3 delay 0.3, 1.2-0.3 = 0.9)
There are many ProTools videos where these "extra delays" should be added manually...
All (?) DAWs can add them automatically now.
Note that "Track" can be one or many since original material is assumed to be "in sync".
Sonar route audio in "real time", that means you hear the audio after 1.2 seconds it has entered the engine. That is problematic for live monitoring, so there is an option to disable the compensation: "Live input PDC Override". But that is also a problem for mixing, if you change some parameter of Bus 3, you will hear the result not before 0.9 later. So "mastering" plug-ins (which introduce such huge delays) should be avoided on any intermediate tracks/buses.
Some DAWs (Reaper, S1, other ?) use a "trick". They can "pre-calculate" a part of routing tree without live inputs. So the output of any such (sub)tree has always 0 (zero) effective delay, independent from which plug-ins are used. In this case, "PDC Override" is not required. In the example, Bus 3 changes will be delayed at MOST by 0.3s, so by own delay which can not be avoided.
The trick has yet another effect: if we pre-calculate ALL recorded material (f.e. 50-200ms), the processing is not strictly bound to the "real time" required by ASIO to avoid under-run. So it is possible to have the same "stability" as with huge buffers (2048, 4096 up to "normal" Windows Audio huge buffering) while keeping ASIO buffer size at minimum, where only live monitoring is still forced to be in real time (and during mixing and mastering there is no live input at all).