#N canvas 118 9 534 590 12;
#X obj 57 106 osc~ 100;
#X msg 65 133 clear;
#X obj 82 563 lop~;
#X text 13 566 see also:;
#X text 336 565 updated for Pd version-0.38;
#X obj 89 513 rzero~;
#X obj 40 533 cpole~;
#X obj 40 513 rpole~;
#X obj 138 513 rzero_rev~;
#X obj 89 533 czero~;
#X obj 138 533 czero_rev~;
#X text 216 513 real;
#X text 215 534 complex;
#X text 37 497 1-pole;
#X text 86 497 1-zero;
#X text 136 497 1-zero \, reversed;
#X text 62 482 summary of raw filters:;
#X text 109 132 <-- clear internal state to zero;
#N canvas 255 257 585 372 test 0;
#X obj 152 296 env~ 16384;
#X floatatom 152 320 5 0 0 0 - - -;
#X floatatom 499 76 4 -1000 1000 0 - - -;
#X obj 349 324 dac~;
#X obj 349 288 *~;
#X obj 390 70 cos~;
#X floatatom 298 8 5 0 0 0 - - -;
#X obj 298 31 phasor~;
#X floatatom 398 14 5 0 0 0 - - -;
#X obj 397 39 / 1000;
#X obj 423 71 -~ 0.25;
#X obj 423 93 cos~;
#X obj 499 95 / 1000;
#X obj 389 121 *~;
#X obj 423 121 *~;
#X obj 228 296 env~ 16384;
#X floatatom 228 320 5 0 0 0 - - -;
#X obj 381 284 dbtorms;
#X floatatom 382 264 5 0 0 0 - - -;
#X obj 117 89 phasor~;
#X floatatom 115 60 5 0 0 0 - - -;
#X text 77 13 Stuff to test it:;
#X obj 131 149 cpole~;
#X obj 241 262 *~ -1;
#X obj 21 261 env~ 16384;
#X floatatom 21 285 5 0 0 0 - - -;
#X obj 50 312 env~ 16384;
#X floatatom 50 336 5 0 0 0 - - -;
#X obj 138 181 cpole~;
#X obj 146 216 czero_rev~;
#X obj 154 264 czero_rev~;
#X msg 204 103 clear;
#X obj 262 50 cos~;
#X obj 261 83 *~ 0.02;
#X obj 193 50 sig~ 1.1;
#X obj 448 296 *~;
#X connect 0 0 1 0;
#X connect 2 0 12 0;
#X connect 4 0 3 0;
#X connect 5 0 13 0;
#X connect 6 0 7 0;
#X connect 7 0 32 0;
#X connect 8 0 9 0;
#X connect 9 0 7 1;
#X connect 10 0 11 0;
#X connect 11 0 14 0;
#X connect 12 0 14 1;
#X connect 12 0 13 1;
#X connect 13 0 22 2;
#X connect 13 0 28 2;
#X connect 13 0 29 2;
#X connect 13 0 30 2;
#X connect 14 0 22 3;
#X connect 14 0 23 0;
#X connect 14 0 29 3;
#X connect 15 0 16 0;
#X connect 17 0 4 1;
#X connect 17 0 35 1;
#X connect 18 0 17 0;
#X connect 19 0 22 0;
#X connect 19 0 24 0;
#X connect 19 0 35 0;
#X connect 20 0 19 0;
#X connect 22 0 28 0;
#X connect 22 1 28 1;
#X connect 23 0 28 3;
#X connect 23 0 30 3;
#X connect 24 0 25 0;
#X connect 26 0 27 0;
#X connect 28 0 26 0;
#X connect 28 0 29 0;
#X connect 28 1 29 1;
#X connect 29 0 30 0;
#X connect 29 1 30 1;
#X connect 30 0 0 0;
#X connect 30 0 4 0;
#X connect 30 1 15 0;
#X connect 31 0 22 0;
#X connect 31 0 28 0;
#X connect 32 0 33 0;
#X connect 33 0 5 0;
#X connect 33 0 10 0;
#X connect 34 0 33 0;
#X connect 35 0 3 1;
#X restore 462 499 pd test;
#X text 116 566 etc.: user-friendly filters;
#X text 13 403 (Pd also provides a suite of user-friendly filters.
This and other raw filters are provided for situations which the user-friendly
ones can't handle. See Chapter 8 of http://crca.ucsd.edu/~msp/techniques
for an introduction to the necessary theory.);
#X text 121 107 <-- signal to filter (real part);
#X text 120 189 <-- signal to filter (imaginary part);
#X obj 87 188 sig~;
#X obj 118 213 sig~;
#X text 152 215 <-- filter coefficient (real part);
#X obj 148 235 sig~;
#X text 162 262 <-- creation arguments initialize filter;
#X text 190 278 coefficient (real and imaginary part);
#X text 153 160 <-- set internal state (real&imaginary parts);
#X msg 67 159 set 0.6 0.8;
#X text 182 237 <-- filter coefficient (imaginary part);
#X text 17 295 The action of czero~ is:;
#X text 14 336 where y[n] is the output \, x[n] the input \, and a[n]
the filter coefficient (all complex numbers). The filter is always
stable.;
#X obj 56 260 czero~ 0.9 0.4;
#X obj 36 7 czero_rev~;
#X text 114 9 complex one-zero (non-recursive) "reverse" filter \,
raw;
#X text 11 34 Czero_rev~ filters a complex audio signal (first two
inlets) via a one-zero filter \, whose coefficients are controlled
by creation arguments or by another complex audio signal (remaining
two inlets). The impulse response is that of "rzero" reversed in time.
;
#X text 77 316 y[n] = - a[n] * x[n] + x[n-1];
#X text 15 385 The transfer function is H(Z) = -a + Z^-1.;
#X connect 0 0 34 0;
#X connect 1 0 34 0;
#X connect 23 0 34 1;
#X connect 24 0 34 2;
#X connect 26 0 34 3;
#X connect 30 0 34 0;
