Hi wdl people !
I think I've found a problem and the solution.
Steps to reproduce:
Using Protools (on Mac OS)
- open Protools and bounce without plugin inserted
- insert a plugin that makes a latency of 3072 samples
- bypass the plugin and bounce
=> the two bounces are shifted in time
Solution:
In the class NChanDelayLine, in the method ProcessBlock(), replace
signed long readAddress = mWriteAddress - mDTSamples;
by
signed long readAddress = mWriteAddress + 1;
The problem should be here for other formats that use a delay line when the plugin is bypassed.
It seems that if the plugin latency is 2048 samples for example, there is no such problem.
Hope this helps
Nicolas