TLDR: if you've got a bunch of delays in series, for example all-pass filters in a reverb, put them all in a single big buffer and let them crawl over each other for a perf win!
recently I was fiddling around with my hobby reverb code, in preparation for porting it onto a smaller/slower CPU.
I'd implemented a loop-of-allpass filters type reverb, just like everybody else, and indeed, I basically had the classic 'OOP'ish abstraction of an 'allpass' struct that was, say, 313 samples long, and... did an allpass. on its own little float buffer[313]
. (well, short integer, not float, but thats not relevant) I'll write out the code in a moment.
but then I was browsing the internet one night, as you do, and stumbled on this old post by Sean Costello of Valhalla DSP fame - noting the sad passing of Alesis founder and general all-round DSP legend, Keith Barr. https://valhalladsp.com/2010/08/25/rip-keith-barr/
It's worth a read just for his wonderful anecdote about the birth of the midiverb - which spawned the thou