Allpass reverb with short times

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

I have been playing on an off with lofi allpass reverbs (16 bit, fixed point, reduced sample rate). Basically throwing spaghetti at the wall an seeing what sticks.

What I'm finding is that for longish reverbs acceptable things can be achieved by e.g. tweaking the Datorro's figure 8 topology.

For very short reverbs (<0.5s range) the story is very different though. It is either having a metallic sound, having not enough density or a too slow of a response.

For that type of short reverbs I'm not even using feedback as the tail has to be very short, e.g. the last thing I tried is 2 plain allpasses in series with 2 nested allpasses and after that some short allpass cascades to create some stereo, being these different between L and R. The nested allpass blocks being an allpass nesting 2 allpasses + a lowpass.

Is there some architecture worth looking for or am I looking at the limits of what allpass loops can achieve?

Post

This issue is completely normal. What you can do is to change the network parameters with reverb time. So you adapt both the allpass coefficients, as well as the output taps, to the desired reverb length.

I personally prefer separate algorithms or a separate set of delay lengths to get (very) short reverb times, however.

Richard
Synapse Audio Software - www.synapse-audio.com

Post

Yes, my intention is doing some simple algorithms "good" at one thing over a limited decay range.

So starting from a blank paper I wasn't achieving much with short reverbs, while for longer reverbs it seems to be a bit easier.

I was already modulating allpass times (sine) but not the coefficients. More things to try, thanks.

Probably this could have been interesting but it is a hard read for me, something for the future maybe...
https://www.dafx.de/paper-archive/2020/ ... per_59.pdf

Post

The thing about all-pass filters is that while they are spectrally white in theory (so you can put them into a loop and not worry about it blowing up), the ear still picks up the periodicity of the decay, especially if they are short. While the figure-8 topology is great for long tails, I don't think all-pass filters are ideal for shorter reverbs.

For short reverbs, I'd try something like this sort of "feed-forward" diffuser, perhaps with an FDN tail: https://signalsmith-audio.co.uk/writing ... l-diffuser

I feel like it's pretty hard to get a truly smooth late tail out of an FDN, but this isn't really a problem if the reverb decays fast anyway and they diffuse fairly quickly, so you just need your pre-diffuser to smooth out the beginning enough to warm up the FDN delays.

Post

That's actually a good idea. Thanks Mystran. I will try that and some FDN/allpass (with low coefficient) hybrids. I did an FDN reverb as my first reverb and while not horrible it wasn't that easy to change the sound as you say.

What I found, trivial, but that is easy to overlook for novices is that sometimes plain gains (attenuations) between allpass groups seem to help a lot to shape the tail. Plain delays too of course, but this is more obvious from looking at known architectures.

Post

It's very difficult to create a reverb that sounds good for very large as well small spaces at the same time. You'll have to morph several parameters with the size

Post

Just to update, mystrans solution had slow attack until I went 16 wide, it probably was me not managing to do something sensible.

But I got inspired by the FDN stuff (my first bad reverb was a FDN), so to gain more density I decided to run an hybrid of FDN and allpass chain.

Basically two 4-wide FDNs in series inside a loop with standard hadamard matrix, we could call it FDN figure 8, using pretty similar but not equal delays tending to the short side: 1-3 meters (I don't remember the milliseconds). Then adjusted delay sizes using medium decay times until it didn't sound horrible (but still bad).

Then each of the paths of the matrix has a 3 level nested allpass (8 total) with extremely low coefficients. It still gains density very fast. For a first guess of the times I used this paper below, using as delay time the delay times I had from the FDN delays:
https://www.google.com/url?q=http://www ... xpeJu6NHnZ

Then modulating coefficients it did sound acceptable. Modulating allpass times or delay times, while sometimes sounded good, other times it added metallicity.
Last edited by rafa1981 on Thu Mar 16, 2023 7:40 am, edited 1 time in total.

Post

rafa1981 wrote: Wed Mar 15, 2023 9:09 pm Just to update, mystrans solution had slow attack until I went 16 wide, it probably was me not managing to do something sensible.
The feedforward diffusions? You might wanna go deep rather than wide. If one stage is N-wide, then the number of echoes increases as N^M with M stages, so really in terms of memory at least 2-wide is actually optimal when it comes to increasing density, especially given that one channel should always be delay free (otherwise you get bulk delay). Going slightly wider than 2 can make things smoother by increasing the complexity of the echo patterns, but chaining multiple stages is where the magic's at.

Post

mystran wrote: Thu Mar 16, 2023 7:21 am The feedforward diffusions? ...
That explains a lot. Thanks.

I started with 4x4 stages but I was using probably too big and spread delay times. I also didn't have a direct path on any channel, so it was sounding like a predelay. The density wasn't to rave about. Then I changed to 8 and then to 16 wide and the density got more or less satisfactory but probably kind of excessive for the CPU use I'm aiming for. Also it was a bizarre amount of delay times to tweak and the total delay was still too high for a room.

Probably here it is explained a bit differently, as he goes also for more width:
https://signalsmith-audio.co.uk/writing ... -a-reverb/

I will revisit this at some point.

Post Reply

Return to “DSP and Plugin Development”