#N canvas 392 39 660 593 12;
#X declare -stdpath ./;
#X floatatom 193 224 8 0 0 0 - - - 0;
#X floatatom 237 321 5 0 0 0 - - - 0;
#X obj 28 14 vcf~;
#X text 12 524 see also:;
#X obj 90 524 bp~;
#X obj 149 353 vcf~ 1, f 13;
#X text 115 474 (band-pass);
#X text 115 457 real output;
#X text 232 457 imaginary output;
#X obj 124 524 bob~;
#X obj 127 292 noise~;
#X text 47 292 test input;
#X text 281 320 Q;
#X obj 112 397 output~;
#X obj 237 397 output~;
#X obj 165 524 lop~;
#X obj 205 524 hip~;
#X obj 494 205 declare -stdpath ./;
#X obj 25 556 biquad~;
#X obj 84 555 slop~, f 7;
#X obj 143 555 cpole~, f 7;
#X obj 205 555 fexpr~;
#X text 261 555 - unfriendly filters;
#X obj 7 44 cnv 1 640 1 empty empty empty 8 12 0 13 #000000 #000000 0;
#N canvas 667 114 517 345 reference 0;
#X obj 9 42 cnv 5 490 5 empty empty INLETS: 8 18 0 13 #202020 #000000 0;
#X obj 9 187 cnv 2 490 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0;
#X obj 9 277 cnv 2 490 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 0;
#X obj 8 317 cnv 5 490 5 empty empty empty 8 18 0 13 #202020 #000000 0;
#X text 86 76 signal - audio signal to be filtered.;
#X text 93 95 clear - clear filter's memory., f 36;
#X obj 11 119 cnv 1 490 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 0;
#X obj 28 14 vcf~;
#X text 70 14 - voltage-controlled band/low-pass filter;
#X text 87 126 signal - resonant frequency in Hz.;
#X obj 11 153 cnv 1 490 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 0;
#X obj 11 71 cnv 1 490 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 0;
#X text 134 287 1) float - initial Q (default 0).;
#X obj 11 242 cnv 1 490 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 0;
#X obj 11 211 cnv 1 490 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 0;
#X text 86 217 signal - real output (band-pass filtered signal).;
#X text 94 160 float - resonance Q.;
#X text 86 250 signal - imaginary output ("low-pass" filtered signal).;
#X restore 474 14 pd reference;
#X text 572 14 <= click;
#X text 76 14 - voltage-controlled band/low-pass filter;
#X obj 196 197 hsl 169 18 200 2000 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1;
#X text 261 224 <-- resonant frequency in Hz, f 15;
#X obj 240 292 hsl 169 18 1 20 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1;
#X obj 193 255 sig~ 200;
#X text 242 523 - friendly filters;
#X obj 7 505 cnv 1 640 1 empty empty empty 8 12 0 13 #000000 #000000 0;
#X text 36 129 [vcf~] can take a signal to set the resonant frequency as in an analog voltage controlled filter ("vcf" for short). It is thus more expensive but more powerful than [bp~]. The resonance "Q" or filter sharpness is still only set by control messages., f 83;
#X text 371 395 Listen to how the white noise input is filtered. The higher the Q \, the more attenuation we have for frequencies besides the center frequency \, so the less wide the frequency band is., f 38;
#X text 36 59 [vcf~] is a one-pole complex filter with outlets for the real (left) and imaginary (right) parts \, which are \, respectively \, a band-pass and a low-pass filter (that can be combined to allow other possibilities). The maximum gain is constant at 0dB \, what makes the lowpass output more like a bandpass really \, and similar to [bp~]., f 83;
#X text 255 475 (low-pass);
#X text 440 524 updated for Pd version 0.55;
#X text 252 353 argument initializes Q;
#N canvas 672 179 443 244 compatibility 0;
#X msg 47 156 \; pd compatibility 0.54;
#X msg 243 156 \; pd compatibility 0.55;
#X text 59 132 (old table size);
#X text 259 132 (new table size);
#X text 29 31 Up to version 0.54 \, [vcf~] relied on a 512-point cosine table. The default table size is now increased to 2048 points \, which improves th filter's frequency resolution. To get the original 512-point tables you can run Pd with compatiblity level set to 0.54., f 56;
#X restore 483 306 pd compatibility;
#X text 489 268 compatibility note (open):, f 13;
#X connect 0 0 30 0;
#X connect 1 0 5 2;
#X connect 5 0 13 0;
#X connect 5 1 14 0;
#X connect 10 0 5 0;
#X connect 27 0 0 0;
#X connect 29 0 1 0;
#X connect 30 0 5 1;
