# Re: [sc-users] Re: Resonz x Ringz (gain issues)

Julius, thank you very much for your reply. I checked the code and your answer. It's all very clear to me now how the filter works and the gain coefficients differ. I also see now what's the exact formula for the filter coefficients and everything, and it's actually different from the [reson~] object. Perfect.

There's still one thing that still intrigues me and that I'd like to ask the list here. Now that the math is worked out, the issue is more about understanding the concept of the "60 dB decay time".

In my first message, I've showed how to convert to "decay time" from rq and vice-versa (given some frequency). In the code we see how this parameter along with frequency define "R". But in the context of Ringz, a so called "decay time" depends a lot on the gain parameter, as I see it. And "R" doesn't really define the gain parameter in Ringz. It is fixed to 0.5.

On the other hand, R defines the gain parameter in Resonz, which always shifts according to both frequency & rq. And of course, this gain parameter is a lot smaller than 0.5 (so Ringz is much louder as I pointed here in the first message).

So now I can calculate exactly how much louder Ringz is. But I still do not get how "dt" (decay time) actually defines an exact time the filter takes to decay 60dB. You see? I mean, if "dt" is relates to both rq and "freq", shouldn't "dt" also affect the gain parameter like "rq" and "freq"?

I wonder it there's the case where saying this is a "60 dB decay time" parameter is not really accurate. In which case I hope this is corrected in the help file soon.

Obviously I can also be just completely blind and ingnorant on what the "60 dB decay time" parameter is and works. And if so I hope you can help me.

Thanks

ink it's more of a conceptual issue.

2014-12-21 9:57 GMT-02:00 Alexandre Torres Porres :
sorry, I hate when I accidentally hit the shortcut to send a message in chrome...

so it looks like the formula is something like: y[n] =  a0 * (x[n] - x[n-2]+ b1 * y[n-1] + b2 * [yn-2];

pretty close to the pd/max's [reson~] object formula, which is a resonator, and is:
y[n] = g * (x[n] - r * x[n-2]) + c1 * y[n-1] + c2 * y[n-2]

it should most probably be the same thing...

Well, let me get back to figuring out the rest.

thanks!

2014-12-21 9:54 GMT-02:00 Alexandre Torres Porres :

so it looks like the formula is something like: y[n] =  a0 * (x[n]x[n-2]+ b1 * y[n-1] + b2 * [yn-2];

pretty close to the [reson

2014-12-20 22:08 GMT-02:00 Julius Smith :

At 02:54 PM 12/20/2014, Alexandre Torres Porres wrote:
HI, meanwhile I digest and sort about the ring decay time, something called my attention. By looking at the code.

"y0 = ZXP(in) + b1 * y1 + b2 * y2;
Â Â Â  ZXP(out) = a0 * (y0 - y2);
Â Â Â  y2 = y1;
Â Â Â  y1 = y0;
"

I can't see how it is a two pole and two zeros filter. I only see feedback coefficients (b1 * b2). What am I missing? Or is it a two pole with no zeros?

The term y0-y2 straddles two samples, giving a zero at z=1 and another at z=-1, as needed for the constant-peak-gain property.

- Julius

Julius O. Smith III <jos@xxxxxxxxxxxxxxxxxx>
Professor of Music and, by courtesy, Electrical Engineering
CCRMA, Stanford University
http://ccrma.stanford.edu/~jos/