Splitting off to a new thread:
Just tried a little crude benchmarking. I used TDR Nova to test because it’s really CPU hungry in Linux (running via yabridge + wine) – about 10% per instance, well above the CPU usage signal’s noise floor. Introducing wine may affect some of the results, but I also tried loading empty instances of sfizz, which is Linux-native, to compare.
For a single VSTPlugin instance, I didn’t see any reduction in DSP CPU when multithreading was on, for either plugin.
For multiple instances, I saw about half CPU usage for 5 instances of TDR Nova (wine), and half CPU usage for 10 empty sfizzes.
So AFAICS VSTPlugin multithreading really kicks in when you’re running a lot of plugins – I’ll definitely consider that if I need a bunch of those TDR dynamic EQs (very nice free plugin!). I don’t think I have any plugins that multithread internally.
I’d also wondered if “block delay” meant control block or hardware block – confirmed that it’s control block (which is less than the delay introduced within TDR Nova).
Nice stuff – I hadn’t noticed that option. Related to the plugincollider thread, I stand corrected – you could parallelize multiple scsynths within scsynth this way, though with limitations and I’m not sure it’s really practical.
hjh