#N canvas 478 23 562 603 10;
#X declare -stdpath ./;
#X obj 3 572 cnv 15 552 21 empty empty empty 20 12 0 14 #e0e0e0 #202020 0;
#X obj 3 373 cnv 3 550 3 empty empty inlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 3 481 cnv 3 550 3 empty empty outlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 3 516 cnv 3 550 3 empty empty arguments 8 12 0 13 #dcdcdc #000000 0;
#X obj 125 432 cnv 17 3 17 empty empty 1 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 125 455 cnv 17 3 17 empty empty 2 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 125 490 cnv 17 3 17 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 125 382 cnv 17 3 45 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 210 414 clear - clears the buffer;
#X text 205 491 signal - the filtered signal;
#X text 153 524 1) float - maximum delay time in ms (default 10);
#X text 153 537 2) float - delay time in ms (default 0);
#X text 153 549 3) float - gain coefficient (default 0);
#X text 204 381 signal - signal input to filter;
#X obj 143 149 noise~;
#X obj 190 183 *~;
#X obj 205 149 cyclone/train~ 1000 0.1;
#X floatatom 269 191 5 0 100 0 - adfsa - 0;
#X floatatom 349 191 5 -1 1 0 - adfsa - 0;
#X obj 190 214 cyclone/allpass~ 100 10 0.7;
#X text 214 397 list;
#X text 246 397 - updates all 3 arguments;
#X text 168 434 float/signal - D: delay time (im ms);
#X text 168 457 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 411 258 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 190 247 output~;
#X obj 2 6 header allpass~;
#X text 25 63 Allpass filter;
#X text 272 174 D;
#X text 356 174 A;
#X obj 24 253 declare -stdpath ./;
#X text 8 337 see also:;
#X text 169 333 Plugdata users or those with ELSE can also use [else/allpass.rev~] as an alternative, f 42;
#X text 454 308 click:;
#X obj 452 349 open-else;
#X msg 452 328 allpass.rev~;
#X obj 72 337 cyclone/comb~;
#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;
#X connect 36 0 35 0;
