[PD] algorithms for drawing filter response curves

Hans-Christoph Steiner hans at at.or.at
Thu Feb 10 05:47:39 CET 2011


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 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 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 at 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 at iem.at mailing list
>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
>>
>>
>>
>> -- 
>> Mike Moser-Booth
>> mmoserbooth at gmail.com
>
>
> ----------------------------------------------------------------------------
>
> "A cellphone to me is just an opportunity to be irritated wherever  
> you are." - Linus Torvalds
>
>
>
>
> -- 
> Mike Moser-Booth
> mmoserbooth at 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20110209/c65a712b/attachment.htm>


More information about the Pd-list mailing list