#N canvas 605 39 558 595 10;
#X obj 2 570 cnv 15 552 21 empty empty empty 20 12 0 14 -233017 -33289
0;
#X obj 3 288 cnv 3 550 3 empty empty inlets 8 12 0 13 -228856 -1 0
;
#X obj 3 436 cnv 3 550 3 empty empty outlets 8 12 0 13 -228856 -1 0
;
#X obj 3 465 cnv 3 550 3 empty empty arguments 8 12 0 13 -228856 -1
0;
#X obj 113 295 cnv 17 3 41 empty empty 0 5 9 0 16 -228856 -162280 0
;
#X obj 113 339 cnv 17 3 17 empty empty 1 5 9 0 16 -228856 -162280 0
;
#X text 176 293 signal;
#X obj 113 358 cnv 17 3 17 empty empty 2 5 9 0 16 -228856 -162280 0
;
#X obj 113 396 cnv 17 3 17 empty empty 4 5 9 0 16 -228856 -162280 0
;
#X obj 113 443 cnv 17 3 17 empty empty 0 5 9 0 16 -228856 -162280 0
;
#X obj 113 377 cnv 17 3 17 empty empty 3 5 9 0 16 -228856 -162280 0
;
#X obj 113 377 cnv 17 3 17 empty empty 3 5 9 0 16 -228856 -162280 0
;
#X text 176 443 signal;
#X obj 113 415 cnv 17 3 17 empty empty 5 5 9 0 16 -228856 -162280 0
;
#X text 226 378 - input amplitude coefficient (a);
#X text 226 416 - feedback amplitude coefficient (c);
#X obj 2 4 cnv 15 553 42 empty empty empty 20 12 0 14 -233017 -66577
0;
#N canvas 0 22 450 278 (subpatch) 0;
#X coords 0 1 100 -1 554 42 1 0 0;
#X restore 2 3 graph;
#X obj 305 4 cnv 15 250 40 empty empty empty 12 13 0 18 -128992 -233080
0;
#N canvas 382 141 749 319 (subpatch) 0;
#X coords 0 -1 1 1 252 42 2 100 100;
#X restore 304 3 pd;
#X text 140 340 float/signal;
#X text 140 359 float/signal;
#X text 140 378 float/signal;
#X text 140 397 float/signal;
#X text 140 416 float/signal;
#X text 164 470 1) float;
#X text 164 487 2) float;
#X text 164 503 3) float;
#X text 164 519 4) float;
#X text 164 534 5) float;
#X text 228 470 - maximum delay time in ms (default 10 ms);
#X obj 121 132 noise~;
#X obj 168 163 *~;
#X obj 183 132 cyclone/train~ 1000 0.1;
#X text 228 549 - c: feedback gain coefficient (default 0);
#X text 164 549 6) float;
#X text 228 534 - b: feedforward gain coefficient (default 0);
#X text 228 519 - a: input gain coefficient (default 0);
#X text 228 487 - ff_D: ff delay time in ms (default 0);
#X text 228 503 - fb_D: fb delay time in ms (default 0);
#X text 226 293 - signal to pass through teeth filter;
#X text 188 309 list;
#X text 226 324 - clears buffer;
#X text 182 324 clear;
#X text 226 309 - updates all 6 arguments;
#X text 226 397 - feed forward delay amplitude coefficient (b);
#X text 226 339 - feed forward delay time in milliseconds (ff_D);
#X text 225 359 - feedback delay time in milliseconds (fb_D);
#X floatatom 209 172 5 0 100 0 - sdfsdf -;
#X floatatom 292 172 5 0 100 0 - sdfsdfs -;
#X floatatom 333 172 5 0 0 0 - sdfsdf -;
#X floatatom 375 172 5 0 0 0 - sdfsdf -;
#X text 301 157 a;
#X text 341 156 b;
#X text 381 156 c;
#X floatatom 250 172 5 0 100 0 - sdfsdf -;
#X text 208 156 ff D;
#X text 250 156 fb D;
#N canvas 392 79 592 495 filter_equation 0;
#X obj 27 47 cnv 15 290 140 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 80 65 |;
#X text 80 77 |;
#X text 80 89 |;
#X text 61 100 |;
#X text 103 100 |;
#X text 103 120 |;
#X text 61 120 |;
#X text 64 91 _______;
#X text 64 120 _______;
#X text 80 92 v;
#X text 142 92 |;
#X text 142 103 |;
#X text 142 73 |;
#X text 142 82 |;
#X text 142 68 ^;
#X text 226 66 |;
#X text 226 78 |;
#X text 226 90 |;
#X text 207 101 |;
#X text 249 101 |;
#X text 249 121 |;
#X text 207 121 |;
#X text 210 92 _______;
#X text 210 121 _______;
#X text 226 93 v;
#X text 172 94 |;
#X text 172 104 |;
#X text 172 72 |;
#X text 172 82 |;
#X text 172 67 ^;
#X text 249 58 >;
#X text 61 110 |z^-d1 |;
#X text 207 111 |z^-d2 |;
#X text 41 157 y[n] = a * x[n] + b * x[n-d1] + c * y[n-d2];
#X text 109 109 -(*b)-;
#X text 173 110 -(*c)-;
#X text 40 59 x[n] -----(*a)--(+)--(+)----------- y[n];
#X text 348 111 a = input gain coefficient;
#X text 348 126 b = feedforward gain coefficient;
#X text 348 141 c = feedback gain coefficient;
#X text 342 82 d1 = feed forward delay time;
#X text 342 96 d2 = feedback delay time;
#X floatatom 216 344 5 0 100 0 - - -;
#X obj 167 315 noise~;
#X obj 167 372 cyclone/teeth~ 100 70.5 93 0.25 0.33 0.925;
#X floatatom 316 343 5 0 100 0 - - -;
#X floatatom 366 343 5 0 0 0 - - -;
#X floatatom 416 344 5 0 0 0 - - -;
#X obj 319 266 hsl 128 15 -1 1 0 0 empty empty empty -2 -8 0 10 -228856
-1 -1 0 1;
#X obj 369 291 hsl 128 15 -1 1 0 0 empty empty empty -2 -8 0 10 -228856
-1 -1 0 1;
#X obj 419 317 hsl 128 15 -1 1 0 0 empty empty empty -2 -8 0 10 -228856
-1 -1 0 1;
#X text 444 316 feedback (c);
#X text 392 291 feedforward (b);
#X text 350 265 input (a);
#X floatatom 266 344 5 0 100 0 - - -;
#X text 220 324 d1;
#X text 270 324 d2;
#X msg 87 284 50 20.5 43 0.55 0.43 0.95;
#X text 85 261 list updates all arguments;
#X obj 73 23 cyclone/comment 0 16 DejaVu\ Sans\ Mono empty 0 0 0 0
0 255 255 255 0 0 comment;
#X text 60 215 If the delay time lies between two samples \, a simple
linear interpolation is performed.;
#X obj 149 408 ./out~;
#X connect 43 0 45 1;
#X connect 44 0 45 0;
#X connect 45 0 62 0;
#X connect 45 0 62 1;
#X connect 46 0 45 3;
#X connect 47 0 45 4;
#X connect 48 0 45 5;
#X connect 49 0 46 0;
#X connect 50 0 47 0;
#X connect 51 0 48 0;
#X connect 55 0 45 2;
#X connect 58 0 45 0;
#X restore 430 254 pd filter_equation;
#X text 226 443 - output from teeth filter;
#X obj 168 194 cyclone/teeth~ 80 80 50 0.5 0.5 0.8;
#X obj 17 56 cyclone/comment 0 14 DejaVu\ Sans\ Mono empty 0 0 0 0
0 255 255 255 0 0 Teeth comb filter;
#X obj 16 4 cyclone/comment 0 33 DejaVu\ Sans\ Mono empty 0 0 0 0 0
255 255 255 0 0 teeth~;
#X obj 322 28 cyclone/comment 0 13 DejaVu\ Sans\ Mono empty 0 224 228
220 0 255 255 255 0 0 Objects cloned from Max/MSP;
#X obj 363 4 cyclone/comment 0 24 DejaVu\ Sans\ Mono empty 0 224 228
220 0 255 255 255 0 0 cyclone;
#X text 75 87 [teeth~] is a comb filter with independent time control
of feedforward and feedback delays.;
#X obj 125 223 ./out~;
#N canvas 899 166 452 377 example 0;
#X obj 106 59 tgl 15 0 empty empty empty 17 7 0 10 -228856 -1 -1 1
1;
#X obj 106 83 metro 1500;
#X obj 106 135 mtof;
#X obj 106 35 loadbang;
#X floatatom 106 160 0 0 0 0 - - -;
#X text 251 186 <= independent feedforward;
#X text 281 204 delay time;
#X obj 140 282 ./out~;
#X obj 106 185 osc~;
#X obj 106 110 expr random(50 \, 80);
#X obj 203 186 +~ 15;
#X obj 203 160 osc~ 5;
#X obj 164 234 cyclone/teeth~ 20 15 20 0.5 1 0.95;
#X connect 0 0 1 0;
#X connect 1 0 9 0;
#X connect 2 0 4 0;
#X connect 3 0 0 0;
#X connect 4 0 8 0;
#X connect 8 0 12 0;
#X connect 9 0 2 0;
#X connect 10 0 12 1;
#X connect 11 0 10 0;
#X connect 12 0 7 0;
#X connect 12 0 7 1;
#X restore 477 231 pd example;
#X connect 31 0 32 0;
#X connect 32 0 60 0;
#X connect 33 0 32 1;
#X connect 48 0 60 1;
#X connect 49 0 60 3;
#X connect 50 0 60 4;
#X connect 51 0 60 5;
#X connect 55 0 60 2;
#X connect 60 0 66 1;
#X connect 60 0 66 0;
