#N canvas 473 24 564 704 10;
#X declare -stdpath ./;
#X obj 5 682 cnv 15 552 21 empty empty empty 20 12 0 14 #e0e0e0 #202020 0;
#X obj 7 401 cnv 3 550 3 empty empty inlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 7 537 cnv 3 550 3 empty empty outlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 7 625 cnv 3 550 3 empty empty arguments 8 12 0 13 #dcdcdc #000000 0;
#X obj 124 408 cnv 17 3 85 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 124 544 cnv 17 3 17 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 124 517 cnv 17 3 17 empty empty 2 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 184 409 signal;
#X obj 124 496 cnv 17 3 17 empty empty 1 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 124 564 cnv 17 3 17 empty empty 1 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 124 584 cnv 17 3 17 empty empty 2 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 108 631 1) float;
#X text 108 646 2) float;
#X obj 213 149 noise~;
#X floatatom 271 174 0 0 0 0 - - - 0;
#X floatatom 330 183 0 0 0 0 - - - 0;
#X obj 274 140 hsl 160 15 100 1000 0 0 empty empty empty -2 -8 0 10 #dcdcdc #000000 #000000 0 1;
#X text 183 545 signal;
#X text 183 565 signal;
#X text 183 585 signal;
#X obj 124 604 cnv 17 3 17 empty empty 3 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 183 605 signal;
#X text 148 496 float/signal;
#X text 148 517 float/signal;
#X obj 183 138 vradio 15 1 1 4 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 3;
#X text 133 137 lowpass;
#X text 127 153 highpass;
#X text 127 168 bandpass;
#X text 145 183 notch;
#X text 244 545 - lowpass filter signal;
#X text 244 565 - highpass filter signal;
#X text 244 585 - bandpass filter signal;
#X text 244 605 - notch filter signal;
#X obj 333 162 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 #dcdcdc #000000 #000000 0 1;
#X text 345 162 Q/resonance (0-1);
#X text 178 631 - cutoff/center frequency (Hz), f 60;
#X text 281 139 cutoff/center frequency;
#X obj 213 204 cyclone/svf~ 800 0.5;
#X text 108 662 3) symbol;
#X text 245 518 - sets Q/resonance (0-1);
#X text 245 497 - sets cutoff/center frequency;
#X text 178 663 - sets frequency mode: <hz> (default) \, <linear> or <radians>;
#X text 245 409 - signal to be filtered;
#X text 190 428 clear;
#X text 245 429 - clears the filter in case of a blow-up;
#X text 245 463 - sets frequency mode to linear;
#X text 245 445 - sets frequency mode to hertz;
#X text 245 478 - sets frequency mode to radians;
#X text 178 647 - sets Q/resonance from 0-1 (default 0.01), f 60;
#X obj 183 204 + 1;
#X obj 183 231 cyclone/selector~ 4 1;
#X text 196 445 <hz>;
#X text 172 462 <linear>;
#X text 166 478 <radians>;
#N canvas 352 78 909 464 frequency 0;
#X text 431 21 linear:;
#X text 30 107 hz:;
#X text 442 230 radians:;
#X text 64 107 - The 'hz' mode is simply an input in hertz \, as in our main example in the parent patch.;
#X obj 563 84 noise~;
#X floatatom 655 95 7 0 0 0 - - - 0;
#X obj 639 67 hsl 128 15 0 1 0 1 empty empty empty -2 -8 0 10 #dcdcdc #000000 #000000 0 1;
#X text 679 66 cutoff;
#X text 705 94 linear;
#X obj 598 327 noise~;
#X floatatom 674 334 7 0 0 0 - - - 0;
#X obj 677 310 hsl 128 15 0 1 0 1 empty empty empty -2 -8 0 10 #dcdcdc #000000 #000000 3700 1;
#X text 717 309 cutoff;
#X text 724 333 radians;
#X obj 164 298 noise~;
#X obj 274 248 samplerate~;
#X obj 274 226 loadbang;
#X obj 274 268 / 4;
#X floatatom 274 290 6 0 0 0 - - - 0;
#X floatatom 219 234 7 0 0 0 - - - 0;
#X obj 222 200 hsl 128 15 0 1 0 1 empty empty empty -2 -8 0 10 #dcdcdc #000000 #000000 100 1;
#X text 264 200 cutoff;
#X obj 219 283 *;
#X floatatom 219 318 7 0 0 0 - - - 0;
#X text 66 147 But please note that the effective cutoff frequency in hertz is the sample rate frequency divided by 4 \, or half the Nyquist frequency.;
#X text 490 21 - The 'linear' mode is just a scaled version of the standard hertz mode with values in the 0-1 range isntead 0 and half the Nyquist.;
#X text 267 318 hertz;
#X text 63 45 [svf~] has three different modes (set by messages or arguments) for mapping input values onto cutoff/center frequency. These are mainly for convenience \, but they may also slightly improve efficiency.;
#X obj 164 344 cyclone/svf~ 0 0.75;
#X obj 563 119 cyclone/svf~ 0 0.5 linear;
#X text 507 229 - In this mode \, input values from 0 to 1 are interpreted as radians \, producing a quarter-cycle sinusoidal mapping to cutoff frequencies. This conforms the frequency mapping to a response that is closer to our logarithmic perception of pitch., f 63;
#X obj 598 359 cyclone/svf~ 0 0.5 radians;
#X msg 515 301 linear;
#X msg 569 301 radians;
#X obj 563 152 output~;
#X obj 598 393 output~;
#X obj 164 378 output~;
#X connect 4 0 29 0;
#X connect 6 0 5 0;
#X connect 6 0 29 1;
#X connect 9 0 31 0;
#X connect 10 0 31 1;
#X connect 11 0 10 0;
#X connect 14 0 28 0;
#X connect 15 0 17 0;
#X connect 16 0 15 0;
#X connect 17 0 18 0;
#X connect 18 0 22 1;
#X connect 19 0 22 0;
#X connect 20 0 19 0;
#X connect 22 0 23 0;
#X connect 23 0 28 1;
#X connect 28 0 36 0;
#X connect 29 0 34 0;
#X connect 31 0 35 0;
#X connect 32 0 31 0;
#X connect 33 0 31 0;
#X restore 454 261 pd frequency \; input modes;
#X text 52 84 [svf~] implements Chamberlin's state-variable filter algorithm \, which outputs lowpass \, highpass \, bandpass \, and band reject (notch) simultaneously in parallel (in this order from left to right)., f 66;
#X obj 183 256 output~;
#X obj 3 5 ./header svf~;
#X text 22 60 State-variable filter;
#X obj 38 279 declare -stdpath ./;
#X text 26 352 see also:;
#X obj 424 365 open-else;
#X text 486 336 click;
#X text 206 339 Plugdata users or those with ELSE can also use [else/replace] as an alternative., f 34;
#X msg 424 337 svfilter~;
#X obj 94 341 cyclone/lores~;
#X obj 95 363 cyclone/reson~;
#X connect 13 0 37 0;
#X connect 14 0 37 1;
#X connect 15 0 37 2;
#X connect 16 0 14 0;
#X connect 24 0 49 0;
#X connect 33 0 15 0;
#X connect 37 0 50 1;
#X connect 37 1 50 2;
#X connect 37 2 50 3;
#X connect 37 3 50 4;
#X connect 49 0 50 0;
#X connect 50 0 56 0;
#X connect 64 0 61 0;
