[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [sc-users] Re: Resonz x Ringz (gain issues)
At 01:10 PM 12/21/2014, Alexandre Torres Porres wrote:
...
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".
We normally call it t60, and it depends only on R, not
resonance-frequency or gain.
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".
R does not depend on frequency.
But in the context of
Ringz, a so called "decay time" depends a lot on the gain
parameter, as I see it.
Gain is often set to compensate the total energy. A longer t60
means more energy in the impulse response, unless gain is changed to
compensate.
And "R" doesn't
really define the gain parameter in Ringz. It is fixed to
0.5.
Yes, the gain compensation is optional.
On the other hand, R defines the
gain parameter in Resonz,
I would rather say gain is chosen as a function of R.
which always shifts according to
both frequency & rq.
R does not depend on frequency.
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).
Right
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 tried to state this conversion formula in my first reply (but didn't
test it, or even write down the exact version, because I was trying to do
everything in my head). If you can derive the approximate formula I
gave involving 6.91, then you are there.
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.
Right - Ringz defines R based on t60, so "60 dB decay time" is
right for it. Resonz defines R as 1 - B/2, where B is bandwidh in
some units, so R is NOT defined to set t60. By the way, I see a bug
in my first email: pi * BandwidthInHz * SamplingRateInHz makes no sense
(wrong units). It is most likely pi * BandwidthInHz /
SamplingRateInHz, so then "radians per sample" would really
mean "pi times seconds per sample", which is pretty strange,
but pi * B / samplingRateInHz is commonly used for this situation.
It comes from mapping 3dB bandwidth from the s plane to the z plane (not
from t60 considerations).
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.
It works (t60 = decay time), and 1/t60 is approximately proportional to
any reasonable definition of bandwidth, but to precisely convert Ringz's
R to Resonz's R, you need to use the conversion formula I outlined (the
approximate version may be good enough to sound the same). If you
have trouble deriving it, let me know and I'll go find a pen and piece of
paper. :-)
- Julius
Julius O. Smith III <jos@xxxxxxxxxxxxxxxxxx>
Professor of Music and, by courtesy, Electrical Engineering
CCRMA, Stanford University
http://ccrma.stanford.edu/~jos/