Hi there. I'm trying to find a way to plot the frequency response of [bp~].
I know of patches that can plot from biquad coefficients, so it'd be great if I could get biquad coefficients from an input of frequency and Q.
I see [bp~] is a 2 pole filter. So does it mean I can achieve it by zeroing out a bandpass filter made with [biquad~]? Cause I see people make bandpass filters with 2poles in biquad, but the zeros are at -1 and 1. I tried zero values of zero, but it didn't look to good to make me believe that's the same as [bp~].
I know of miller's example H10.measurement.pd, and compared to it, didn't seem to fit.
Anyway, I wanted something that would plot [bp~] right away, not like the H10 example, which takes some time. But then, if we can't do it with biquad coefficients, I would need some guidelines to do it some other how.
Thanks
Cheers
I know about filterview and patch
The quick and dirty way is just to feed the filter white noise and plot the output signal's spectrum. Guaranteed to show the actual performance of the filter, and not somebody's idea of how it ought to be working.
If you need a theoretical curve, I'd start with a look at the [bp~] source
to see if you can extract some hints about how the filter is implemented.
It may be quite easy to figure out the poles and zeros if the code is clear
and/or documented.
Good luck! Bill Gribble
"I'd start with a look at the [bp~] source to see if you can extract some hints about how the filter is implemented."
Done that, way out of my head. What I can deal with is wether I can get to it with biquad coefficients.
thanks
2014-04-08 21:28 GMT-03:00 Bill Gribble grib@billgribble.com:
The quick and dirty way is just to feed the filter white noise and plot the output signal's spectrum. Guaranteed to show the actual performance of the filter, and not somebody's idea of how it ought to be working.
If you need a theoretical curve, I'd start with a look at the [bp~] source to see if you can extract some hints about how the filter is implemented. It may be quite easy to figure out the poles and zeros if the code is clear and/or documented.
Good luck! Bill Gribble
"I'd start with a look at the [bp~] source to see if you can extract some hints about how the filter is implemented."
Anyway, this is what I got from the code. But I wasn't successful to extract biquad coefficients from it. I still assume it can be done. It says it's a 2-pole bandpass filter, so I understand you can get to it with biquad, cause biquad is 2-pole and 2-zero. It's just a matter to get rid of the zeros somehow. I was able to leave them with a vlue of 0, but didn't seem to do the job.
thanks
static t_float sigbp_qcos(t_float f)
{
if (f >= -(0.5f*3.14159f) && f <= 0.5f*3.14159f)
{
t_float g = f*f;
return (((g*g*g * (-1.0f/720.0f) + g*g*(1.0f/24.0f)) - g*0.5) + 1);
}
else return (0);
}
static void sigbp_docoef(t_sigbp *x, t_floatarg f, t_floatarg q)
{
t_float r, oneminusr, omega;
if (f < 0.001) f = 10;
if (q < 0) q = 0;
x->x_freq = f;
x->x_q = q;
omega = f * (2.0f * 3.14159f) / x->x_sr;
if (q < 0.001) oneminusr = 1.0f;
else oneminusr = omega/q;
if (oneminusr > 1.0f) oneminusr = 1.0f;
r = 1.0f - oneminusr;
x->x_ctl->c_coef1 = 2.0f * sigbp_qcos(omega) * r;
x->x_ctl->c_coef2 = - r * r;
x->x_ctl->c_gain = 2 * oneminusr * (oneminusr + r * omega);
/* post("r %f, omega %f, coef1 %f, coef2 %f",
r, omega, x->x_ctl->c_coef1, x->x_ctl->c_coef2); */
}
2014-04-08 22:21 GMT-03:00 Alexandre Torres Porres porres@gmail.com:
"I'd start with a look at the [bp~] source to see if you can extract some hints about how the filter is implemented."
Done that, way out of my head. What I can deal with is wether I can get to it with biquad coefficients.
thanks
2014-04-08 21:28 GMT-03:00 Bill Gribble grib@billgribble.com:
The quick and dirty way is just to feed the filter white noise and plot
the output signal's spectrum. Guaranteed to show the actual performance of the filter, and not somebody's idea of how it ought to be working.
If you need a theoretical curve, I'd start with a look at the [bp~] source to see if you can extract some hints about how the filter is implemented. It may be quite easy to figure out the poles and zeros if the code is clear and/or documented.
Good luck! Bill Gribble
hey, the code I sent only calculates the coeficients, but I left out an important part which is
t_sample output = *in++ + coef1 * last + coef2 * prev;
*out++ = gain * output;
prev = last;
last = output;
This shows how the filter is done with those coefficients
It's easy to implement this with [fexpr~], it goes something like:
[fexpr~ $x + (coef1 * $x1[-1]) + (coef2 * $x1[-2])]
It's seems this formula can also be achieved done with biquad, which receives a list where the first two elements are the same coefficients.
But it still doesn't seem it is as simple as that. Maybe there's also something regarding the gain of the filter or something.
Hope the wizards can help me solve this
Cheers
2014-04-09 14:20 GMT-03:00 Alexandre Torres Porres porres@gmail.com:
"I'd start with a look at the [bp~] source to see if you can extract some hints about how the filter is implemented."
Anyway, this is what I got from the code. But I wasn't successful to extract biquad coefficients from it. I still assume it can be done. It says it's a 2-pole bandpass filter, so I understand you can get to it with biquad, cause biquad is 2-pole and 2-zero. It's just a matter to get rid of the zeros somehow. I was able to leave them with a vlue of 0, but didn't seem to do the job.
thanks
static t_float sigbp_qcos(t_float f)
{
if (f >= -(0.5f*3.14159f) && f <= 0.5f*3.14159f) { t_float g = f*f; return (((g*g*g * (-1.0f/720.0f) + g*g*(1.0f/24.0f)) - g*0.5) + 1
);
} else return (0);
}
static void sigbp_docoef(t_sigbp *x, t_floatarg f, t_floatarg q)
{
t_float r, oneminusr, omega; if (f < 0.001) f = 10; if (q < 0) q = 0; x->x_freq = f; x->x_q = q; omega = f * (2.0f * 3.14159f) / x->x_sr; if (q < 0.001) oneminusr = 1.0f; else oneminusr = omega/q; if (oneminusr > 1.0f) oneminusr = 1.0f; r = 1.0f - oneminusr; x->x_ctl->c_coef1 = 2.0f * sigbp_qcos(omega) * r; x->x_ctl->c_coef2 = - r * r; x->x_ctl->c_gain = 2 * oneminusr * (oneminusr + r * omega); /* post("r %f, omega %f, coef1 %f, coef2 %f", r, omega, x->x_ctl->c_coef1, x->x_ctl->c_coef2); */
}
2014-04-08 22:21 GMT-03:00 Alexandre Torres Porres porres@gmail.com:
"I'd start with a look at the [bp~] source to see if you can extract some
hints about how the filter is implemented."
Done that, way out of my head. What I can deal with is wether I can get to it with biquad coefficients.
thanks
2014-04-08 21:28 GMT-03:00 Bill Gribble grib@billgribble.com:
The quick and dirty way is just to feed the filter white noise and
plot the output signal's spectrum. Guaranteed to show the actual performance of the filter, and not somebody's idea of how it ought to be working.
If you need a theoretical curve, I'd start with a look at the [bp~] source to see if you can extract some hints about how the filter is implemented. It may be quite easy to figure out the poles and zeros if the code is clear and/or documented.
Good luck! Bill Gribble
well, here's an attempt to make bp out of [fexpr~]
and... it did not work
2014-04-10 22:07 GMT-03:00 Alexandre Torres Porres porres@gmail.com:
hey, the code I sent only calculates the coeficients, but I left out an important part which is
t_sample output = *in++ + coef1 * last + coef2 * prev;
*out++ = gain * output; prev = last; last = output;
This shows how the filter is done with those coefficients
It's easy to implement this with [fexpr~], it goes something like:
[fexpr~ $x + (coef1 * $x1[-1]) + (coef2 * $x1[-2])]
It's seems this formula can also be achieved done with biquad, which receives a list where the first two elements are the same coefficients.
But it still doesn't seem it is as simple as that. Maybe there's also something regarding the gain of the filter or something.
Hope the wizards can help me solve this
Cheers
2014-04-09 14:20 GMT-03:00 Alexandre Torres Porres porres@gmail.com:
"I'd start with a look at the [bp~] source to see if you can extract some
hints about how the filter is implemented."
Anyway, this is what I got from the code. But I wasn't successful to extract biquad coefficients from it. I still assume it can be done. It says it's a 2-pole bandpass filter, so I understand you can get to it with biquad, cause biquad is 2-pole and 2-zero. It's just a matter to get rid of the zeros somehow. I was able to leave them with a vlue of 0, but didn't seem to do the job.
thanks
static t_float sigbp_qcos(t_float f)
{
if (f >= -(0.5f*3.14159f) && f <= 0.5f*3.14159f) { t_float g = f*f; return (((g*g*g * (-1.0f/720.0f) + g*g*(1.0f/24.0f)) - g*0.5) + 1
);
} else return (0);
}
static void sigbp_docoef(t_sigbp *x, t_floatarg f, t_floatarg q)
{
t_float r, oneminusr, omega; if (f < 0.001) f = 10; if (q < 0) q = 0; x->x_freq = f; x->x_q = q; omega = f * (2.0f * 3.14159f) / x->x_sr; if (q < 0.001) oneminusr = 1.0f; else oneminusr = omega/q; if (oneminusr > 1.0f) oneminusr = 1.0f; r = 1.0f - oneminusr; x->x_ctl->c_coef1 = 2.0f * sigbp_qcos(omega) * r; x->x_ctl->c_coef2 = - r * r; x->x_ctl->c_gain = 2 * oneminusr * (oneminusr + r * omega); /* post("r %f, omega %f, coef1 %f, coef2 %f", r, omega, x->x_ctl->c_coef1, x->x_ctl->c_coef2); */
}
2014-04-08 22:21 GMT-03:00 Alexandre Torres Porres porres@gmail.com:
"I'd start with a look at the [bp~] source to see if you can extract
some hints about how the filter is implemented."
Done that, way out of my head. What I can deal with is wether I can get to it with biquad coefficients.
thanks
2014-04-08 21:28 GMT-03:00 Bill Gribble grib@billgribble.com:
The quick and dirty way is just to feed the filter white noise and
plot the output signal's spectrum. Guaranteed to show the actual performance of the filter, and not somebody's idea of how it ought to be working.
If you need a theoretical curve, I'd start with a look at the [bp~] source to see if you can extract some hints about how the filter is implemented. It may be quite easy to figure out the poles and zeros if the code is clear and/or documented.
Good luck! Bill Gribble
On 11.04.2014, at 03:07, Alexandre Torres Porres wrote:
hey, the code I sent only calculates the coeficients, but I left out an important part which is
t_sample output = *in++ + coef1 * last + coef2 * prev;
*out++ = gain * output; prev = last; last = output;
This shows how the filter is done with those coefficients
It's easy to implement this with [fexpr~], it goes something like:
[fexpr~ $x + (coef1 * $x1[-1]) + (coef2 * $x1[-2])]
"last" and "prev" are the last two _output_ samples. i don't know fexpr~ very well, but it looks like you try to access the last _input_ samples. vb
""last" and "prev" are the last two _output_ samples. i don't know fexpr~ very well, but it looks like you try to access the last _input_ samples."
In [fexpr~] you can access input samples with $x variables and output samples with $y. So you're correct. I'm going for the input samples.
But I did it because I believe "last" and "prev" in this formula are in fact about input samples. And I still do. The reason being that I checked the code of other objects like [biquad~], and "last" and "prev" where names used both for input and output operations, the difference being that the math for the output operation was something like *out++ + coef1 * last + coef2 * prev instead of *in++ + coef1 * last + coef2 * prev (like bp~) .
So I feel pretty strong about getting this [fexpr~] right. Is there anything I did not take into consideration?
One way or another, input or output samples, seems pretty clear to me you could achieve [bp~] with [biquad~] coefficients. I think the tricky part now is getting to the coefficients and gain values.
Cheers
2014-04-11 3:23 GMT-03:00 volker böhm vboehm@gmx.ch:
On 11.04.2014, at 03:07, Alexandre Torres Porres wrote:
hey, the code I sent only calculates the coeficients, but I left out an
important part which is
t_sample output = *in++ + coef1 * last + coef2 * prev;
*out++ = gain * output; prev = last; last = output;
This shows how the filter is done with those coefficients
It's easy to implement this with [fexpr~], it goes something like:
[fexpr~ $x + (coef1 * $x1[-1]) + (coef2 * $x1[-2])]
"last" and "prev" are the last two _output_ samples. i don't know fexpr~ very well, but it looks like you try to access the last _input_ samples. vb
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On 11.04.2014, at 16:48, Alexandre Torres Porres wrote:
""last" and "prev" are the last two _output_ samples. i don't know fexpr~ very well, but it looks like you try to access the last _input_ samples."
In [fexpr~] you can access input samples with $x variables and output samples with $y. So you're correct. I'm going for the input samples.
But I did it because I believe "last" and "prev" in this formula are in fact about input samples.
no, and it's pretty easy to see that from the code you quoted:
t_sample output = *in++ + coef1 * last + coef2 * prev;
*out++ = gain * output; prev = last; last = output;
after all it's a resonating filter and therefore needs a feedback path. so it somehow has to take outgoing samples back in.
So I feel pretty strong about getting this [fexpr~] right. Is there anything I did not take into consideration?
yes, calculate coef1, coef2 and gain by using the formulas from the code, change the [fexpr~] to something like [ fexpr~ $x[0] + ($f2 * $y[-1]) + ($f3 * $y[-2]) ], (where $f2 and $f3 would be coef1 and coef2 resp.) apply the gain factor afterwards, and you are done.
vb
change the [fexpr~] to something like [fexpr~ $x[0] + ($f2 * $y[-1]) + ($f3 * $y[-2])]
f*ck, I'll be damned, now my patch that implements [bp~] with [fexpr~] seems to work, it's attached. Thanks!
it's pretty easy to see that from the code you quoted
I can't really see it from the code itself. And, well, remember I mentioned about the biquad code?
{
t_sample output = *in++ + fb1 * last + fb2 * prev;
if (PD_BIGORSMALL(output))
output = 0;
*out++ = ff1 * output + ff2 * last + ff3 * prev;
prev = last;
last = output;
}
Well, I made a silly confusion mistake and thought the first line was feedforward (and then equivalent to the bp~). But still, it could be it for all I can tell. How can you actually see wether is feedback or not?
Anyway, the patch works and I can also make it on biquad, it's all attached.
after all it's a resonating filter and therefore needs a feedback path.
I wouldn't know about that, but that's how you convinced me you knew what you were talking about :)
Thanks again
2014-04-11 16:46 GMT-03:00 volker böhm vboehm@gmx.ch:
On 11.04.2014, at 16:48, Alexandre Torres Porres wrote:
""last" and "prev" are the last two _output_ samples. i don't know fexpr~ very well, but it looks like you try to access the
last _input_ samples."
In [fexpr~] you can access input samples with $x variables and output
samples with $y. So you're correct. I'm going for the input samples.
But I did it because I believe "last" and "prev" in this formula are in
fact about input samples.
no, and it's pretty easy to see that from the code you quoted:
t_sample output = *in++ + coef1 * last + coef2 * prev;
*out++ = gain * output; prev = last; last = output;
after all it's a resonating filter and therefore needs a feedback path. so it somehow has to take outgoing samples back in.
So I feel pretty strong about getting this [fexpr~] right. Is there
anything I did not take into consideration?
yes, calculate coef1, coef2 and gain by using the formulas from the code, change the [fexpr~] to something like [ fexpr~ $x[0] + ($f2 * $y[-1]) + ($f3 * $y[-2]) ], (where $f2 and $f3 would be coef1 and coef2 resp.) apply the gain factor afterwards, and you are done.
vb
Le 12/04/2014 08:45, Alexandre Torres Porres a écrit :
change the [fexpr~] to something like [fexpr~ $x[0] + ($f2 * $y[-1]) + ($f3 * $y[-2])]
f*ck, I'll be damned, now my patch that implements [bp~] with [fexpr~] seems to work, it's attached. Thanks!
thanks for the share, when I tried to implement filters with expr and biquad I haven't been able to get it working fully (some clics appeared when changing frequency)... Your implementation works very well in both cases, "chapeau bas"
it's pretty easy to see that from the code you quoted
I can't really see it from the code itself. And, well, remember I mentioned about the biquad code?
{ t_sample output = *in++ + fb1 * last + fb2 * prev; if (PD_BIGORSMALL(output)) output = 0; *out++ = ff1 * output + ff2 * last + ff3 * prev; prev = last; last = output; }
Well, I made a silly confusion mistake and thought the first line was feedforward (and then equivalent to the bp~). But still, it could be it for all I can tell. How can you actually see wether is feedback or not?
Anyway, the patch works and I can also make it on biquad, it's all attached.
after all it's a resonating filter and therefore needs a feedback path.
I wouldn't know about that, but that's how you convinced me you knew what you were talking about :)
Thanks again
2014-04-11 16:46 GMT-03:00 volker böhm <vboehm@gmx.ch mailto:vboehm@gmx.ch>:
On 11.04.2014, at 16:48, Alexandre Torres Porres wrote: > ""last" and "prev" are the last two _output_ samples. > i don't know fexpr~ very well, but it looks like you try to access the last _input_ samples." > > In [fexpr~] you can access input samples with $x variables and output samples with $y. So you're correct. I'm going for the input samples. > > But I did it because I believe "last" and "prev" in this formula are in fact about input samples. no, and it's pretty easy to see that from the code you quoted: > > t_sample output = *in++ + coef1 * last + coef2 * prev; > > > > *out++ = gain * output; > > > > prev = last; > > > > last = output; after all it's a resonating filter and therefore needs a feedback path. so it somehow has to take outgoing samples back in. > So I feel pretty strong about getting this [fexpr~] right. Is there anything I did not take into consideration? yes, calculate coef1, coef2 and gain by using the formulas from the code, change the [fexpr~] to something like [ fexpr~ $x[0] + ($f2 * $y[-1]) + ($f3 * $y[-2]) ], (where $f2 and $f3 would be coef1 and coef2 resp.) apply the gain factor afterwards, and you are done. vb
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
there are incremnents to do still, but thanks :)
2014-04-12 9:25 GMT-03:00 patrice colet colet.patrice@free.fr:
Le 12/04/2014 08:45, Alexandre Torres Porres a écrit :
change the [fexpr~] to something like [fexpr~ $x[0] + ($f2 * $y[-1]) + ($f3 * $y[-2])]
f*ck, I'll be damned, now my patch that implements [bp~] with [fexpr~] seems to work, it's attached. Thanks!
thanks for the share, when I tried to implement filters with expr and biquad I haven't been able to get it working fully (some clics appeared when changing frequency)... Your implementation works very well in both cases, "chapeau bas"
it's pretty easy to see that from the code you quoted
I can't really see it from the code itself. And, well, remember I mentioned about the biquad code?
{ t_sample output = *in++ + fb1 * last + fb2 * prev; if (PD_BIGORSMALL(output)) output = 0; *out++ = ff1 * output + ff2 * last + ff3 * prev; prev = last; last = output; }
Well, I made a silly confusion mistake and thought the first line was feedforward (and then equivalent to the bp~). But still, it could be it for all I can tell. How can you actually see wether is feedback or not?
Anyway, the patch works and I can also make it on biquad, it's all attached.
after all it's a resonating filter and therefore needs a feedback path.
I wouldn't know about that, but that's how you convinced me you knew what you were talking about :)
Thanks again
2014-04-11 16:46 GMT-03:00 volker böhm vboehm@gmx.ch:
On 11.04.2014, at 16:48, Alexandre Torres Porres wrote:
""last" and "prev" are the last two _output_ samples. i don't know fexpr~ very well, but it looks like you try to access the
last _input_ samples."
In [fexpr~] you can access input samples with $x variables and output
samples with $y. So you're correct. I'm going for the input samples.
But I did it because I believe "last" and "prev" in this formula are in
fact about input samples.
no, and it's pretty easy to see that from the code you quoted:
t_sample output = *in++ + coef1 * last + coef2 * prev;
*out++ = gain * output; prev = last; last = output;
after all it's a resonating filter and therefore needs a feedback path. so it somehow has to take outgoing samples back in.
So I feel pretty strong about getting this [fexpr~] right. Is there
anything I did not take into consideration?
yes, calculate coef1, coef2 and gain by using the formulas from the code, change the [fexpr~] to something like [ fexpr~ $x[0] + ($f2 * $y[-1]) + ($f3 * $y[-2]) ], (where $f2 and $f3 would be coef1 and coef2 resp.) apply the gain factor afterwards, and you are done.
vb
_______________________________________________Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Sam, 2014-04-12 at 03:45 -0300, Alexandre Torres Porres wrote:
change the [fexpr~] to something like [fexpr~ $x[0] + ($f2 * $y[-1]) + ($f3 * $y[-2])]
f*ck, I'll be damned, now my patch that implements [bp~] with [fexpr~] seems to work, it's attached. Thanks!
That is great! I never really dug into that topic, but having it as a patch makes it more accessible I think, at least for me.
Thanks for sharing.
Roman
now trying to make [vcf~], that looks like a toughy... :P
2014-04-12 17:07 GMT-03:00 Roman Haefeli reduzent@gmail.com:
On Sam, 2014-04-12 at 03:45 -0300, Alexandre Torres Porres wrote:
change the [fexpr~] to something like [fexpr~ $x[0] + ($f2 * $y[-1]) + ($f3 * $y[-2])]
f*ck, I'll be damned, now my patch that implements [bp~] with [fexpr~] seems to work, it's attached. Thanks!
That is great! I never really dug into that topic, but having it as a patch makes it more accessible I think, at least for me.
Thanks for sharing.
Roman
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
On 2014-04-12 08:45, Alexandre Torres Porres wrote:
{ t_sample output = *in++ + fb1 * last + fb2 * prev; if (PD_BIGORSMALL(output)) output = 0; *out++ = ff1 * output + ff2 * last + ff3 * prev; prev = last; last = output; }
Well, I made a silly confusion mistake and thought the first line was feedforward (and then equivalent to the bp~). But still, it could be it for all I can tell. How can you actually see wether is feedback or not?
stupid way: the coefficients are called "fb1" and "fb2"; "fb" is an abbreviation for "feedback", so this might have put you onto the right track.
complicated way: "last" and "prev" refer to past output samples (as has been mentioned in other emails), and using old output to generate new output is the definition of feedback.
fgmasdr IOhannes
Le 09/04/2014 01:45, Alexandre Torres Porres a écrit :
Hi there. I'm trying to find a way to plot the frequency response of [bp~].
Hello, I don't know if it helps, in ggee there are filter objects that are applying formula for biquad coefficients, it's easy to use those formula in expr and apply them to biquad object in vanilla.
I know of patches that can plot from biquad coefficients, so it'd be great if I could get biquad coefficients from an input of frequency and Q.
I see [bp~] is a 2 pole filter. So does it mean I can achieve it by zeroing out a bandpass filter made with [biquad~]? Cause I see people make bandpass filters with 2poles in biquad, but the zeros are at -1 and 1. I tried zero values of zero, but it didn't look to good to make me believe that's the same as [bp~].
I know of miller's example H10.measurement.pd, and compared to it, didn't seem to fit.
Anyway, I wanted something that would plot [bp~] right away, not like the H10 example, which takes some time. But then, if we can't do it with biquad coefficients, I would need some guidelines to do it some other how.
Thanks
Cheers
I know about filterview and patch
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hi, that is the way I'm pointing to. I know of those but it's a bit more complicated than that. Those bypass fiters have zero values of -1 and 1, while [bp~] has only pole values. So my question is if I can achieve [bp~] by only turning the zero values of -1 and 1 to 0. I actually tried it and it didn't seem to do the trick.
Maybe I'm doing something wrong. I don't know. It'd solve my issue if I could have [bp~] as biquad coefficients. But if not, I'd need some guidelines on how to plot the frequency response in the same way as [filterview] or [mmb.filterplot] plot the biquad coefficients.
Cheers
2014-04-09 8:30 GMT-03:00 Colet Patrice colet.patrice@free.fr:
Le 09/04/2014 01:45, Alexandre Torres Porres a écrit :
Hi there. I'm trying to find a way to plot the frequency response of [bp~].
Hello, I don't know if it helps, in ggee there are filter objects that are applying formula for biquad coefficients, it's easy to use those formula in expr and apply them to biquad object in vanilla.
I know of patches that can plot from biquad coefficients, so it'd be great if I could get biquad coefficients from an input of frequency and Q.
I see [bp~] is a 2 pole filter. So does it mean I can achieve it by zeroing out a bandpass filter made with [biquad~]? Cause I see people make bandpass filters with 2poles in biquad, but the zeros are at -1 and 1. I tried zero values of zero, but it didn't look to good to make me believe that's the same as [bp~].
I know of miller's example H10.measurement.pd, and compared to it, didn't seem to fit.
Anyway, I wanted something that would plot [bp~] right away, not like the H10 example, which takes some time. But then, if we can't do it with biquad coefficients, I would need some guidelines to do it some other how.
Thanks
Cheers
I know about filterview and patch
_______________________________________________Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
"Those bypass fiters"
oops, meant "Those bandpass filters"
2014-04-09 9:59 GMT-03:00 Alexandre Torres Porres porres@gmail.com:
Hi, that is the way I'm pointing to. I know of those but it's a bit more complicated than that. Those bypass fiters have zero values of -1 and 1, while [bp~] has only pole values. So my question is if I can achieve [bp~] by only turning the zero values of -1 and 1 to 0. I actually tried it and it didn't seem to do the trick.
Maybe I'm doing something wrong. I don't know. It'd solve my issue if I could have [bp~] as biquad coefficients. But if not, I'd need some guidelines on how to plot the frequency response in the same way as [filterview] or [mmb.filterplot] plot the biquad coefficients.
Cheers
2014-04-09 8:30 GMT-03:00 Colet Patrice colet.patrice@free.fr:
Le 09/04/2014 01:45, Alexandre Torres Porres a écrit :
Hi there. I'm trying to find a way to plot the frequency response of [bp~].
Hello, I don't know if it helps, in ggee there are filter objects that are applying formula for biquad coefficients, it's easy to use those formula in expr and apply them to biquad object in vanilla.
I know of patches that can plot from biquad coefficients, so it'd be great if I could get biquad coefficients from an input of frequency and Q.
I see [bp~] is a 2 pole filter. So does it mean I can achieve it by zeroing out a bandpass filter made with [biquad~]? Cause I see people make bandpass filters with 2poles in biquad, but the zeros are at -1 and 1. I tried zero values of zero, but it didn't look to good to make me believe that's the same as [bp~].
I know of miller's example H10.measurement.pd, and compared to it, didn't seem to fit.
Anyway, I wanted something that would plot [bp~] right away, not like the H10 example, which takes some time. But then, if we can't do it with biquad coefficients, I would need some guidelines to do it some other how.
Thanks
Cheers
I know about filterview and patch
_______________________________________________Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list