[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [sc-users] Re: Resonz x Ringz (gain issues)
At 01:54 PM 12/21/2014, Alexandre Torres Porres wrote:
Howdy, I was plotting the
frequency response of the filter and saw how, in Ringz, maintaining a
fixed gain value of 0.5 doesn't mean the output of the filter is
constant. These are two different matters.
Right - the gain will vary with R
So yeah, the output
changes as a function of both "freq" & "dt".
Thefore I suppose, somehow, things are calculated in a way that the
parameters do indeed relate to a "60 dB decay time". Gonna keep
looking at it.
On the other hand, by plotting the frequency response of Resonz, I see
how it does keep at unity gain around the center
frequency.
That's what the "constant-peak-gain" property refers
to.
This brings me to
one last remark. In my humble oppinion, this is just a Passband filter,
and not a "resonant" one. The resonant counterpart is actually
Ringz, which has the same structure and plot curve, and where you can
specify a ressonance parameter (which, by the way, affects its
bandwidth).
A resonator is a special case of a passband filter having a nearly
zero-width passband. In terms of specification,
"resonance" is often specified by "Q", which is
"resonanceFrequency / Bandwidth".
- Julius
Cheers
2014-12-21 19:10 GMT-02:00 Alexandre Torres Porres
<porres@xxxxxxxxx>:
- 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
<porres@xxxxxxxxx>:
- 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
<porres@xxxxxxxxx>:
- 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
<jos@xxxxxxxxxxxxxxxxxx
>:
- 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/
Julius O. Smith III <jos@xxxxxxxxxxxxxxxxxx>
Professor of Music and, by courtesy, Electrical Engineering
CCRMA, Stanford University
http://ccrma.stanford.edu/~jos/