hello
(still talking about the |vcf~| filter)
as there doesn't seem to be any simple nor complex mathematical relationnship between Q, cutoff frequency and level factor (|*~|) for having a constant output level, I am now trying to find something empirical ...
I made a table that gives the level factor you need to keep the same level when you change Q the source is a |noise~| and the amplitude is measured by |env~|, and 'f' refers to the required level factor, which was found empirically (and quickly) I attached the test patch
some values for vcf~_cutoff=50 Hz: Q=0 -- f=1 Q=1 -- f=15 Q=2 -- f=20 Q=3 -- f=24.5 Q=4 -- f=28 Q=10 -- f=42 Q=20 -- f=60 Q=40 -- f=86
some values for vcf~_cutoff=12800 Hz: Q=0 -- f=1 Q=1 -- f=0.75 (see the remark2 below) Q=2 -- f=0.8 (see the remark2 below) Q=4 -- f=1.35 Q=20 -- f=3.4 Q=40 -- f=5
remark1: for a constant Q, multiplying the cutov by 2 adds +3 to the output value of |env~| (resp. dividing, -3)
remark2: for Q=1 or Q=2 at 12800 Hz, the filter should normally not increase the volume of the signal like this ... maybe it's due to some software implementation contraints (?)
also, do you think the method I used for measuring is correct ?
any suggestion, idea, web link about this, etc will be appreciated a lot ... I will try to use a logarithmic-based compensation factor now
cheers, -j
hi
i would have done it like you did, i don't know any better mehtod yet. maybe one little thing came up, when i tested [vcf~] with your patch. afaik, it makes more sense to use a pink noise instead of [noise~], which produces white noise. the difference is, that in pink noise the amount of energy is constant per octave (logarithmic), where in white noise it is constant per frequency bandwith (<-may not the correct expression, i mean linear: 100-200Hz has the same energy as 10100-10200Hz). afaik, the q-factor of [vcf~] refers to the logarithmic scale, as our ears do. this (at least partly) explains why you get such low q-values in the high regions to keep the level constant. i'm not quite sure, but i think, another reason could be, that filters tend to get an unlinear behaviour somehow, the closer the cutoff-freq gets to the nyquist-frequency. you will get different results, when you change the fs. this probably makes it difficult to calculate in detail the behaviour of [vcf~]. maybe someone else has a more 'academic' explanation for that behaviour. by the way: if anybody knows an external for producing pink noise, please let me know.
cheers roman
----- Original Message ----- From: julien.breval@tremplin-utc.net To: pd-list@iem.at
hello
(still talking about the |vcf~| filter)
as there doesn't seem to be any simple nor complex mathematical
relationnship
between Q, cutoff frequency and level factor (|*~|) for having a
constant output
level, I am now trying to find something empirical ...
I made a table that gives the level factor you need to keep the same
level when
you change Q the source is a |noise~| and the amplitude is measured by |env~|, and
'f' refers
to the required level factor, which was found empirically (and
quickly)
I attached the test patch
some values for vcf~_cutoff=50 Hz: Q=0 -- f=1 Q=1 -- f=15 Q=2 -- f=20 Q=3 -- f=24.5 Q=4 -- f=28 Q=10 -- f=42 Q=20 -- f=60 Q=40 -- f=86
some values for vcf~_cutoff=12800 Hz: Q=0 -- f=1 Q=1 -- f=0.75 (see the remark2 below) Q=2 -- f=0.8 (see the remark2 below) Q=4 -- f=1.35 Q=20 -- f=3.4 Q=40 -- f=5
remark1: for a constant Q, multiplying the cutov by 2 adds +3 to the
output
value of |env~| (resp. dividing, -3)
remark2: for Q=1 or Q=2 at 12800 Hz, the filter should normally not
increase the
volume of the signal like this ... maybe it's due to some software implementation contraints (?)
also, do you think the method I used for measuring is correct ?
any suggestion, idea, web link about this, etc will be appreciated a
lot ...
I will try to use a logarithmic-based compensation factor now
cheers, -j
filters tend to get an unlinear behaviour somehow, the closer the cutoff-freq gets to the nyquist-frequency. maybe someone else has a more 'academic' explanation for that behaviour.
yeah, here goes:
considering the filter in the z-plane, the poles (associated with the peak of the filter) occur in pairs: one is the conjugate of the other. This means that as you move the pole around from zero to pi, another pole mimics this, whose position is the same but reflected in the real axis. As you approach zero or pi, the peaks begin to merge into one, so there is a less rapid fall-off rate. Also the overall gain tends to increase for these regions, if fed white noise. This is simply to do with the superposition of the two responses (+ve and -ve freqs). The picture attached shows the response with a single pole at radius 0.6, first at pi/2 (black) and second at 4pi/5 (red).
Than again, if I'm talking crap please correct me!
Matt
-=-=-=-=-=-=-=-=-=-=-=- http://www.loopit.org -=-=-=-=-=-=-=-=-=-=-=-
hi
wow, thanx for this post. this doesn't sound like crap at all...:-)
roman
----- Original Message ----- From: "matthew jones" mj@isvr.soton.ac.uk To: "PD-List" pd-list@iem.kug.ac.at; "Roman Haefeli" reduzierer@yahoo.de Sent: Wednesday, March 09, 2005 2:31 PM Subject: Re: [PD] more |vcf~| things
filters tend to get an unlinear behaviour somehow, the closer the cutoff-freq gets
to
the nyquist-frequency. maybe someone else has a more 'academic' explanation for that
behaviour.
yeah, here goes:
considering the filter in the z-plane, the poles (associated with the
peak
of the filter) occur in pairs: one is the conjugate of the other.
This
means that as you move the pole around from zero to pi, another pole
mimics
this, whose position is the same but reflected in the real axis. As
you
approach zero or pi, the peaks begin to merge into one, so there is a
less
rapid fall-off rate. Also the overall gain tends to increase for these regions, if fed
white
noise. This is simply to do with the superposition of the two
responses
(+ve and -ve freqs). The picture attached shows the response with a
single
pole at radius 0.6, first at pi/2 (black) and second at 4pi/5 (red).
Than again, if I'm talking crap please correct me!
Matt
-=-=-=-=-=-=-=-=-=-=-=- http://www.loopit.org -=-=-=-=-=-=-=-=-=-=-=-
thank you all for your replies
I didn't have the time to find a solution today, but I hope it will help
regards, -j
AFAIK the vcf~ is a complex resonator filter, so it only has one pole. The outputs of the vcf~ are real and imaginary part of the complex signal. There is a nice description from Julius Smith on the CCRMA web:
http://ccrma.stanford.edu/~jos/filters/Complex_Resonator.html
Guenter
On Wed, 9 Mar 2005, matthew jones wrote:
filters tend to get an unlinear behaviour somehow, the closer the cutoff-freq gets to the nyquist-frequency. maybe someone else has a more 'academic' explanation for that behaviour.
yeah, here goes:
considering the filter in the z-plane, the poles (associated with the peak of the filter) occur in pairs: one is the conjugate of the other. This means that as you move the pole around from zero to pi, another pole mimics this, whose position is the same but reflected in the real axis. As you approach zero or pi, the peaks begin to merge into one, so there is a less rapid fall-off rate. Also the overall gain tends to increase for these regions, if fed white noise. This is simply to do with the superposition of the two responses (+ve and -ve freqs). The picture attached shows the response with a single pole at radius 0.6, first at pi/2 (black) and second at 4pi/5 (red).
Than again, if I'm talking crap please correct me!
Matt
-=-=-=-=-=-=-=-=-=-=-=- http://www.loopit.org -=-=-=-=-=-=-=-=-=-=-=-
On Wed, 9 Mar 2005 julien.breval@tremplin-utc.net wrote:
some values for vcf~_cutoff=50 Hz: Q=0 -- f=1 Q=1 -- f=15 Q=2 -- f=20 Q=3 -- f=24.5 Q=4 -- f=28 Q=10 -- f=42 Q=20 -- f=60 Q=40 -- f=86
This looks pretty close to f = 13.5 sqrt(Q), what do you think?
any suggestion, idea, web link about this, etc will be appreciated a lot ... I will try to use a logarithmic-based compensation factor now
logarithmic is not an appropriate correction in this case.
Mathieu Bouchard -=- Montréal QC Canada -=- http://artengine.ca/matju
Selon Mathieu Bouchard matju@sympatico.ca:
On Wed, 9 Mar 2005 julien.breval@tremplin-utc.net wrote:
some values for vcf~_cutoff=50 Hz: Q=0 -- f=1 Q=1 -- f=15 Q=2 -- f=20 Q=3 -- f=24.5 Q=4 -- f=28 Q=10 -- f=42 Q=20 -- f=60 Q=40 -- f=86
This looks pretty close to f = 13.5 sqrt(Q), what do you think?
yes, it's a good relationnship for this particular cutoff
I admit that some time ago, I used f = sqrt(Q) during a concert (at least, it was satisfying for the music)
so maybe the right formula could be f = k * sqrt(Q), with k to be defined in function of the cutoff frequency ... I also have to read the ccrma paper that gunter told me about
thanks for this 13.5 idea, -j