Dattorro reverb improvements

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

Well, if you sum it back to 1D (or throw away one of the components) then it's no longer spectrally white.
Yes of course and actually it's not a good idea, I was trying it and it coloured my reverb.
However I'm now feeding either a FDN or the figure 8 loop by this feed forward diffuser (but not mixing the output of the diffuser then) and I get a cool true stereo reverb with a shapable attack, that's super cool ! :)
Now I'm trying to see how I can smartly control the channel cross feeding, if ever it can enhance the stereo.
That sounds like Miller Puckette to me: http://msp.ucsd.edu/techniques/v0.11/bo ... de111.html
Thanks for sharing :tu:
The filters (typically one-poles) should be free on modern CPUs. The CPU cost boils down to the memory accesses and how well you take advantage of the cache. Whatever you do though, anything that has a core of say 6-16 delays (not counting diffusion) should be totally fine, CPU-wise. You could even use a lot more, but I doubt it will help perceptually.

Richard
If the CPU doesn't matter, then the fdn with 32 delaylines would be the late reverb component, better than the figure eight, the fdn produces a really dense noise, totally colorless.
Louis Couka
http://louiscouka.net/ (under construction)

Post

Louis Couka wrote: Wed Apr 21, 2021 3:43 pm If the CPU doesn't matter, then the fdn with 32 delaylines would be the late reverb component, better than the figure eight, the fdn produces a really dense noise, totally colorless.
It's really not that simple, because an FDN doesn't automatically produce a colorless tail. As a closed MIMO loop an FDN is lossless, sure.. but there's coloration at the input, there's coloration at the output and there are no guarantees that the modal distribution is even, so if modes cluster you can also have a ton of ringing. Because the modal clustering in particular is really hard to predict (and I would argue more so than in other types of reverbs), actually tuning an FDN to sound even half-decent is a rather tedious process.

There's also the question of whether "maximally diffuse" is even a good goal, as many interesting acoustic spaces are not "maximally diffuse" at all. A large cathedral sounds like a large cathedral because of all the pillars and balconies and side-passages and what not, that trap part of the sound and recirculate it locally, so that there are typically way more late "discrete" echoes than what a "maximally diffuse" model would produce. If you look at the IRs of many highly acclaimed vintage algoreverbs, you'll also notice that they are not necessarily all that dense, because even though the timedomain IR of a real-space might seem as if it's just noise, it really isn't.

This doesn't necessarily mean that FDNs are automatically bad (they are not), but they are certainly not a silver bullet and the design of a good sounding arficial reverb is a lot more complicated than just a simple matter of throwing enough CPU at the problem. Having more CPU to work with means it's easier to have more delay memory (= more total modal density) while keeping the individual delays shorter (= faster diffusion, typically), but it's really not what makes or breaks a reverb.

Post

There's also the question of whether "maximally diffuse" is even a good goal, as many interesting acoustic spaces are not "maximally diffuse" at all. A large cathedral sounds like a large cathedral because of all the pillars and balconies and side-passages and what not, that trap part of the sound and recirculate it locally, so that there are typically way more late "discrete" echoes than what a "maximally diffuse" model would produce. If you look at the IRs of many highly acclaimed vintage algoreverbs, you'll also notice that they are not necessarily all that dense, because even though the timedomain IR of a real-space might seem as if it's just noise, it really isn't.
For now, I'm seeing the synthesised reverb as a simple noise generator first, before considering getting some parameters as "Modal Density", or "Build Up Time", or whatever that could help to shape the reverb, which are totally legit, but which are in my opinion, too much artistically strong to be imposed. I'm also using my own experience having a little preference for plate algorithms which are in generally fast and dense. :) Which was also confirmed by feedback I got in several papers.
The problem is that the maths are not so much helping, as in fact the "simple neutral noise reverb" needs the heaviest structure. I would have prefer the opposite such you could have complexified the design progressively to add more shaping parameters.
I was also thinking about scalability with other target like surround 5.1, 7.1, thinking it could help to get a more generic view of the problem, but it doesn't help so much right now.
Louis Couka
http://louiscouka.net/ (under construction)

Post

Louis Couka wrote: Thu Apr 22, 2021 11:55 am For now, I'm seeing the synthesised reverb as a simple noise generator first, before considering getting some parameters as "Modal Density", or "Build Up Time", or whatever that could help to shape the reverb, which are totally legit, but which are in my opinion, too much artistically strong to be imposed.
I think you didn't quite understand. Modal density (= the number of poles) is simply a linear function of the system and unless you specifically want a ringy tail and/or repeating patterns as the RT60 is increased, higher modal density (ie. more delay in the loop) is more or less universally better (ie. not a user parameter, but rather something to maximize during the design of an algorithm), except as far as it makes it harder (for a fixed number of delays) to get reasonable diffusion and smooth buildup.

Post

Got it ! :tu:

Actually today I did some progress, I can achieve a really dense noise with only one feedforward diffuser and a householder matrix, so it's quite cheap to compute. And I get some cool params I can extract from this scheme, a density (or diffusion) control + some attack shaping controls that I didn't define really well for now.

I'm still wondering how I could extract some cross feedback parameters. My only idea for now is to duplicate 4 times the reverb processor to get each LL, LR, RL, RR individually such I can easily param them. But it's a bit overkill. :)
Surprisingly making a true stereo reverb is cheaper than a "separated channels" reverb as you can benefit from the MIMO structure to plug your multichannel signal directly on it. At the opposite of the convolution where you have to convolve twice if you want to feature the true stereo.
Louis Couka
http://louiscouka.net/ (under construction)

Post

Louis Couka wrote: Wed Apr 21, 2021 3:43 pm If the CPU doesn't matter, then the fdn with 32 delaylines would be the late reverb component, better than the figure eight, the fdn produces a really dense noise, totally colorless.
A FDN is far easier to get right in my opinion. Very robust against parameter changes of any kind, like changing delay lengths, or simply the reverb time. Some FDNs are robust even when changing the matrix size, i.e. the sound does not change much even though the impulse response is totally different.

When dealing with classic allpass loops, changing a delay or two often spoils the reverb completely, and you typically have to adapt many network parameters depending on the reverb time (*).

They can sound fantastic though! :)

Richard
(*) I suppose mystran either uses one of the very rare "magic" settings or has found an automatic way to set up the network properly, which would of course alleviate this issue.
Synapse Audio Software - www.synapse-audio.com

Post

I guess the two tools are complementary as anyway making a diffuser with an FDN is not that easy. :P (It should be possible actually as FDN handles any topology)
I remember in Turbo Verb from Melda Prod they was not liking so much FDN, from what I read from their manual. Saying it was a theorical tool, black box.

Finally I'm making one reverb instance per channel + cross feeding at strategic points, to true stereo. It seems to work great for now + Compatible design with surround, so everything is great. :tu:
Louis Couka
http://louiscouka.net/ (under construction)

Post

Louis Couka wrote: Fri Apr 23, 2021 12:55 pm I guess the two tools are complementary as anyway making a diffuser with an FDN is not that easy. :P (It should be possible actually as FDN handles any topology)
I remember in Turbo Verb from Melda Prod they was not liking so much FDN, from what I read from their manual. Saying it was a theorical tool, black box.

Finally I'm making one reverb instance per channel + cross feeding at strategic points, to true stereo. It seems to work great for now + Compatible design with surround, so everything is great. :tu:
Congrats- reverb is really tough, so making progress is always satisfying! :) :tu:

Quick remark about diffusion and FDN- it is actually very easy, and you can do this pre- or post-FDN, or even inside the FDN. Just make sure whatever you stick into the FDN is spectrally white. So basically the same rule as for allpass loops.

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

Post

mystran wrote: Wed Apr 21, 2021 10:34 pm There's also the question of whether "maximally diffuse" is even a good goal, as many interesting acoustic spaces are not "maximally diffuse" at all. A large cathedral sounds like a large cathedral because of all the pillars and balconies and side-passages and what not, that trap part of the sound and recirculate it locally, so that there are typically way more late "discrete" echoes than what a "maximally diffuse" model would produce. If you look at the IRs of many highly acclaimed vintage algoreverbs, you'll also notice that they are not necessarily all that dense, because even though the timedomain IR of a real-space might seem as if it's just noise, it really isn't.
Yep, this is my main gripes with FDNs, they are too perfect in a sense.

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

Post

Richard_Synapse wrote: Fri Apr 23, 2021 10:08 am (*) I suppose mystran either uses one of the very rare "magic" settings or has found an automatic way to set up the network properly, which would of course alleviate this issue.
Damping the all-pass filters directly makes the parameter problem largely go away, but I want to clarify that when I say "figure-8 is easier to tune" I don't necessarily mean the initial process of getting something half-decent going, but rather the fine-tuning part where you're trying to adjust the buildup of the tail and/or clean-up any ugly artifacts out of the tail.

Basically with FDNs as long as you pick some coprime delays (eg. by approximate golden ratio or whatever) and some sensible matrix (eg. fast Hadamard transform) you'll get something half-decent pretty much every time, but I find that turning a "half-decent" reverb into a "great" reverb is where FDN are just about the most annoying structure I can think of. YMMV.

As for magic, lately I've been experimenting with some structures that are a bit different from anything I've seen in the literature, but since I won't go into too much detail as I have no production quality results to show yet.

Post Reply

Return to “DSP and Plugin Development”