|
|||
Hi all,
Does anyone know of a decent matrix for a 12-delay line FDN, that is efficient? I supposed I could cascade a few Householder matrixes, but my brain gets tangled about how to combine all the signals with these. A single Householder matrix won't work, as the delay lines will only be lightly coupled for an order 12 matrix. Sean Costello ---- Plugins: http://www.valhalladsp.com Blog: http://valhalladsp.wordpress.com KVR Subforum: http://www.kvraudio.com/forum/viewforum.php?f=146 |
|||
| ^ | Joined: 14 Nov 2006 Member: #128465 Location: Pacific NW | ||
|
|||
The method I used for Tila was to run rotations on pairs (normal cos/sin). Try something like looping over pairs like [0,1], [1,2] .. first, then do another pass with another set of cos/sin values for [1,2] .. [12, 0] and you should get a dense matrix that's trivial to evaluate in O(n). Personally I like rotations that are close to a multiple of 45 degrees (not exactly multiple though).
You could also do householders on subsets or something, but I personally think rotations sound a lot better (especially when "not nice multiples" of "simple angles"). |
|||
| ^ | Joined: 11 Feb 2006 Member: #97939 Location: Helsinki, Finland | ||
|
|||
Depends on your definition of "lightly coupled". If you mean - coupled - as in - everything interacts with everything - just in varying degrees - then Mystran's approach would work like a charm. If you mean a matrix with a certain percentage zero coefficients - good luck - I've been trying to figure how to easily go from a Dense matrix to a Sparse matrix for quite a while now, and my head goes |
|||
| ^ | Joined: 08 Feb 2012 Member: #274678 Location: South - Africa | ||
|
|||
Ichad.c wrote: Depends on your definition of "lightly coupled". If you mean - coupled - as in - everything interacts with everything - just in varying degrees - then Mystran's approach would work like a charm. If you mean a matrix with a certain percentage zero coefficients - good luck - I've been trying to figure how to easily go from a Dense matrix to a Sparse matrix for quite a while now, and my head goes
Mystran's approach works for adjusting the coupling. Just change the theta angle of the sin/cos rotation matrices. Michael Gerzon first described this trick for FDNs in 1971 (as well as inventing FDNs, and nested allpasses). EDIT: The above assumes that the "certain percentage zero coefficients" matrix that you want is the identity matrix, or a permutation of that matrix. Sean Costello ---- Plugins: http://www.valhalladsp.com Blog: http://valhalladsp.wordpress.com KVR Subforum: http://www.kvraudio.com/forum/viewforum.php?f=146 |
|||
| ^ | Joined: 14 Nov 2006 Member: #128465 Location: Pacific NW | ||
|
|||
I'm not convinced there's any reason to ever have a sparse matrix for FDN. As far as I'm concerned, you want a fully dense matrix, but one that can be calculated efficiently. |
|||
| ^ | Joined: 11 Feb 2006 Member: #97939 Location: Helsinki, Finland | ||
|
|||
mystran wrote: I'm not convinced there's any reason to ever have a sparse matrix for FDN. As far as I'm concerned, you want a fully dense matrix, but one that can be calculated efficiently.
Sparse reverbs can sound pretty cool, especially on vocals and other sounds with soft attacks. Plus, depending on how you calculate your delay lengths and output taps, a fully dense matrix can result in an unnatural "burst" of diffusion after the first few hundred milliseconds of decay, instead of a natural build of echo density. Sean Costello ---- Plugins: http://www.valhalladsp.com Blog: http://valhalladsp.wordpress.com KVR Subforum: http://www.kvraudio.com/forum/viewforum.php?f=146 |
|||
| ^ | Joined: 14 Nov 2006 Member: #128465 Location: Pacific NW | ||
|
|||
valhallasound wrote: mystran wrote: I'm not convinced there's any reason to ever have a sparse matrix for FDN. As far as I'm concerned, you want a fully dense matrix, but one that can be calculated efficiently.
Sparse reverbs can sound pretty cool, especially on vocals and other sounds with soft attacks. Plus, depending on how you calculate your delay lengths and output taps, a fully dense matrix can result in an unnatural "burst" of diffusion after the first few hundred milliseconds of decay, instead of a natural build of echo density. Well, I don't really agree with the first one, but as far as the second one goes, that's true. On the other hand, if you want even reasonably fast density build-up while still having lots of total delay time and even decay, you're pretty much forced to have a delay distribution that eliminates the burst issue. Obvious this might not be a huge deal if you use FDNs for short early reverb only and deal with longer tails in another way. |
|||
| ^ | Joined: 11 Feb 2006 Member: #97939 Location: Helsinki, Finland | ||
|
|||
valhallasound wrote: EDIT: The above assumes that the "certain percentage zero coefficients" matrix that you want is the identity matrix, or a permutation of that matrix. Sean Costello Thanks for info Sean, I'll look into it. The only semi-sparse one I could find was Miller Puckette's FDN(not the rotation one - the first one he did(I think)) - and I still like the sound of it. Andrew |
|||
| ^ | Joined: 08 Feb 2012 Member: #274678 Location: South - Africa | ||
|
|||
Ichad.c wrote: valhallasound wrote: EDIT: The above assumes that the "certain percentage zero coefficients" matrix that you want is the identity matrix, or a permutation of that matrix. Sean Costello Thanks for info Sean, I'll look into it. The only semi-sparse one I could find was Miller Puckette's FDN(not the rotation one - the first one he did(I think)) - and I still like the sound of it. Andrew I always liked that reverb as well (the one from the 1984 Computer Music Journal). I first implemented it using Csound back in the spring of 1999. I skipped all the transposed FIR stuff, as Csound doesn't have ugens to do that. My theory about that matrix was that it was originally based around the same rotations of pairs trick that mystran describes, or (to be more precise) embedded 2x2 rotation matrices within a larger 2x2 rotation matrix. The rotation matrices being used in this case had an angle set to 90 degrees, or -90 degrees, as opposed to the 45 degrees commonly used for a maximally diffuse reverb. Once this matrix was developed, Puckette and/or Stautner figured out an efficient way of computing an equivalent matrix. Again, this is just my hunch - but I think the 2x2 rotation matrices are discussed in that paper. Sean Costello ---- Plugins: http://www.valhalladsp.com Blog: http://valhalladsp.wordpress.com KVR Subforum: http://www.kvraudio.com/forum/viewforum.php?f=146 |
|||
| ^ | Joined: 14 Nov 2006 Member: #128465 Location: Pacific NW |
| KVR Forum Index » DSP and Plug-in Development | All times are GMT - 8 Hours |
|
Printable version |
Disclaimer: All communications made available as part of this forum and any opinions, advice, statements, views or other information expressed in this forum are solely provided by, and the responsibility of, the person posting such communication and not of kvraudio.com (unless kvraudio.com is specifically identified as the author of the communication).
Powered by phpBB © phpBB Group













