This came out of a discussion over on the NI Reaktor discord. Thanks to grrdjf.
Based on the paper:
"Late-Reverberation Synthesis using Interleaved Velvet-Noise Sequences"
by Vesa Valimaki and Karolina Prawda.
The basic idea is that so called velvet noise is perceptually similar to white noise, but many (e.g. > 90%) of the samples are zero. This makes brute force convolution viable.
A clever trick using multiple channels of pre recorded 'frozen noise' in co-prime lengths, enables the separation of the convolution section from the decay section. This means the decay section is very cheap to implement, so it can be duplicated multiple times for flexible filtering that is completely decoupled from the decay time(s)
It is not perfect - and no doubt this implementation is less than ideal, but the potential issues here are different from those in other well known digital reverb algorithms, so there will be things it is particularly well suited to and some that it is not.
The precise control over decay and level for different frequency bands is fantastic in a sound design context.
Some decay times with some parameter settings do exhibit some mild cyclical artefacts in the reverb tail, but these can be minimised (or maximised if you like) by tuning the settings, and are usually only noticeable if you listen for them.
Suggestions and questions are welcome
please leave a comment in the UL :)