Author |
Message |
Fozzie

Joined: Jun 04, 2004 Posts: 875 Location: Near Wageningen, the Netherlands
Audio files: 8
G2 patch files: 49
|
Posted: Mon Jan 16, 2006 3:12 pm Post subject:
DIY reverb: feedback delay network experiment |
 |
|
Been messing again with reverb. Spent most of my evening reading up on FDN and DWN reverb models, as well as more common comb&allpass models. I'm not too bright concerning math, and haven't dealt with matrices in a long time.
So here's an experiment with a fdn reverb patch, in which I have tried to use a Hadamard feedback matrix to spread the delay output of separate lines maximally over the inputs of the others. It's quite likely that my approach isn't mathematically correct, but I kinda like the results so far.
If I understand the theory correctly, my feedback matrix should be lossless, but in practice the signal gets out of hand quickly if there's no additional attenuation. Here's where my own layman solution is applied: I used some HP and LP filters to limit the decay time, and added some allpass filters for good measure (they do influence the reverb sound quite drastically).
Would love some explanation about the feedback matrices (what does it mean practically to make them 'unitary', etc), but am also happy to experiment further in my semi-educated-guessing approach
Improvements are very welcome, I have tried a lot of different allpass filter frequencies, delay times and lp/hp filter settings, and the current ones are settings I like, but surely can be optimized.
Description: |
Feedback delay network reverb experiment. Hit the momentary switch to test-drive the patch with a drum module sound. |
|
 Download (listen) |
Filename: |
FDN experiment.pch2 |
Filesize: |
3.6 KB |
Downloaded: |
1695 Time(s) |
|
|
Back to top
|
|
 |
ian-s

Joined: Apr 01, 2004 Posts: 2672 Location: Auckland, New Zealand
Audio files: 42
G2 patch files: 626
|
Posted: Mon Jan 16, 2006 3:23 pm Post subject:
|
 |
|
Thats a nice sounding reverb, subtle and nice. |
|
Back to top
|
|
 |
Fozzie

Joined: Jun 04, 2004 Posts: 875 Location: Near Wageningen, the Netherlands
Audio files: 8
G2 patch files: 49
|
|
Back to top
|
|
 |
Fozzie

Joined: Jun 04, 2004 Posts: 875 Location: Near Wageningen, the Netherlands
Audio files: 8
G2 patch files: 49
|
|
Back to top
|
|
 |
blue hell
Site Admin

Joined: Apr 03, 2004 Posts: 24409 Location: The Netherlands, Enschede
Audio files: 297
G2 patch files: 320
|
Posted: Wed Jan 18, 2006 2:35 pm Post subject:
|
 |
|
I may be wrong as it's all a bit too complicated for me as well, but unitary means the absolute value of the determinant is 1. And this just means that the matrix multiplication of the input vector (the comb outputs notated as a vector) results in an output vector with the same length, i.e. you have unity gain (i.e. lossless).
So I guess you could throw in any matrix for which the determinant is 1, but there seem to be some extra interesting dispersion/density things going on for certain special unitary matrices.
A matrix reference manual : http://www.ee.ic.ac.uk/hp/staff/dmb/matrix/ but wikipedia has some stuff about this as well and that seems to be a bit more accessible, like http://en.wikipedia.org/wiki/Determinants
Meanwhile your patch is very interesting ! _________________ Jan
also .. could someone please turn down the thermostat a bit.
 |
|
Back to top
|
|
 |
Fozzie

Joined: Jun 04, 2004 Posts: 875 Location: Near Wageningen, the Netherlands
Audio files: 8
G2 patch files: 49
|
Posted: Thu Jan 19, 2006 3:57 am Post subject:
|
 |
|
Thanks Jan, I have already been studying matrix math voluntarily (this is quite extraordinary for me) a bit because of these patches. Unfortunately, a lot is still way over my head.
However, I won't let me stop by a bit of math of course, so I go for the practical approach. I found an online determinant calculator (see jpg for url), and tested wether my reasoning from my last post (householder stuff) indeed yields a matrix with determinant=1. Lo and behold .
I will soon try to make a real & usable reverb patch with this info. On a G2, an 8x8 matrix will be easily implementable, as it uses gains of .75 and .25 (which are easy to get with a gain knob on a mixer). Other matrices (10x10 or 12x12 need gains of .8 and 0.2 or .833333/and .166666/ respectively; this is harder to accomplish as the knobs cannot be set to these specific values). Ah well, 8x8 should be nice, possibly with some delay time modulation.
Does anyone know whether the delay outs are interpolated when the are modulated (this is necessary for succesful delay time modulation in this kind of reverb)?
Description: |
8x8 householder matrix according to my functional math interpretation (well, at least it is a unitary matrix, hurray!) |
|
Filesize: |
38.75 KB |
Viewed: |
19860 Time(s) |

|
|
|
Back to top
|
|
 |
blue hell
Site Admin

Joined: Apr 03, 2004 Posts: 24409 Location: The Netherlands, Enschede
Audio files: 297
G2 patch files: 320
|
Posted: Thu Jan 19, 2006 9:45 am Post subject:
|
 |
|
When your determinant is not exactly 1 you can always cheat a bit by adding a gain amplifier/reducer stage before or after the matrix, this will need as many gain controls as the matrix is wide (or high) and you'll have to gang those.
This might ease things a bit as you'll only have to set the matrix coefficients ok relative to each other (and approximately to the right absolute value to avoid clipping).
This might be usefull anyway as a means to control the decay time ? _________________ Jan
also .. could someone please turn down the thermostat a bit.
 |
|
Back to top
|
|
 |
Fozzie

Joined: Jun 04, 2004 Posts: 875 Location: Near Wageningen, the Netherlands
Audio files: 8
G2 patch files: 49
|
Posted: Thu Jan 19, 2006 10:37 am Post subject:
|
 |
|
Blue Hell wrote: | When your determinant is not exactly 1 you can always cheat a bit by adding a gain amplifier/reducer stage before or after the matrix, this will need as many gain controls as the matrix is wide (or high) and you'll have to gang those.
This might ease things a bit as you'll only have to set the matrix coefficients ok relative to each other (and approximately to the right absolute value to avoid clipping).
This might be usefull anyway as a means to control the decay time ? |
I believe the usual way to control decay time is use lowpass filters after the delays. This way the frequency dependent decay time is implemented automatically as well. But I really need to experiment to see how well this works. |
|
Back to top
|
|
 |
Fozzie

Joined: Jun 04, 2004 Posts: 875 Location: Near Wageningen, the Netherlands
Audio files: 8
G2 patch files: 49
|
|
Back to top
|
|
 |
ian-s

Joined: Apr 01, 2004 Posts: 2672 Location: Auckland, New Zealand
Audio files: 42
G2 patch files: 626
|
Posted: Thu Jan 19, 2006 4:04 pm Post subject:
|
 |
|
very decent, reminds me character wise of a convolution reverb pugin I have. |
|
Back to top
|
|
 |
Fozzie

Joined: Jun 04, 2004 Posts: 875 Location: Near Wageningen, the Netherlands
Audio files: 8
G2 patch files: 49
|
|
Back to top
|
|
 |
dwerner
Joined: Jan 02, 2007 Posts: 1 Location: Australia
|
Posted: Tue Jan 02, 2007 4:20 am Post subject:
|
 |
|
Hi, I can show you an example of a reverb VST effect for Windows called SpatialVerb VST which features a feedback delay network for generating the late impulse response, and ray tracing for the early impulse response, at http://www.experimentalscene.com/spatialverb/
 |
|
Back to top
|
|
 |
|