Plug-ins, Hosts, Apps,
Hardware, Soundware
Developers
(Brands)
Videos Groups
Whats's in?
Banks & Patches
Download & Upload
Music Search
KVR
   
KVR Forum » DSP and Plug-in Development
Thread Read
Any efficient matrixes for 12 delay line FDNs?
valhallasound
KVRAF
- profile
- pm
- www
PostPosted: Tue Sep 04, 2012 10:44 pm reply with quote
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
^ Joined: 14 Nov 2006  Member: #128465  Location: Pacific NW
mystran
KVRAF
- profile
- pm
- e-mail
- www
PostPosted: Wed Sep 05, 2012 12:19 am reply with quote
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").
----
<- my plugins | my music -> @Soundcloud
^ Joined: 11 Feb 2006  Member: #97939  Location: Helsinki, Finland
Ichad.c
KVRist
- profile
- pm
- e-mail
- www
PostPosted: Wed Sep 05, 2012 9:05 am reply with quote
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 Upside Down
^ Joined: 08 Feb 2012  Member: #274678  Location: South - Africa
valhallasound
KVRAF
- profile
- pm
- www
PostPosted: Wed Sep 05, 2012 5:40 pm reply with quote
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 Upside Down


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
^ Joined: 14 Nov 2006  Member: #128465  Location: Pacific NW
mystran
KVRAF
- profile
- pm
- e-mail
- www
PostPosted: Thu Sep 06, 2012 2:18 am reply with quote
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.
----
<- my plugins | my music -> @Soundcloud
^ Joined: 11 Feb 2006  Member: #97939  Location: Helsinki, Finland
valhallasound
KVRAF
- profile
- pm
- www
PostPosted: Thu Sep 06, 2012 10:25 am reply with quote
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
^ Joined: 14 Nov 2006  Member: #128465  Location: Pacific NW
mystran
KVRAF
- profile
- pm
- e-mail
- www
PostPosted: Fri Sep 07, 2012 5:23 am reply with quote
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.
----
<- my plugins | my music -> @Soundcloud
^ Joined: 11 Feb 2006  Member: #97939  Location: Helsinki, Finland
Ichad.c
KVRist
- profile
- pm
- e-mail
- www
PostPosted: Fri Sep 07, 2012 6:45 am reply with quote
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
valhallasound
KVRAF
- profile
- pm
- www
PostPosted: Fri Sep 07, 2012 10:46 am reply with quote
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
^ Joined: 14 Nov 2006  Member: #128465  Location: Pacific NW
All times are GMT - 8 Hours

Printable version
Page 1 of 1
Display posts from previous:   
ReplyNew TopicPrevious TopicNext Topic
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Username: Password:  
KVR Developer Challenge 2012