#N canvas 702 77 548 597 12;
#X declare -stdpath ./;
#X floatatom 132 197 4 0 0 0 - - - 0;
#X obj 51 113 osc~ 100;
#X msg 67 145 clear;
#X msg 79 171 set 1;
#N canvas 1015 291 317 298 test 0;
#X obj 92 77 osc~;
#X floatatom 92 54 5 0 0 0 - - - 0;
#X obj 121 225 env~ 16384;
#X floatatom 121 249 5 0 0 0 - - - 0;
#X obj 130 106 tgl 15 0 empty empty empty 0 -6 0 8 #fcfcfc #000000
#000000 0 1;
#X obj 92 104 *~;
#X msg 108 134 set 1;
#X floatatom 159 108 4 -100 100 0 - - - 0;
#X obj 159 133 / 100;
#X text 115 17 Stuff to test it:;
#X obj 92 167 rzero_rev~;
#X obj 35 221 output~;
#X obj 151 64 declare -stdpath ./;
#X connect 0 0 5 0;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 4 0 5 1;
#X connect 5 0 10 0;
#X connect 6 0 10 0;
#X connect 7 0 8 0;
#X connect 8 0 10 1;
#X connect 10 0 2 0;
#X connect 10 0 11 0;
#X connect 10 0 11 1;
#X restore 405 468 pd test;
#X text 37 291 where y[n] is the output \, x[n] the input \, and a[n]
the filter coefficient. The filter is always stable., f 56;
#X obj 53 11 rzero_rev~;
#X text 142 11 real one-zero (non-recursive) "reverse" filter \, raw
;
#X obj 51 223 rzero_rev~ 1;
#X text 18 40 Rzero_rev~ filters an audio signal (left inlet) via a
one-zero real filter \, whose coefficient is controlled by a creation
argument or by an audio signal (right inlet). The impulse response
is that of "rzero" reversed in time., f 68;
#X text 100 272 y[n] = -a[n] * x[n] + x[n-1];
#X text 35 323 The transfer function is H(Z) = -a + Z^-1.;
#X text 155 225 <= creation argument initializes filter coefficient
;
#X text 164 197 <= filter coefficient (may be a signal);
#X text 125 171 <= set internal state;
#X text 111 144 <= clear internal state to zero;
#X text 122 113 <= signal to filter;
#X text 43 251 The action of rzero_rev~ is:;
#X obj 95 523 lop~;
#X text 16 524 see also:;
#X obj 178 456 rzero~;
#X obj 118 479 cpole~;
#X obj 118 456 rpole~;
#X obj 238 456 rzero_rev~;
#X obj 178 479 czero~;
#X obj 238 479 czero_rev~;
#X text 317 456 real;
#X text 316 478 complex;
#X text 115 437 1-pole;
#X text 175 437 1-zero;
#X text 242 421 1-zero \, reversed, f 8;
#X text 24 461 summary of raw filters:, f 12;
#X obj 136 523 hip~;
#X obj 177 523 bp~;
#X obj 212 523 vcf~;
#X text 293 523 - user-friendly filters;
#X obj 253 523 bob~;
#X obj 380 396 bng 15 250 50 0 empty empty empty 17 7 0 10 #dcdcdc
#000000 #000000;
#X text 23 349 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://msp.ucsd.edu/techniques.htm
for an introduction to the necessary theory (click) =>, f 69;
#N canvas 798 148 456 264 Read-More 0;
#X obj 11 59 inlet;
#X obj 11 190 pdcontrol;
#X msg 11 139 browse http://msp.ucsd.edu/techniques/latest/book-html/node127.html
;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X restore 380 429 pd Read-More;
#X obj 19 553 biquad~;
#X text 194 553 - not so friendly;
#X obj 80 552 fexpr~;
#X obj 135 552 slop~, f 7;
#X text 345 553 updated for Pd vrsion 0.38;
#X connect 0 0 8 1;
#X connect 1 0 8 0;
#X connect 2 0 8 0;
#X connect 3 0 8 0;
#X connect 37 0 39 0;
