I've started to write a GUI for generating biquad coefficients
(something like Max/MSP's [filtergraph~]). I've gotten the GUI
interaction working well, now I'm looking for the algorithms for
generating a plot of the frequency response of a given set of biquad
coefficents? It'll end up being Tcl, but I can easily read C, Csound,
Java, Perl, Python, etc.
.hc
All mankind is of one author, and is one volume; when one man dies,
one chapter is not torn out of the book, but translated into a better
language; and every chapter must be so translated.... -John Donne
[1] gives the magnitude frequency response given the biquad coefficents, and it linked to from several places around the net. Is this the sort of thing you're looking for?
-s
On Sun, Feb 6, 2011 at 6:12 PM, Hans-Christoph Steiner hans@at.or.at wrote:
I've started to write a GUI for generating biquad coefficients (something like Max/MSP's [filtergraph~]). I've gotten the GUI interaction working well, now I'm looking for the algorithms for generating a plot of the frequency response of a given set of biquad coefficents? It'll end up being Tcl, but I can easily read C, Csound, Java, Perl, Python, etc.
.hc
All mankind is of one author, and is one volume; when one man dies, one chapter is not torn out of the book, but translated into a better language; and every chapter must be so translated.... -John Donne
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Sun, 6 Feb 2011, Spencer Russell wrote:
[1] gives the magnitude frequency response given the biquad coefficents, and it linked to from several places around the net. Is this the sort of thing you're looking for? [1] http://bit.ly/eFck4j
This link got me directly to :
USB complete: everything you need to develop custom USB peripherals Par Jan Axelson Chapitre 12 Page 364
and nothing else. (??)
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC
On Sun, Feb 6, 2011 at 11:15 PM, Mathieu Bouchard matju@artengine.ca wrote:
On Sun, 6 Feb 2011, Spencer Russell wrote:
[1] gives the magnitude frequency response given the biquad coefficents, and it linked to from several places around the net. Is this the sort of thing you're looking for? [1] http://bit.ly/eFck4j
This link got me directly to :
USB complete: everything you need to develop custom USB peripherals Par Jan Axelson Chapitre 12 Page 364
and nothing else. (??)
Whoops, I meant to send this: http://bit.ly/gUCBu4. Sorry.
Here he's basically just taken the transfer function of a biquad and made the z = exp(j*w/Fs) as Mike suggested, followed by taking the magnitude and log-scaling for dB, but he's done the algebraic legwork. Just note that w (lower-case omega) is 2*pi*f and you should be good to go. He's also done some trig-substitution for more numerical precision.
-s
On Feb 7, 2011, at 8:35 PM, Spencer Russell wrote:
On Sun, Feb 6, 2011 at 11:15 PM, Mathieu Bouchard
matju@artengine.ca wrote:On Sun, 6 Feb 2011, Spencer Russell wrote:
[1] gives the magnitude frequency response given the biquad coefficents, and it linked to from several places around the net. Is this the sort of thing you're looking for? [1] http://bit.ly/eFck4j
This link got me directly to :
USB complete: everything you need to develop custom USB peripherals Par Jan Axelson Chapitre 12 Page 364
and nothing else. (??)
Whoops, I meant to send this: http://bit.ly/gUCBu4. Sorry.
Here he's basically just taken the transfer function of a biquad and made the z = exp(j*w/Fs) as Mike suggested, followed by taking the magnitude and log-scaling for dB, but he's done the algebraic legwork. Just note that w (lower-case omega) is 2*pi*f and you should be good to go. He's also done some trig-substitution for more numerical precision.
I'm making good progress, but now am getting lost in the filter math
meeting the pixel math. Can someone mathy check my math? Or even try
it out?
https://github.com/pd-projects/filterview
.hc
¡El pueblo unido jamás será vencido!
I don't really know how to test this and I don't really know tcl, but I tried looking at the code to see if I could make some sense of it anyway, because why the hell not. ;-) Anyway, the only part I really understood was the calculation of the coefficients, and I noticed something wrong. You are calculating alpha for bandwidth instead of Q. I'm guessing you're just borrowing what is in the ggee externals (given the code's comments), because it's done the same way there, but it's not really conventional for a lowpass filter. That's really more for bandpass, notch, and peaking filters. Using Q is also a simpler calculation: alpha = sin(omega)/(2*Q). With Q set to .7071 (or -3 dBfs), you have a filter with no resonance, which makes sense because the cutoff frequency for a lowpass filter is defined as the frequency where the response falls be 3 dB. This is also how Max's [filtergraph~] works.
It's all defined here in Robert Bristow-Johnson's Cookbook:
http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
The ggee externals, as far as I can tell, are all based on this cookbook, though with mistakes like using BW instead of Q.
Hope that helps, .mmb
On Mon, Feb 7, 2011 at 10:03 PM, Hans-Christoph Steiner hans@at.or.atwrote:
On Feb 7, 2011, at 8:35 PM, Spencer Russell wrote:
On Sun, Feb 6, 2011 at 11:15 PM, Mathieu Bouchard matju@artengine.ca
wrote:
On Sun, 6 Feb 2011, Spencer Russell wrote:
[1] gives the magnitude frequency response given the biquad
coefficents, and it linked to from several places around the net. Is this the sort of thing you're looking for? [1] http://bit.ly/eFck4j
This link got me directly to :
USB complete: everything you need to develop custom USB peripherals Par Jan Axelson Chapitre 12 Page 364
and nothing else. (??)
Whoops, I meant to send this: http://bit.ly/gUCBu4. Sorry.
Here he's basically just taken the transfer function of a biquad and made the z = exp(j*w/Fs) as Mike suggested, followed by taking the magnitude and log-scaling for dB, but he's done the algebraic legwork. Just note that w (lower-case omega) is 2*pi*f and you should be good to go. He's also done some trig-substitution for more numerical precision.
I'm making good progress, but now am getting lost in the filter math meeting the pixel math. Can someone mathy check my math? Or even try it out?
https://github.com/pd-projects/filterview
.hc
¡El pueblo unido jamás será vencido!
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
I'll check out the settings. As for running this, its a script, you
can just run it on the Terminal. On GNU/Linux, it should just work.
On Mac OS X, you'll probably need to have run it like this:
/usr/bin/wish filterview.tcl
.hc
On Feb 7, 2011, at 11:20 PM, Mike Moser-Booth wrote:
I don't really know how to test this and I don't really know tcl,
but I tried looking at the code to see if I could make some sense of
it anyway, because why the hell not. ;-) Anyway, the only part I
really understood was the calculation of the coefficients, and I
noticed something wrong. You are calculating alpha for bandwidth
instead of Q. I'm guessing you're just borrowing what is in the ggee
externals (given the code's comments), because it's done the same
way there, but it's not really conventional for a lowpass filter.
That's really more for bandpass, notch, and peaking filters. Using Q
is also a simpler calculation: alpha = sin(omega)/(2*Q). With Q set
to .7071 (or -3 dBfs), you have a filter with no resonance, which
makes sense because the cutoff frequency for a lowpass filter is
defined as the frequency where the response falls be 3 dB. This is
also how Max's [filtergraph~] works.It's all defined here in Robert Bristow-Johnson's Cookbook:
http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
The ggee externals, as far as I can tell, are all based on this
cookbook, though with mistakes like using BW instead of Q.Hope that helps, .mmb
On Mon, Feb 7, 2011 at 10:03 PM, Hans-Christoph Steiner
hans@at.or.at wrote:On Feb 7, 2011, at 8:35 PM, Spencer Russell wrote:
On Sun, Feb 6, 2011 at 11:15 PM, Mathieu Bouchard
matju@artengine.ca wrote: On Sun, 6 Feb 2011, Spencer Russell wrote:[1] gives the magnitude frequency response given the biquad coefficents, and it linked to from several places around the net. Is this the sort of thing you're looking for? [1] http://bit.ly/eFck4j
This link got me directly to :
USB complete: everything you need to develop custom USB peripherals Par Jan Axelson Chapitre 12 Page 364
and nothing else. (??)
Whoops, I meant to send this: http://bit.ly/gUCBu4. Sorry.
Here he's basically just taken the transfer function of a biquad and made the z = exp(j*w/Fs) as Mike suggested, followed by taking the magnitude and log-scaling for dB, but he's done the algebraic legwork. Just note that w (lower-case omega) is 2*pi*f and you should be good to go. He's also done some trig-substitution for more numerical precision.
I'm making good progress, but now am getting lost in the filter math
meeting the pixel math. Can someone mathy check my math? Or even
try it out?https://github.com/pd-projects/filterview
.hc
¡El pueblo unido jamás será vencido!
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
-- Mike Moser-Booth mmoserbooth@gmail.com
"A cellphone to me is just an opportunity to be irritated wherever you
are." - Linus Torvalds
Hey Hans,
I had some time to go over this today, and I think I've got the response working. I didn't document my changes as I went along (sorry), but I think I remembered them all and wrote them at the top of the attached script. Also, I should take back what I said earlier about the bandwidth. Given this gui, it makes sense for it to be BW.
.mmb
On Tue, Feb 8, 2011 at 12:08 AM, Hans-Christoph Steiner hans@at.or.atwrote:
I'll check out the settings. As for running this, its a script, you can just run it on the Terminal. On GNU/Linux, it should just work. On Mac OS X, you'll probably need to have run it like this:
/usr/bin/wish filterview.tcl
.hc
On Feb 7, 2011, at 11:20 PM, Mike Moser-Booth wrote:
I don't really know how to test this and I don't really know tcl, but I tried looking at the code to see if I could make some sense of it anyway, because why the hell not. ;-) Anyway, the only part I really understood was the calculation of the coefficients, and I noticed something wrong. You are calculating alpha for bandwidth instead of Q. I'm guessing you're just borrowing what is in the ggee externals (given the code's comments), because it's done the same way there, but it's not really conventional for a lowpass filter. That's really more for bandpass, notch, and peaking filters. Using Q is also a simpler calculation: alpha = sin(omega)/(2*Q). With Q set to .7071 (or -3 dBfs), you have a filter with no resonance, which makes sense because the cutoff frequency for a lowpass filter is defined as the frequency where the response falls be 3 dB. This is also how Max's [filtergraph~] works.
It's all defined here in Robert Bristow-Johnson's Cookbook:
http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
The ggee externals, as far as I can tell, are all based on this cookbook, though with mistakes like using BW instead of Q.
Hope that helps, .mmb
On Mon, Feb 7, 2011 at 10:03 PM, Hans-Christoph Steiner hans@at.or.atwrote:
On Feb 7, 2011, at 8:35 PM, Spencer Russell wrote:
On Sun, Feb 6, 2011 at 11:15 PM, Mathieu Bouchard matju@artengine.ca
wrote:
On Sun, 6 Feb 2011, Spencer Russell wrote:
[1] gives the magnitude frequency response given the biquad
coefficents, and it linked to from several places around the net. Is this the sort of thing you're looking for? [1] http://bit.ly/eFck4j
This link got me directly to :
USB complete: everything you need to develop custom USB peripherals Par Jan Axelson Chapitre 12 Page 364
and nothing else. (??)
Whoops, I meant to send this: http://bit.ly/gUCBu4. Sorry.
Here he's basically just taken the transfer function of a biquad and made the z = exp(j*w/Fs) as Mike suggested, followed by taking the magnitude and log-scaling for dB, but he's done the algebraic legwork. Just note that w (lower-case omega) is 2*pi*f and you should be good to go. He's also done some trig-substitution for more numerical precision.
I'm making good progress, but now am getting lost in the filter math meeting the pixel math. Can someone mathy check my math? Or even try it out?
https://github.com/pd-projects/filterview
.hc
¡El pueblo unido jamás será vencido!
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
-- Mike Moser-Booth mmoserbooth@gmail.com
"A cellphone to me is just an opportunity to be irritated wherever you are." - Linus Torvalds
That's awesome, thanks! I committed it under your name:
https://github.com/pd-projects/filterview
I'd like to implement all of the relevant filters, which algorithms
should I use? Or even better, perhaps you want to take a crack at it
while I figure out how to display the x/frequency on a log scale :-D
.hc
On Feb 9, 2011, at 11:07 PM, Mike Moser-Booth wrote:
Hey Hans,
I had some time to go over this today, and I think I've got the
response working. I didn't document my changes as I went along
(sorry), but I think I remembered them all and wrote them at the top
of the attached script. Also, I should take back what I said earlier
about the bandwidth. Given this gui, it makes sense for it to be BW..mmb
On Tue, Feb 8, 2011 at 12:08 AM, Hans-Christoph Steiner
hans@at.or.at wrote:I'll check out the settings. As for running this, its a script, you
can just run it on the Terminal. On GNU/Linux, it should just
work. On Mac OS X, you'll probably need to have run it like this:/usr/bin/wish filterview.tcl
.hc
On Feb 7, 2011, at 11:20 PM, Mike Moser-Booth wrote:
I don't really know how to test this and I don't really know tcl,
but I tried looking at the code to see if I could make some sense
of it anyway, because why the hell not. ;-) Anyway, the only part I
really understood was the calculation of the coefficients, and I
noticed something wrong. You are calculating alpha for bandwidth
instead of Q. I'm guessing you're just borrowing what is in the
ggee externals (given the code's comments), because it's done the
same way there, but it's not really conventional for a lowpass
filter. That's really more for bandpass, notch, and peaking
filters. Using Q is also a simpler calculation: alpha = sin(omega)/ (2*Q). With Q set to .7071 (or -3 dBfs), you have a filter with no
resonance, which makes sense because the cutoff frequency for a
lowpass filter is defined as the frequency where the response falls
be 3 dB. This is also how Max's [filtergraph~] works.It's all defined here in Robert Bristow-Johnson's Cookbook:
http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
The ggee externals, as far as I can tell, are all based on this
cookbook, though with mistakes like using BW instead of Q.Hope that helps, .mmb
On Mon, Feb 7, 2011 at 10:03 PM, Hans-Christoph Steiner <hans@at.or.at
wrote:
On Feb 7, 2011, at 8:35 PM, Spencer Russell wrote:
On Sun, Feb 6, 2011 at 11:15 PM, Mathieu Bouchard
matju@artengine.ca wrote: On Sun, 6 Feb 2011, Spencer Russell wrote:[1] gives the magnitude frequency response given the biquad coefficents, and it linked to from several places around the net. Is this the sort of thing you're looking for? [1] http://bit.ly/eFck4j
This link got me directly to :
USB complete: everything you need to develop custom USB peripherals Par Jan Axelson Chapitre 12 Page 364
and nothing else. (??)
Whoops, I meant to send this: http://bit.ly/gUCBu4. Sorry.
Here he's basically just taken the transfer function of a biquad and made the z = exp(j*w/Fs) as Mike suggested, followed by taking the magnitude and log-scaling for dB, but he's done the algebraic
legwork. Just note that w (lower-case omega) is 2*pi*f and you should be good to go. He's also done some trig-substitution for more numerical precision.I'm making good progress, but now am getting lost in the filter
math meeting the pixel math. Can someone mathy check my math? Or
even try it out?https://github.com/pd-projects/filterview
.hc
¡El pueblo unido jamás será vencido!
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
-- Mike Moser-Booth mmoserbooth@gmail.com
"A cellphone to me is just an opportunity to be irritated wherever
you are." - Linus Torvalds-- Mike Moser-Booth mmoserbooth@gmail.com <filterview.mmb.tcl.zip>
I hate it when they say, "He gave his life for his country." Nobody
gives their life for anything. We steal the lives of these kids. -
Admiral Gene LeRocque
Sure, I can throw the others together. Now that one is done the rest should fall into place pretty easily. It might take me a couple of days to get to it, though.
.mmb
On Wed, Feb 9, 2011 at 11:47 PM, Hans-Christoph Steiner hans@at.or.atwrote:
That's awesome, thanks! I committed it under your name:
https://github.com/pd-projects/filterview
I'd like to implement all of the relevant filters, which algorithms should I use? Or even better, perhaps you want to take a crack at it while I figure out how to display the x/frequency on a log scale :-D
.hc
--
Mike Moser-Booth mmoserbooth@gmail.com
Hey Hans,
Here's an update of filterview. There are now procs for the following filters:
lowpass highpass allpass bandpass resonant peaking highshelf lowshelf
I've added some lines to show the phase response (you have to comment out line 135 and uncomment 136 to see it). I also adjust the bandwidth calculations so the handles sit where they should (i.e. -3dB for bandpass/notch/etc., 1/2 power for peaking/shelf).
btw, the frequency axis is log-scaled, though it could probably be improved a little. I sort of took a Pd approach to it by making an mtof proc, so the x-axis gets scaled to linear midi notes and converted to log-frequencies. :-) There might be a simpler way to do it. It also doesn't go all the way down to 0 Hz, because doing that with this approach causes the lowest frequencies to take up too much of the graph. I think Max gets around it by using a more compressed scale below 1-2 Hz.
.mmb
On Thu, Feb 10, 2011 at 12:39 AM, Mike Moser-Booth mmoserbooth@gmail.comwrote:
Sure, I can throw the others together. Now that one is done the rest should fall into place pretty easily. It might take me a couple of days to get to it, though.
.mmb
On Wed, Feb 9, 2011 at 11:47 PM, Hans-Christoph Steiner hans@at.or.atwrote:
That's awesome, thanks! I committed it under your name:
https://github.com/pd-projects/filterview
I'd like to implement all of the relevant filters, which algorithms should I use? Or even better, perhaps you want to take a crack at it while I figure out how to display the x/frequency on a log scale :-D
.hc
--
Mike Moser-Booth mmoserbooth@gmail.com
Nice, it works for me! I'll take a stab at making it work as a Pd object now, I'll try tonight.
.hc
On Tue, 2011-02-15 at 18:31 -0500, Mike Moser-Booth wrote:
Hey Hans,
Here's an update of filterview. There are now procs for the following filters:
lowpass highpass allpass bandpass resonant peaking highshelf lowshelf
I've added some lines to show the phase response (you have to comment out line 135 and uncomment 136 to see it). I also adjust the bandwidth calculations so the handles sit where they should (i.e. -3dB for bandpass/notch/etc., 1/2 power for peaking/shelf).
btw, the frequency axis is log-scaled, though it could probably be improved a little. I sort of took a Pd approach to it by making an mtof proc, so the x-axis gets scaled to linear midi notes and converted to log-frequencies. :-) There might be a simpler way to do it. It also doesn't go all the way down to 0 Hz, because doing that with this approach causes the lowest frequencies to take up too much of the graph. I think Max gets around it by using a more compressed scale below 1-2 Hz.
.mmb
On Thu, Feb 10, 2011 at 12:39 AM, Mike Moser-Booth mmoserbooth@gmail.com wrote: Sure, I can throw the others together. Now that one is done the rest should fall into place pretty easily. It might take me a couple of days to get to it, though.
.mmb On Wed, Feb 9, 2011 at 11:47 PM, Hans-Christoph Steiner <hans@at.or.at> wrote: That's awesome, thanks! I committed it under your name: https://github.com/pd-projects/filterview I'd like to implement all of the relevant filters, which algorithms should I use? Or even better, perhaps you want to take a crack at it while I figure out how to display the x/frequency on a log scale :-D .hc -- Mike Moser-Booth mmoserbooth@gmail.com
-- Mike Moser-Booth mmoserbooth@gmail.com
Ok, I got it working in a limited way as a Pd object and I was
controlling my first filter against noise! Good fun. You can still
run the .tcl file as a standalone GUI for dev work. Get it from my git:
https://github.com/pd-projects/filterview
It would be quite nice if the phase was drawn as a thin line over the
magnatude graph. What do you think?
.hc
On Feb 15, 2011, at 6:31 PM, Mike Moser-Booth wrote:
Hey Hans,
Here's an update of filterview. There are now procs for the
following filters:lowpass highpass allpass bandpass resonant peaking highshelf lowshelf
I've added some lines to show the phase response (you have to
comment out line 135 and uncomment 136 to see it). I also adjust the
bandwidth calculations so the handles sit where they should (i.e.
-3dB for bandpass/notch/etc., 1/2 power for peaking/shelf).btw, the frequency axis is log-scaled, though it could probably be
improved a little. I sort of took a Pd approach to it by making an
mtof proc, so the x-axis gets scaled to linear midi notes and
converted to log-frequencies. :-) There might be a simpler way to do
it. It also doesn't go all the way down to 0 Hz, because doing that
with this approach causes the lowest frequencies to take up too much
of the graph. I think Max gets around it by using a more compressed
scale below 1-2 Hz..mmb
On Thu, Feb 10, 2011 at 12:39 AM, Mike Moser-Booth <mmoserbooth@gmail.com
wrote:
Sure, I can throw the others together. Now that one is done the rest
should fall into place pretty easily. It might take me a couple of
days to get to it, though..mmb
On Wed, Feb 9, 2011 at 11:47 PM, Hans-Christoph Steiner
hans@at.or.at wrote:That's awesome, thanks! I committed it under your name:
https://github.com/pd-projects/filterview
I'd like to implement all of the relevant filters, which algorithms
should I use? Or even better, perhaps you want to take a crack at
it while I figure out how to display the x/frequency on a log
scale :-D.hc
-- Mike Moser-Booth mmoserbooth@gmail.com
-- Mike Moser-Booth mmoserbooth@gmail.com <filterview.mmb.tcl.zip>
Programs should be written for people to read, and only incidentally
for machines to execute.
On Wed, Feb 16, 2011 at 1:53 AM, Hans-Christoph Steiner hans@at.or.at wrote:
Ok, I got it working in a limited way as a Pd object and I was controlling my first filter against noise! Good fun. You can still run the .tcl file as a standalone GUI for dev work. Get it from my git: https://github.com/pd-projects/filterview It would be quite nice if the phase was drawn as a thin line over the magnatude graph. What do you think? .hc
Hi Hans,
This is a great addition to pd! I'm having a little trouble getting it to work properly, though. When I drag the filter window I get the error message 'invalid command name "pdsend" '.
I just built it and copied the external binary into my pd path, then opened the help patch.
thanks, Spencer
On Feb 16, 2011, at 9:17 PM, Spencer Russell wrote:
On Wed, Feb 16, 2011 at 1:53 AM, Hans-Christoph Steiner
hans@at.or.at wrote:Ok, I got it working in a limited way as a Pd object and I was
controlling my first filter against noise! Good fun. You can still run
the .tcl file as a standalone GUI for dev work. Get it from my git: https://github.com/pd-projects/filterview It would be quite nice if the phase was drawn as a thin line over the magnatude graph. What do you think? .hcHi Hans,
This is a great addition to pd! I'm having a little trouble getting it to work properly, though. When I drag the filter window I get the error message 'invalid command name "pdsend" '.
I just built it and copied the external binary into my pd path, then opened the help patch.
thanks, Spencer
Ah, ok, I'm working with 0.43 for now, but I'll have to make a fix for
<0.43.
.hc
Mistrust authority - promote decentralization. - the hacker ethic
Awesome! I would like to be able to see the phase response, but since most of the time the user is only interested in the magnitude response, I think it should be something you can switch to with a message.
.mmb
On Wed, Feb 16, 2011 at 1:53 AM, Hans-Christoph Steiner hans@at.or.atwrote:
Ok, I got it working in a limited way as a Pd object and I was controlling my first filter against noise! Good fun. You can still run the .tcl file as a standalone GUI for dev work. Get it from my git:
https://github.com/pd-projects/filterview
It would be quite nice if the phase was drawn as a thin line over the magnatude graph. What do you think?
.hc
On Feb 15, 2011, at 6:31 PM, Mike Moser-Booth wrote:
Hey Hans,
Here's an update of filterview. There are now procs for the following filters:
lowpass highpass allpass bandpass resonant peaking highshelf lowshelf
I've added some lines to show the phase response (you have to comment out line 135 and uncomment 136 to see it). I also adjust the bandwidth calculations so the handles sit where they should (i.e. -3dB for bandpass/notch/etc., 1/2 power for peaking/shelf).
btw, the frequency axis is log-scaled, though it could probably be improved a little. I sort of took a Pd approach to it by making an mtof proc, so the x-axis gets scaled to linear midi notes and converted to log-frequencies. :-) There might be a simpler way to do it. It also doesn't go all the way down to 0 Hz, because doing that with this approach causes the lowest frequencies to take up too much of the graph. I think Max gets around it by using a more compressed scale below 1-2 Hz.
.mmb
On Thu, Feb 10, 2011 at 12:39 AM, Mike Moser-Booth mmoserbooth@gmail.comwrote:
Sure, I can throw the others together. Now that one is done the rest should fall into place pretty easily. It might take me a couple of days to get to it, though.
.mmb
On Wed, Feb 9, 2011 at 11:47 PM, Hans-Christoph Steiner hans@at.or.atwrote:
That's awesome, thanks! I committed it under your name:
https://github.com/pd-projects/filterview
I'd like to implement all of the relevant filters, which algorithms should I use? Or even better, perhaps you want to take a crack at it while I figure out how to display the x/frequency on a log scale :-D
.hc
--
Mike Moser-Booth mmoserbooth@gmail.com
-- Mike Moser-Booth mmoserbooth@gmail.com <filterview.mmb.tcl.zip>
Programs should be written for people to read, and only incidentally for machines to execute.
- from Structure and Interpretation of Computer Programs
Did you see the phase line in the current implementation? I think its
nice to have it there all the time, as long as its not dominant. I
think having the phase line there will remind people that the effects
of filters are never as simple as removing selected frequencies.
.hc
On Feb 17, 2011, at 12:53 PM, Mike Moser-Booth wrote:
Awesome! I would like to be able to see the phase response, but
since most of the time the user is only interested in the magnitude
response, I think it should be something you can switch to with a
message..mmb
On Wed, Feb 16, 2011 at 1:53 AM, Hans-Christoph Steiner
hans@at.or.at wrote:Ok, I got it working in a limited way as a Pd object and I was
controlling my first filter against noise! Good fun. You can still
run the .tcl file as a standalone GUI for dev work. Get it from my
git:https://github.com/pd-projects/filterview
It would be quite nice if the phase was drawn as a thin line over
the magnatude graph. What do you think?.hc
On Feb 15, 2011, at 6:31 PM, Mike Moser-Booth wrote:
Hey Hans,
Here's an update of filterview. There are now procs for the
following filters:lowpass highpass allpass bandpass resonant peaking highshelf lowshelf
I've added some lines to show the phase response (you have to
comment out line 135 and uncomment 136 to see it). I also adjust
the bandwidth calculations so the handles sit where they should
(i.e. -3dB for bandpass/notch/etc., 1/2 power for peaking/shelf).btw, the frequency axis is log-scaled, though it could probably be
improved a little. I sort of took a Pd approach to it by making an
mtof proc, so the x-axis gets scaled to linear midi notes and
converted to log-frequencies. :-) There might be a simpler way to
do it. It also doesn't go all the way down to 0 Hz, because doing
that with this approach causes the lowest frequencies to take up
too much of the graph. I think Max gets around it by using a more
compressed scale below 1-2 Hz..mmb
On Thu, Feb 10, 2011 at 12:39 AM, Mike Moser-Booth <mmoserbooth@gmail.com
wrote:
Sure, I can throw the others together. Now that one is done the
rest should fall into place pretty easily. It might take me a
couple of days to get to it, though..mmb
On Wed, Feb 9, 2011 at 11:47 PM, Hans-Christoph Steiner <hans@at.or.at
wrote:
That's awesome, thanks! I committed it under your name:
https://github.com/pd-projects/filterview
I'd like to implement all of the relevant filters, which algorithms
should I use? Or even better, perhaps you want to take a crack at
it while I figure out how to display the x/frequency on a log
scale :-D.hc
-- Mike Moser-Booth mmoserbooth@gmail.com
-- Mike Moser-Booth mmoserbooth@gmail.com <filterview.mmb.tcl.zip>
Programs should be written for people to read, and only incidentally
for machines to execute.
- from Structure and Interpretation of Computer Programs
-- Mike Moser-Booth mmoserbooth@gmail.com
Terrorism is not an enemy. It cannot be defeated. It's a tactic.
It's about as sensible to say we declare war on night attacks and
expect we're going to win that war. We're not going to win the war on
terrorism. - retired U.S. Army general, William Odom
I think people should realize it, but the helpfile will probably remind them, too. I mean, I'm the type of person that would probably want to see it, but I don't think it's something that always needs to be seen. In general, I don't think people are particularly interested in how a lowpass filter affects the phase, and if all you're looking to do is lowpass filter a sound, it probably won't matter. Besides, the units don't line up. The y-axis goes from 25 to -25 dB in the magnitude response pi to -pi radians in the phase response. That's something that could confuse someone who doesn't really understand phase alterations to begin with. I think it makes more sense to either be able to turn it on and off or switch between the two.
The more flexible the object is, the better. :-)
.mmb
On Thu, Feb 17, 2011 at 3:47 PM, Hans-Christoph Steiner hans@at.or.at wrote:
Did you see the phase line in the current implementation? I think its nice to have it there all the time, as long as its not dominant. I think having the phase line there will remind people that the effects of filters are never as simple as removing selected frequencies. .hc
Ok, I pushed updates to the git repo so it should now run using Pd
older than 0.43.
.hc
On Feb 17, 2011, at 12:53 PM, Mike Moser-Booth wrote:
Awesome! I would like to be able to see the phase response, but
since most of the time the user is only interested in the magnitude
response, I think it should be something you can switch to with a
message..mmb
On Wed, Feb 16, 2011 at 1:53 AM, Hans-Christoph Steiner
hans@at.or.at wrote:Ok, I got it working in a limited way as a Pd object and I was
controlling my first filter against noise! Good fun. You can still
run the .tcl file as a standalone GUI for dev work. Get it from my
git:https://github.com/pd-projects/filterview
It would be quite nice if the phase was drawn as a thin line over
the magnatude graph. What do you think?.hc
On Feb 15, 2011, at 6:31 PM, Mike Moser-Booth wrote:
Hey Hans,
Here's an update of filterview. There are now procs for the
following filters:lowpass highpass allpass bandpass resonant peaking highshelf lowshelf
I've added some lines to show the phase response (you have to
comment out line 135 and uncomment 136 to see it). I also adjust
the bandwidth calculations so the handles sit where they should
(i.e. -3dB for bandpass/notch/etc., 1/2 power for peaking/shelf).btw, the frequency axis is log-scaled, though it could probably be
improved a little. I sort of took a Pd approach to it by making an
mtof proc, so the x-axis gets scaled to linear midi notes and
converted to log-frequencies. :-) There might be a simpler way to
do it. It also doesn't go all the way down to 0 Hz, because doing
that with this approach causes the lowest frequencies to take up
too much of the graph. I think Max gets around it by using a more
compressed scale below 1-2 Hz..mmb
On Thu, Feb 10, 2011 at 12:39 AM, Mike Moser-Booth <mmoserbooth@gmail.com
wrote:
Sure, I can throw the others together. Now that one is done the
rest should fall into place pretty easily. It might take me a
couple of days to get to it, though..mmb
On Wed, Feb 9, 2011 at 11:47 PM, Hans-Christoph Steiner <hans@at.or.at
wrote:
That's awesome, thanks! I committed it under your name:
https://github.com/pd-projects/filterview
I'd like to implement all of the relevant filters, which algorithms
should I use? Or even better, perhaps you want to take a crack at
it while I figure out how to display the x/frequency on a log
scale :-D.hc
-- Mike Moser-Booth mmoserbooth@gmail.com
-- Mike Moser-Booth mmoserbooth@gmail.com <filterview.mmb.tcl.zip>
Programs should be written for people to read, and only incidentally
for machines to execute.
- from Structure and Interpretation of Computer Programs
-- Mike Moser-Booth mmoserbooth@gmail.com
"A cellphone to me is just an opportunity to be irritated wherever you
are." - Linus Torvalds
Very cool. Works for me, now.
Strangely within the help patch my cursor is always the arrow, and doesn't change to the hand when I'm in Edit Mode, and doesn't highlight when the cursor is over inlets/outlets.
-spencer
On Thu, Feb 17, 2011 at 9:20 PM, Hans-Christoph Steiner hans@at.or.at wrote:
Ok, I pushed updates to the git repo so it should now run using Pd older than 0.43. .hc On Feb 17, 2011, at 12:53 PM, Mike Moser-Booth wrote:
Awesome! I would like to be able to see the phase response, but since most of the time the user is only interested in the magnitude response, I think it should be something you can switch to with a message. .mmb
On Wed, Feb 16, 2011 at 1:53 AM, Hans-Christoph Steiner hans@at.or.at wrote:
Ok, I got it working in a limited way as a Pd object and I was controlling my first filter against noise! Good fun. You can still run the .tcl file as a standalone GUI for dev work. Get it from my git: https://github.com/pd-projects/filterview It would be quite nice if the phase was drawn as a thin line over the magnatude graph. What do you think? .hc
On Feb 15, 2011, at 6:31 PM, Mike Moser-Booth wrote:
Hey Hans, Here's an update of filterview. There are now procs for the following filters: lowpass highpass allpass bandpass resonant peaking highshelf lowshelf I've added some lines to show the phase response (you have to comment out line 135 and uncomment 136 to see it). I also adjust the bandwidth calculations so the handles sit where they should (i.e. -3dB for bandpass/notch/etc., 1/2 power for peaking/shelf). btw, the frequency axis is log-scaled, though it could probably be improved a little. I sort of took a Pd approach to it by making an mtof proc, so the x-axis gets scaled to linear midi notes and converted to log-frequencies. :-) There might be a simpler way to do it. It also doesn't go all the way down to 0 Hz, because doing that with this approach causes the lowest frequencies to take up too much of the graph. I think Max gets around it by using a more compressed scale below 1-2 Hz. .mmb On Thu, Feb 10, 2011 at 12:39 AM, Mike Moser-Booth mmoserbooth@gmail.com wrote:
Sure, I can throw the others together. Now that one is done the rest should fall into place pretty easily. It might take me a couple of days to get to it, though. .mmb
On Wed, Feb 9, 2011 at 11:47 PM, Hans-Christoph Steiner hans@at.or.at wrote:
That's awesome, thanks! I committed it under your name: https://github.com/pd-projects/filterview I'd like to implement all of the relevant filters, which algorithms should I use? Or even better, perhaps you want to take a crack at it while I figure out how to display the x/frequency on a log scale :-D .hc
-- Mike Moser-Booth mmoserbooth@gmail.com
-- Mike Moser-Booth mmoserbooth@gmail.com <filterview.mmb.tcl.zip>
Programs should be written for people to read, and only incidentally for machines to execute. - from Structure and Interpretation of Computer Programs
-- Mike Moser-Booth mmoserbooth@gmail.com
"A cellphone to me is just an opportunity to be irritated wherever you are."
- Linus Torvalds
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Sun, 6 Feb 2011, Hans-Christoph Steiner wrote:
I've started to write a GUI for generating biquad coefficients (something like Max/MSP's [filtergraph~]). I've gotten the GUI interaction working well, now I'm looking for the algorithms for generating a plot of the frequency response of a given set of biquad coefficents? It'll end up being Tcl, but I can easily read C, Csound, Java, Perl, Python, etc.
I made a rather simple patch that measures the frequency response of any linear filter of your choice (convolution, lop, hip, bp, biquad, etc.) by using FFT. I demonstrated it at Pd Convention 2007.
http://gridflow.ca/gallery/operator_spectrum.png
except it only works for image filters, not sound.
It plots an image filter's spectrum like a topographic map for all combinations of horiz-frequencies and vert-frequencies at once. (however, it assumes that the effect is wrap-around, just like a FFT is wrap-around)
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC
I don't know if this is what you're asking, but iirc it's really just a matter of substituting exp(j*2*pi*fc/Fs) for z in the transfer function. I can send a Pd patch illustrating it later, if you like.
.mmb
On Sunday, February 6, 2011, Hans-Christoph Steiner hans@at.or.at wrote:
I've started to write a GUI for generating biquad coefficients (something like Max/MSP's [filtergraph~]). I've gotten the GUI interaction working well, now I'm looking for the algorithms for generating a plot of the frequency response of a given set of biquad coefficents? It'll end up being Tcl, but I can easily read C, Csound, Java, Perl, Python, etc.
.hc
All mankind is of one author, and is one volume; when one man dies, one chapter is not torn out of the book, but translated into a better language; and every chapter must be so translated.... -John Donne
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Sorry, sent that a little too quickly. I should've also mentioned that fc=cutoff frequency and Fs=sample rate. And the magnitude of the result will give the magnitude frequency response and the angle will give the phase response.
.mmb
On Monday, February 7, 2011, Mike Moser-Booth mmoserbooth@gmail.com wrote:
I don't know if this is what you're asking, but iirc it's really just a matter of substituting exp(j*2*pi*fc/Fs) for z in the transfer function. I can send a Pd patch illustrating it later, if you like.
.mmb
On Sunday, February 6, 2011, Hans-Christoph Steiner hans@at.or.at wrote:
I've started to write a GUI for generating biquad coefficients (something like Max/MSP's [filtergraph~]). I've gotten the GUI interaction working well, now I'm looking for the algorithms for generating a plot of the frequency response of a given set of biquad coefficents? It'll end up being Tcl, but I can easily read C, Csound, Java, Perl, Python, etc.
.hc
All mankind is of one author, and is one volume; when one man dies, one chapter is not torn out of the book, but translated into a better language; and every chapter must be so translated.... -John Donne
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
-- Mike Moser-Booth mmoserbooth@gmail.com
On 07.02.2011, at 00:12, Hans-Christoph Steiner wrote:
I've started to write a GUI for generating biquad coefficients (something like Max/MSP's [filtergraph~]). I've gotten the GUI interaction working well, now I'm looking for the algorithms for generating a plot of the frequency response of a given set of biquad coefficents? It'll end up being Tcl, but I can easily read C, Csound, Java, Perl, Python, etc.
.hc
i've been using the attached js file to query amplitude and phase response of biquad coeffs, where the coeffs are expected to be of the form: y[n] = a0 * x[n] + a1 * x[n-1] + a2 * x[n-2] - b1 * y[n-1] - b2 * y[n-2] (like in maxmsp). so, you'd have to rearrage the coeffs and turn the sign of the fb coeffs to make it work with the pd biquad~.
vb
Le 07/02/2011 12:12, volker böhm a écrit :
On 07.02.2011, at 00:12, Hans-Christoph Steiner wrote:
I've started to write a GUI for generating biquad coefficients (something like Max/MSP's [filtergraph~]). I've gotten the GUI interaction working well, now I'm looking for the algorithms for generating a plot of the frequency response of a given set of biquad coefficents? It'll end up being Tcl, but I can easily read C, Csound, Java, Perl, Python, etc.
.hc
i've been using the attached js file to query amplitude and phase response of biquad coeffs, where the coeffs are expected to be of the form: y[n] = a0 * x[n] + a1 * x[n-1] + a2 * x[n-2] - b1 * y[n-1] - b2 * y[n-2] (like in maxmsp). so, you'd have to rearrage the coeffs and turn the sign of the fb coeffs to make it work with the pd biquad~.
or use bq~ from nusmuk-audio lib.
cyrille
vb
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Feb 7, 2011, at 6:36 AM, cyrille henry wrote:
Le 07/02/2011 12:12, volker böhm a écrit :
On 07.02.2011, at 00:12, Hans-Christoph Steiner wrote:
I've started to write a GUI for generating biquad coefficients
(something like Max/MSP's [filtergraph~]). I've gotten the GUI
interaction working well, now I'm looking for the algorithms for
generating a plot of the frequency response of a given set of
biquad coefficents? It'll end up being Tcl, but I can easily read
C, Csound, Java, Perl, Python, etc..hc
i've been using the attached js file to query amplitude and phase
response of biquad coeffs, where the coeffs are expected to be of the form: y[n] = a0 * x[n] +
a1 * x[n-1] + a2 * x[n-2] - b1 * y[n-1] - b2 * y[n-2] (like in
maxmsp). so, you'd have to rearrage the coeffs and turn the sign of the fb
coeffs to make it work with the pd biquad~.or use bq~ from nusmuk-audio lib.
I like that [bq~] has audio inputs, but can you send a list of them to
the first inlet, like [biquad~]?
.hc
http://at.or.at/hans/
Le 07/02/2011 18:40, Hans-Christoph Steiner a écrit :
On Feb 7, 2011, at 6:36 AM, cyrille henry wrote:
Le 07/02/2011 12:12, volker böhm a écrit :
On 07.02.2011, at 00:12, Hans-Christoph Steiner wrote:
I've started to write a GUI for generating biquad coefficients (something like Max/MSP's [filtergraph~]). I've gotten the GUI interaction working well, now I'm looking for the algorithms for generating a plot of the frequency response of a given set of biquad coefficents? It'll end up being Tcl, but I can easily read C, Csound, Java, Perl, Python, etc.
.hc
i've been using the attached js file to query amplitude and phase response of biquad coeffs, where the coeffs are expected to be of the form: y[n] = a0 * x[n] + a1 * x[n-1] + a2 * x[n-2] - b1 * y[n-1] - b2 * y[n-2] (like in maxmsp). so, you'd have to rearrage the coeffs and turn the sign of the fb coeffs to make it work with the pd biquad~.
or use bq~ from nusmuk-audio lib.
I like that [bq~] has audio inputs,
yep, that's very useful.
but can you send a list of them to the first inlet, like [biquad~]?
no, you need an unpack f f f f f... i think to add this functionality should not be to hard, but do you really need it?
C
.hc
On Feb 7, 2011, at 2:39 PM, cyrille henry wrote:
Le 07/02/2011 18:40, Hans-Christoph Steiner a écrit :
On Feb 7, 2011, at 6:36 AM, cyrille henry wrote:
Le 07/02/2011 12:12, volker böhm a écrit :
On 07.02.2011, at 00:12, Hans-Christoph Steiner wrote:
I've started to write a GUI for generating biquad coefficients
(something like Max/MSP's [filtergraph~]). I've gotten the GUI
interaction working well, now I'm looking for the algorithms for
generating a plot of the frequency response of a given set of
biquad coefficents? It'll end up being Tcl, but I can easily
read C, Csound, Java, Perl, Python, etc..hc
i've been using the attached js file to query amplitude and phase
response of biquad coeffs, where the coeffs are expected to be of the form: y[n] = a0 * x[n]
- a1 * x[n-1] + a2 * x[n-2] - b1 * y[n-1] - b2 * y[n-2] (like in
maxmsp). so, you'd have to rearrage the coeffs and turn the sign of the fb
coeffs to make it work with the pd biquad~.or use bq~ from nusmuk-audio lib.
I like that [bq~] has audio inputs,
yep, that's very useful.
but can you send a list of them to the first inlet, like [biquad~]?
no, you need an unpack f f f f f... i think to add this functionality should not be to hard, but do you
really need it?
Its what [biquad~] uses, so other objects expect that, like the filter
calcs in ggee. Plus this new filterview object I'm working on would
output a list, and using a list means making just a single connection
rather than 5.
.hc
I spent 33 years and four months in active military service and during
that period I spent most of my time as a high class muscle man for Big
Business, for Wall Street and the bankers. - General Smedley Butler
Le 07/02/2011 20:50, Hans-Christoph Steiner a écrit :
...
I like that [bq~] has audio inputs,
yep, that's very useful.
but can you send a list of them to the first inlet, like [biquad~]?
no, you need an unpack f f f f f... i think to add this functionality should not be to hard, but do you really need it?
Its what [biquad~] uses, so other objects expect that, like the filter calcs in ggee. Plus this new filterview object I'm working on would output a list, and using a list means making just a single connection rather than 5.
ok. here is bq_list~ is that what you wanted?
c
.hc
I spent 33 years and four months in active military service and during that period I spent most of my time as a high class muscle man for Big Business, for Wall Street and the bankers. - General Smedley Butler
On Feb 7, 2011, at 3:05 PM, cyrille henry wrote:
Le 07/02/2011 20:50, Hans-Christoph Steiner a écrit :
...
I like that [bq~] has audio inputs,
yep, that's very useful.
but can you send a list of them to the first inlet, like [biquad~]?
no, you need an unpack f f f f f... i think to add this functionality should not be to hard, but do
you really need it?Its what [biquad~] uses, so other objects expect that, like the
filter calcs in ggee. Plus this new filterview object I'm working
on would output a list, and using a list means making just a single
connection rather than 5.ok. here is bq_list~ is that what you wanted?
If you want this filterview GUI to easily control your object, then
yes, it should accept a list of biquad coefficients.
.hc
c
.hc
I spent 33 years and four months in active military service and
during that period I spent most of my time as a high class muscle
man for Big Business, for Wall Street and the bankers. - General
Smedley Butler<bq_list.zip>
The arc of history bends towards justice. - Dr. Martin Luther
King, Jr.
On Feb 7, 2011, at 6:12 AM, volker böhm wrote:
On 07.02.2011, at 00:12, Hans-Christoph Steiner wrote:
I've started to write a GUI for generating biquad coefficients
(something like Max/MSP's [filtergraph~]). I've gotten the GUI
interaction working well, now I'm looking for the algorithms for
generating a plot of the frequency response of a given set of
biquad coefficents? It'll end up being Tcl, but I can easily read
C, Csound, Java, Perl, Python, etc..hc
i've been using the attached js file to query amplitude and phase
response of biquad coeffs, where the coeffs are expected to be of the form: y[n] = a0 * x[n] +
a1 * x[n-1] + a2 * x[n-2] - b1 * y[n-1] - b2 * y[n-2] (like in
maxmsp). so, you'd have to rearrage the coeffs and turn the sign of the fb
coeffs to make it work with the pd biquad~.vb
<queryBiquad.js>
Thanks, that helped. Here's what I have so far: I got the mouse
interaction almost completed, now I'm just starting the plotting part,
which has a ways to go.
.hc
Access to computers should be unlimited and total. - the hacker ethic
On Feb 7, 2011, at 12:43 PM, Hans-Christoph Steiner wrote:
On Feb 7, 2011, at 6:12 AM, volker böhm wrote:
On 07.02.2011, at 00:12, Hans-Christoph Steiner wrote:
I've started to write a GUI for generating biquad coefficients
(something like Max/MSP's [filtergraph~]). I've gotten the GUI
interaction working well, now I'm looking for the algorithms for
generating a plot of the frequency response of a given set of
biquad coefficents? It'll end up being Tcl, but I can easily read
C, Csound, Java, Perl, Python, etc..hc
i've been using the attached js file to query amplitude and phase
response of biquad coeffs, where the coeffs are expected to be of the form: y[n] = a0 * x[n] +
a1 * x[n-1] + a2 * x[n-2] - b1 * y[n-1] - b2 * y[n-2] (like in
maxmsp). so, you'd have to rearrage the coeffs and turn the sign of the fb
coeffs to make it work with the pd biquad~.vb
<queryBiquad.js>
Thanks, that helped. Here's what I have so far: I got the mouse
interaction almost completed, now I'm just starting the plotting
part, which has a ways to go..hc <filterview.tcl>
I also just pushed my git to a public repo:
https://github.com/pd-projects/filterview
.hc
If nature has made any one thing less susceptible than all others of
exclusive property, it is the action of the thinking power called an
idea, which an individual may exclusively possess as long as he keeps
it to himself; but the moment it is divulged, it forces itself into
the possession of everyone, and the receiver cannot dispossess himself
of it. - Thomas Jefferson
On 07.02.2011, at 00:12, Hans-Christoph Steiner wrote:
I've started to write a GUI for generating biquad coefficients (something like Max/MSP's [filtergraph~]). I've gotten the GUI interaction working well, now I'm looking for the algorithms for generating a plot of the frequency response of a given set of biquad coefficents? It'll end up being Tcl, but I can easily read C, Csound, Java, Perl, Python, etc.
Actually, why don't you push a [sig~ 1] through a [rifft~] and use that as a probe with which you will connect to a spectrogram patch ?
(the probe's [rifft~] and the spectrogram's [fft~] have to use the same block size.)
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC
On Feb 7, 2011, at 3:33 PM, Mathieu Bouchard wrote:
On 07.02.2011, at 00:12, Hans-Christoph Steiner wrote:
I've started to write a GUI for generating biquad coefficients
(something like Max/MSP's [filtergraph~]). I've gotten the GUI
interaction working well, now I'm looking for the algorithms for
generating a plot of the frequency response of a given set of
biquad coefficents? It'll end up being Tcl, but I can easily
read C, Csound, Java, Perl, Python, etc.Actually, why don't you push a [sig~ 1] through a [rifft~] and use
that as a probe with which you will connect to a spectrogram patch ?(the probe's [rifft~] and the spectrogram's [fft~] have to use the
same block size.)
Because I'm doing this in Tcl... Its a GUI object.
.hc
"It is convenient to imagine a power beyond us because that means we
don't have to examine our own lives.", from "The Idols of
Environmentalism", by Curtis White
2011/2/6 Hans-Christoph Steiner hans@at.or.at:
I've started to write a GUI for generating biquad coefficients (something like Max/MSP's [filtergraph~]). I've gotten the GUI interaction working well, now I'm looking for the algorithms for generating a plot of the frequency response of a given set of biquad coefficents? It'll end up being Tcl, but I can easily read C, Csound, Java, Perl, Python, etc.
Hey Hans,
Take a look in the wslib SC Quarks, it is implemented there.
On 06/02/11 23:12, Hans-Christoph Steiner wrote:
now I'm looking for the algorithms for generating a plot of the frequency response of a given set of biquad coefficents?
See perhaps:
http://www-users.cs.york.ac.uk/~fisher/mkfilter/
In particular:
http://www-users.cs.york.ac.uk/~fisher/software/mkfilter/current/complex.C global complex evaluate(complex topco[], int nz, complex botco[], int np, complex z)
http://www-users.cs.york.ac.uk/~fisher/software/mkfilter/current/genplot.C static void computefr(complex fr[], int nsteps)
Claude