#N canvas 348 50 560 539 10;
#X declare -stdpath ./;
#X obj 3 512 cnv 15 552 21 empty empty empty 20 12 0 14 #e0e0e0 #202020 0;
#X obj 3 313 cnv 3 550 3 empty empty inlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 3 421 cnv 3 550 3 empty empty outlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 3 456 cnv 3 550 3 empty empty arguments 8 12 0 13 #dcdcdc #000000 0;
#X obj 125 372 cnv 17 3 17 empty empty 1 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 125 395 cnv 17 3 17 empty empty 2 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 125 430 cnv 17 3 17 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 125 322 cnv 17 3 45 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 210 354 clear - clears the buffer;
#X text 205 431 signal - the filtered signal;
#X text 153 464 1) float - maximum delay time in ms (default 10);
#X text 153 477 2) float - delay time in ms (default 0);
#X text 153 489 3) float - gain coefficient (default 0);
#X text 204 321 signal - signal input to filter;
#X obj 133 151 noise~;
#X obj 180 183 *~;
#X obj 195 151 cyclone/train~ 1000 0.1;
#X floatatom 260 193 5 0 100 0 - adfsa - 0;
#X floatatom 339 193 5 -1 1 0 - adfsa - 0;
#X obj 180 214 cyclone/allpass~ 100 10 0.7;
#X text 214 337 list;
#X text 246 337 - updates all 3 arguments;
#X text 168 374 float/signal - D: delay time (im ms);
#X text 168 397 float/signal - a: gain coefficient;
#N canvas 580 118 535 453 Filter 0;
#X text 388 101 a = gain coefficient;
#X text 388 116 D = Delay time in ms;
#X obj 100 56 cnv 15 260 120 empty empty empty 20 12 0 14 #dcdcdc #404040 0;
#X text 150 69 |;
#X text 150 81 |;
#X text 150 93 |;
#X text 131 104 |;
#X text 173 104 |;
#X text 173 124 |;
#X text 131 124 |;
#X text 134 95 _______;
#X text 134 124 _______;
#X text 179 113 -----;
#X text 150 96 v;
#X text 205 95 |;
#X text 205 107 |;
#X text 205 71 |;
#X text 205 83 |;
#X text 205 70 ^;
#X text 291 69 |;
#X text 291 81 |;
#X text 291 93 |;
#X text 272 104 |;
#X text 314 104 |;
#X text 314 124 |;
#X text 272 124 |;
#X text 275 95 _______;
#X text 275 124 _______;
#X text 291 96 v;
#X text 236 95 |;
#X text 236 107 |;
#X text 236 71 |;
#X text 236 83 |;
#X text 236 70 ^;
#X text 312 62 >;
#X text 238 113 -(*a)-;
#X text 131 114 | z^-D |;
#X text 272 114 | z^-D |;
#X text 114 152 y(n) = -a * x(n) + x(n-D) + a * y(n-D);
#X text 110 61 x[n] ---(*-a)--(+)--(+)----------- y[n];
#X floatatom 233 314 5 0 100 0 - - - 0;
#X obj 154 296 noise~;
#X text 237 294 d1;
#X text 169 260 updates all arguments;
#X floatatom 313 315 5 0 100 0 - - - 0;
#X obj 316 291 hsl 128 15 -1 1 0 0 empty empty empty -2 -8 0 10 #dcdcdc #000000 #000000 0 1;
#X text 71 12 Here's the filter diagram and equation for the allpass~ filter:;
#X msg 106 260 20 13 0.9;
#X obj 154 336 cyclone/allpass~ 100 50 0.8;
#X text 348 290 gain (a);
#X text 63 197 If the delay time lies between two samples \, a simple linear interpolation is performed.;
#X obj 154 373 output~;
#X connect 40 0 48 1;
#X connect 41 0 48 0;
#X connect 44 0 48 2;
#X connect 45 0 44 0;
#X connect 47 0 48 0;
#X connect 48 0 51 0;
#X restore 420 276 pd Filter Equation;
#X text 78 87 Use [allpass~] for filtering and delay effects. The All Pass filter passes all frequencies without altering the gain - but changes the frequencies' phase.;
#X obj 180 247 output~;
#X obj 2 6 header allpass~;
#X text 25 63 Allpass filter;
#X text 263 176 D;
#X text 346 180 A;
#X obj 31 260 declare -stdpath ./;
#X connect 14 0 15 0;
#X connect 15 0 19 0;
#X connect 16 0 15 1;
#X connect 17 0 19 1;
#X connect 18 0 19 2;
#X connect 19 0 26 0;
