#N canvas 22 1 647 569 12;
#X text 427 536 updated for Pd version 0.26;
#X floatatom 62 506;
#N canvas 159 26 495 266 output 0;
#X obj 338 160 t b;
#X obj 338 110 f;
#X obj 338 60 inlet;
#X text 344 29 mute;
#X obj 338 185 f;
#X msg 425 178 0;
#X msg 338 85 bang;
#X obj 338 135 moses 1;
#X obj 425 153 t b f;
#X obj 397 117 moses 1;
#X obj 83 148 dbtorms;
#X obj 397 92 r master-lvl;
#X obj 83 42 r master-lvl;
#X obj 338 210 s master-lvl;
#X obj 22 181 inlet~;
#X obj 199 41 inlet;
#X text 199 18 level;
#X obj 199 100 s master-lvl;
#X msg 96 65 set \$1;
#X obj 96 89 outlet;
#X msg 214 64 \; pd dsp 1;
#X obj 83 194 line~;
#X obj 22 212 *~;
#X obj 22 241 dac~;
#X obj 83 171 pack 0 50;
#X text 20 158 audio;
#X text 93 110 show level;
#X connect 0 0 4 0;
#X connect 1 0 7 0;
#X connect 2 0 6 0;
#X connect 4 0 13 0;
#X connect 5 0 13 0;
#X connect 6 0 1 0;
#X connect 7 0 0 0;
#X connect 7 1 8 0;
#X connect 8 0 5 0;
#X connect 9 1 4 1;
#X connect 10 0 24 0;
#X connect 11 0 1 1;
#X connect 11 0 9 0;
#X connect 12 0 10 0;
#X connect 12 0 18 0;
#X connect 14 0 22 0;
#X connect 15 0 17 0;
#X connect 15 0 20 0;
#X connect 18 0 19 0;
#X connect 21 0 22 1;
#X connect 22 0 23 0;
#X connect 22 0 23 1;
#X connect 24 0 21 0;
#X restore 33 534 pd output;
#X msg 91 506 MUTE;
#X text 130 505 <-- output amplitude;
#N canvas 0 0 600 392 conversion-tables 0;
#X obj 26 130 loadbang;
#X graph graph1 0 0 123 10 302 148 502 48;
#X array dbtorms 123 float;
#X pop;
#X text 504 141 0;
#X text 506 41 10;
#X text 321 151 ------ 123 samples ------;
#X graph graph2 0 0 130 12000 309 325 509 225;
#X array mtof 130 float;
#X pop;
#X text 319 333 ------ 130 samples ------;
#X text 518 318 0;
#X text 520 218 12000;
#X msg 26 153 \; dbtorms read dbtorms.txt \; mtof read mtof.txt;
#X connect 0 0 9 0;
#X restore 476 437 pd conversion-tables;
#X obj 33 482 hip~ 5;
#X text 92 12 DELAYS;
#X obj 33 341 -~;
#X obj 30 241 tabread4~ mtof;
#X obj 33 317 *~ 3;
#X obj 69 318 *~ 2;
#X obj 49 266 phasor~;
#X floatatom 81 215;
#X obj 33 293 clip~ 0 0.667;
#X obj 30 190 line~;
#X obj 30 165 pack 0 1000;
#X obj 28 64 metro 1000;
#X obj 28 88 random 200;
#X obj 29 114 - 100;
#X obj 30 141 * 0.001;
#X obj 33 453 +~;
#X obj 44 374 delwrite~ delay1 2000;
#X floatatom 49 401;
#X obj 49 426 delread~ delay1 1000;
#X obj 27 41 loadbang;
#X text 210 37 You can delay a signal using the delwrite~ and delread~ objects. In this example \, the pitch of the oscillator is varying slightly so that the delayed signal is different from the straight signal.;
#X text 212 99 delread always delays the signal an integer number of samples and does no interpolation.;
#X text 211 137 The delwrite~ object creates the delay line \; you give it a name and a size in milliseconds. Each delwrite~ should have a different name.;
#X text 209 184 Delread~'s arguments are the name of a delwrite (of which there should be exactly one) and a delay time in milliseconds between 0 and the length of the delay line. Each delwrite~ may have as many delread~s as you wish \, which function as multiple delay taps.;
#X obj 30 215 +~ 60;
#X text 112 215 <-- pitch;
#X text 83 401 <-- delay time;
#X text 60 341 asymmetric triangle wave;
#X text 203 374 write to delay line;
#X text 199 427 read from delay line;
#X text 59 454 add the original and the delayed signal;
#X connect 1 0 2 1;
#X connect 2 0 1 0;
#X connect 3 0 2 2;
#X connect 6 0 2 0;
#X connect 8 0 21 0;
#X connect 8 0 22 0;
#X connect 9 0 12 0;
#X connect 10 0 8 0;
#X connect 11 0 8 1;
#X connect 12 0 11 0;
#X connect 12 0 14 0;
#X connect 13 0 30 1;
#X connect 14 0 10 0;
#X connect 15 0 30 0;
#X connect 16 0 15 0;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 19 0 20 0;
#X connect 20 0 16 0;
#X connect 21 0 6 0;
#X connect 23 0 24 0;
#X connect 24 0 21 1;
#X connect 25 0 17 0;
#X connect 30 0 9 0;
