Hiya. Okay - so here's the skinny. I set out about a half hour ago to figure out how to set up a 2 pole low pass filter with resonance in Puredata. Looks like that's apparently set up with a biquad~ filter. I read through the rather handy looking information over here at http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt. I came out of that a bit more confused than when I went in. I also bumped in to http://www.creativesynth.com/MAXMSP/001-SynthBuildingMSP/sbm_03.html - which left me drooling quite a bit more than when I went in. Is there any way to set up a LPF with a live-tweakable audio rate resonance and frequency setting while avoiding doing the biquad math by hand? I can't even figure out how to get my computer to crunch those numbers for me. Thanks in advance for helping me out with this seemingly simple yet convoluted question.
# Hi, here is an abstraction that I made when I was learning about filters and resonances. I used [fexpr~] but now I know using a [biquad] will be more efficient and simple. # But in this implementation you can't set the resonance at audio rate, it accepts control messages. -ugur guney-
On 2/14/07, Vreahli the Audio Bandit vreahli@gmail.com wrote:
Hiya. Okay - so here's the skinny. I set out about a half hour ago to figure out how to set up a 2 pole low pass filter with resonance in Puredata. Looks like that's apparently set up with a biquad~ filter. I read through the rather handy looking information over here at http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt. I came out of that a bit more confused than when I went in. I also bumped in to http://www.creativesynth.com/MAXMSP/001-SynthBuildingMSP/sbm_03.html - which left me drooling quite a bit more than when I went in. Is there any way to set up a LPF with a live-tweakable audio rate resonance and frequency setting while avoiding doing the biquad math by hand? I can't even figure out how to get my computer to crunch those numbers for me. Thanks in advance for helping me out with this seemingly simple yet convoluted question.
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hallo, Vreahli the Audio Bandit hat gesagt: // Vreahli the Audio Bandit wrote:
Hiya. Okay - so here's the skinny. I set out about a half hour ago to figure out how to set up a 2 pole low pass filter with resonance in Puredata. Looks like that's apparently set up with a biquad~ filter. I read through the rather handy looking information over here at http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt. I came out of that a bit more confused than when I went in. I also bumped in to http://www.creativesynth.com/MAXMSP/001-SynthBuildingMSP/sbm_03.html - which left me drooling quite a bit more than when I went in. Is there any way to set up a LPF with a live-tweakable audio rate resonance and frequency setting while avoiding doing the biquad math by hand? I can't even figure out how to get my computer to crunch those numbers for me. Thanks in advance for helping me out with this seemingly simple yet convoluted question.
The biquad~ math isn't extremely hard, but of course it's still hard if you have no experience/knowledge about filter theory yet. Actually there was a long discussion about biquad two or three weeks ago, you may want to check the archive.
The quickest route to getting useful biquad~ coefficients without going through the math would be the filter objects in the ggee-library (CVS at /externals/ggee/filters). They implement the equations from the Audio-cookbook.
However [biquad~] doesn't have audio inputs to set the coeffs. Alternatively you could use the elementary filters [rpole~], [rzero~] etc. They accept signals for their parameters. Maybe I should sit down and build a 2plp now ...
Frank Barknecht _ ______footils.org_ __goto10.org__
On Wed, 2007-02-14 at 10:22 +0100, Frank Barknecht wrote:
However [biquad~] doesn't have audio inputs to set the coeffs. Alternatively you could use the elementary filters [rpole~], [rzero~] etc. They accept signals for their parameters. Maybe I should sit down and build a 2plp now ...
yes, please do so!... ;-)
roman
___________________________________________________________ Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de
Hallo, Roman Haefeli hat gesagt: // Roman Haefeli wrote:
On Wed, 2007-02-14 at 10:22 +0100, Frank Barknecht wrote:
However [biquad~] doesn't have audio inputs to set the coeffs. Alternatively you could use the elementary filters [rpole~], [rzero~] etc. They accept signals for their parameters. Maybe I should sit down and build a 2plp now ...
yes, please do so!... ;-)
Attached is not the real thing, but a funny one anyways, and it's very simple, basically only a variation of this: http://crca.ucsd.edu/~msp/techniques/latest/book-html/node160.html and this: http://crca.ucsd.edu/~msp/techniques/latest/book-html/node138.html to use signal inputs and frequencies instead of angles.
Frank Barknecht _ ______footils.org_ __goto10.org__
On Wed, Feb 14, 2007 at 10:22:43AM +0100, Frank Barknecht wrote:
They accept signals for their parameters. Maybe I should sit down and build a 2plp now ...
With [rpole~] and [cpole~]? That would rule!
Chris.
chris@mccormick.cx http://mccormick.cx
Got it figured out! Here's a demo patch. :)
#N canvas 116 90 1015 569 10; #X obj 333 276 hsl 128 15 0.5 10 0 1 empty empty empty -2 -6 0 8 -262144 -1 -1 8700 1; #X obj 52 161 phasor~ 110; #X obj 231 345 dac~; #X obj 55 133 hsl 128 15 1 100 0 1 empty empty empty -2 -6 0 8 -262144 -1 -1 7900 1; #X obj 224 311 clip~ -0.3 0.3; #X msg 539 313 open $1; #X msg 539 334 start; #X msg 539 354 stop; #X obj 538 266 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 540 376 writesf~ 2; #X obj 539 289 savepanel; #X obj 243 159 iem_cot4~; #X obj 315 186 snapshot~; #X floatatom 318 211 5 0 0 0 - - -; #X obj 226 -86 hsl 128 15 7 148 0 1 empty empty empty -2 -6 0 8 -262144 -1 -1 1200 1; #X floatatom 294 97 8 0 0 0 - - -; #X text 317 -67 Expo scale; #X text 297 113 In hertz; #X obj 42 -116 loadbang; #X floatatom 250 -67 8 0 0 0 - - -; #X obj 192 277 vcf_filter~ lp2; #X obj 240 43 *~; #X text 55 110 Phasor Freq; #X text 335 255 Resonance; #X obj 43 -93 metro 50; #X obj 43 -71 s snaptime; #X obj 293 51 r snaptime; #X obj 293 73 snapshot~; #X obj 317 162 r snaptime; #X text 48 -21 Woo! It's some working low pass magic! I think I'll go make some cheesey 303 acid lines!; #X obj 629 45 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 773 3 osc~ 0.2; #X obj 241 15 +~; #X obj 707 33 *~ -1; #X obj 622 103 *~; #X obj 634 2 phasor~ 8; #X obj 847 29 snapshot~; #X obj 845 1 r snaptime; #X obj 137 -133 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 847 58 +~ 1; #X obj 847 124 +~; #X obj 635 -29 *~ 3; #X obj 634 -54 +~ 2; #X obj 634 -79 osc~ 0.05; #X text 559 41 Try me :); #X obj 52 183 hip~ 5; #X text 102 186 Remove DC Offset; #X obj 714 80 *~ 5; #X obj 848 83 *~ 7; #X obj 622 131 lop~ 60; #X text 622 153 Smooths out line and removes clicks; #X connect 0 0 20 2; #X connect 1 0 45 0; #X connect 3 0 1 0; #X connect 4 0 2 0; #X connect 4 0 2 1; #X connect 4 0 9 0; #X connect 4 0 9 1; #X connect 5 0 9 0; #X connect 6 0 9 0; #X connect 7 0 9 0; #X connect 8 0 10 0; #X connect 10 0 5 0; #X connect 11 0 12 0; #X connect 11 0 20 1; #X connect 12 0 13 0; #X connect 14 0 19 0; #X connect 14 0 32 0; #X connect 18 0 24 0; #X connect 20 0 4 0; #X connect 21 0 11 0; #X connect 21 0 27 0; #X connect 24 0 25 0; #X connect 26 0 27 0; #X connect 27 0 15 0; #X connect 28 0 12 0; #X connect 30 0 34 1; #X connect 31 0 36 0; #X connect 32 0 21 0; #X connect 32 0 21 1; #X connect 33 0 47 0; #X connect 34 0 49 0; #X connect 35 0 33 0; #X connect 36 0 39 0; #X connect 37 0 36 0; #X connect 38 0 24 0; #X connect 39 0 48 0; #X connect 40 0 34 0; #X connect 41 0 35 0; #X connect 42 0 41 0; #X connect 43 0 42 0; #X connect 45 0 20 0; #X connect 47 0 40 0; #X connect 48 0 40 1; #X connect 49 0 32 1;
cool nice one.
if you add this to your resonance slider, it will be even smoother:
[resonance slider] | [$1 50( | [line]
There are loads of filter externals for pd, how about moog~? Although it should be 4 pole but it does what the name suggests, its my favorite.
Cheers,
Malte Steiner media art + development -www.block4.com-