I've hacked together a low(-ish) latency convolver for LADSPA. The are some unusual design decisions that I'm not sure how to resolve though.
It currently runs a 3ms latency, which is good for a convolver, but lousy comapred to a filter. I can cut this down to 0 or 1.5ms (depending on the host's block size, <256 samples its 1.5, >=256 its 0), but only if all the block are 2^n long. If the're odd sizes you get clicks. This seems too awkward, ladspa make no guarantees about block size. Also I can halve the latency by doubling the CPU cost. Its not *too* expensive at the moment (about the same as my retro flanger), and as the quality won't go up that seems like a high price too. Existing restrictions are that the inpulses are limited to 1800 odd samples and it will only run properly at 44k1, but I don't plan to fix that in a plugin. Full on, dynamicly loaded convolution with variable latency is more of a jack thing, and brutefir is much better for high latency, big convolutions. You can try it from http://plugin.org.uk/snapshots/swh-plugins-2002-01-16.tar.gz or http://plugin.org.uk/ladspa-swh/imp_1199.so (if you really like the bleeding edge!) but theres only three impulses in there at the moment, the delta function, my flat and a marshal stack simulator. Youl need fftw installed of course. Lastly, if anyone has any short impulses they think people might appreciate, please send them to me. - Steve
