DSP fine tuning, that metallic diffuser sound
-
Do we have some DSP guru's among us, familiar with reverberation algorithms? I'm having some pain with a diffuser and that typical metallic ringing sound when it decays...
I remember having read somewhere about typical solutions to this but I can't find it anymore. Might even have been in an interview with Sean Costello of Valhalla DSP...not sure if "general question" is the right forum, but there isn't a dsp dedicated one, sorry about that
-
@Morphoice Its true we should have a DSP channel.
What type of reverb algorithm are you dealing with? Is it something you are working in on Faust?
Generally speaking, short feedback delays and sparse diffusion will cause the metallic ringing. This is really noticeable in early implementations like the Schroeder-Moorer Reverb.
I think most current algorithms use some type of feedback delay network (FDN) which slightly modulate the delay times, to stop specific frequencies from building up and causing a ringing. If the algorithm you are working with relies on allpass filters then the same is true, you need to modulate them to prevent standing waves/resonant frequencies.
If you can get your hands on this paper it gives a good overview of the state of the field on reverberation up until 2012: https://www.researchgate.net/publication/296415959_More_Than_50_Years_of_Artificial_Reverberation
-
@Christoph-Hart do you think we could get a DSP category on the forum? It is a good talking point, one which we could see more discussion of. :)
-
@HISEnberg yes it's in faust, i'm basically dismantling their greyhole example algorithm
-
@Morphoice it looks like the greyhole has a modulated delay line in it so make sure that is working properly and you should be all good.
-
The comment on frequency buildup is correct from what I understand.
When you are using reverb algorithms based on FDN, you can get copies of the initial signal that are too perfect, resulting in noticeable ringing artifacts from the phase interactions. The delays need some treatment, especially to model diffusion and material absorption, which will introduce irregularities to the timbre and timing of each reflection.
Modulation can be good, but pitch modulation is not a great idea as most acoustic phenomenon in real spaces do not alter pitch.
-
@VirtualVirgin this is what they use in their example
diffuser_aux(angle, g, scale1, scale2, size, block) = si.bus(2) <: ((si.bus(2):par(i,2,*(c_norm)) : ((si.bus(4) :> si.bus(2) : block : rotator(angle) : (de.fdelay1a(8192, ma.primes(size*scale1):smooth_init(0.9999,ma.primes(size*scale1)) -1), de.fdelay1a(8192, ma.primes(size*scale2):smooth_init(0.9999,ma.primes(size*scale2)) -1))) ~ par(i,2,*(-s_norm))) : par(i,2,mem:*(c_norm))) , par(i,2,*(s_norm))) :> si.bus(2) with { rotator(angle) = si.bus(2) <: (*(c),*(-s),*(s),*(c)) :(+,+) : si.bus(2) with { c = cos(angle); s = sin(angle); }; c_norm = cos(g); s_norm = sin(g); };
-
@Morphoice said in DSP fine tuning, that metallic diffuser sound:
de.fdelay1a
changing to the fdelaylti which uses the Lagrange interpolation turns the tail signal into more of a cymbal ring rather than that annoying thing I had... it sounds actually pretty sweet.
-
@Morphoice said in DSP fine tuning, that metallic diffuser sound:
@Morphoice said in DSP fine tuning, that metallic diffuser sound:
de.fdelay1a
changing to the fdelaylti which uses the Lagrange interpolation turns the tail signal into more of a cymbal ring rather than that annoying thing I had... it sounds actually pretty sweet.
thats a bit odd as the de.fdelay[N]a says they are built using the fdelayltv - whihc is using the Legrange interpolation
-
@Lindon weren't those the Thiran all-pass? what am I mixing up here? It does indeed sound better.