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

By the way, it'd be great if anyone could show the filter equation for Resonz.

It says it's based on K. Steiglitz, "A Note on Constant-Gain Digital Resonators", Computer Music Journal, vol 18, no. 4, pp. 8-10, Winter 1994. But that doesn't really reveal its exact formula.

I read the paper, and it seems it's pretty much the same filter as the [reson~] object for Pd and Max.

Cheers

2014-12-18 16:32 GMT-02:00 Alexandre Torres Porres :
Hello there. I'm trying to figure out Ringz, which seems hard. Since it is supposed to be equivalent to Resonz, a nice way would be to get them both to sound exactly the same. I'm on my way there, but Ringz is sounding way louder and I needed help. I hope there's a formula to convert the gain of the filter from one object to the other, can anyone help me?

So, Resonz ia a 2 pole/zero ressonant filter Based that "freq" & "rq". Ringz takes "dt" (60 dB Ring Delay Time) instead of "rq". I found a conversion formula between "dt" and "rq" according to this thread http://new-supercollider-mailing-lists-forums-use-these.2681727.n2.nabble.com/quot-How-to-emulate-Resonz-with-BBandPass-quot-and-quot-Resonz-X-Ringz-quot-td3635190.html

By the way, it's quite unclear where these formulas come from, any ideas? I'd really like to know that. Anyway, here's how I present the formulas...

// dt as function of "freq" & "rq"

~sr = s.sampleRate;
~freq = 500;
~rq = 0.1

~dt = log(0.001) / (~sr * log(1 - (pi/~sr * ~freq * ~rq)))

//rq as function of freq and dt

~sr * (1 - exp(log(0.001) / (~dt * ~sr))) / (pi * ~freq)

///////////////////////////////////////////////////////////////////////////////////////

The conversion formulas work indeed... and I've tried them to see if they sounded right. You can compare it too. Check it out.

{Resonz.ar(WhiteNoise.ar, 440!2, ~rq)}.play
{Ringz.ar(WhiteNoise.ar, 440!2, ~dt)}.play

About the bandwith of the filter, it does sound equivalent alright. But as you can hear it, Ringz is much louder than Resonz.

By the way, by comparing Resonz * Klank, they both sound about equally loud.

{Ringz.ar(WhiteNoise.ar, 440!2, ~dt)}.play;
{Klank.ar(`[[440], nil, [~dt]], WhiteNoise.ar)!2}.play

So, bottom question, why is it louder? And, more importantly, is there a formula to convert the gain of the filter from one object to the other?

Thanks