Two-stage partitioned convolution reverb: block sizes? – DSP and Plugin Development Forum

I need some advice on convolution reverb. We (Surge) have implemented a two-stage partitioned convolution reverb, all running on a single thread. The code is fine. Figuring out the block sizes is not fine. I’m able to match ReaVerb (and probably Kontakt as well judging by somebody else’s tests) for CPU usage if I tune the two block sizes appropriately. But that’s a per impulse response activity, and I’m not really sure how to do this algorithmically. Are there any papers about this (not the ideal multistage convolution block sizes on multithreaded scheduling, which is a solved problem; we’re using a 2-stage with no background threading)? Has anyone else done this before and come up with some good rules for doing it?

Read more here: Source link