#N canvas 349 24 797 697 12;
#X obj 613 514 t f f f;
#X obj 636 545 + 1;
#X obj 670 544 + 2;
#X text 20 660 see also:;
#X obj 63 312 pipe 2000;
#X text 105 152 numbers to store and output later;
#X msg 74 179 flush;
#X msg 84 207 clear;
#X text 108 347 delayed output;
#X obj 95 661 delay;
#X obj 146 661 timer;
#X text 169 280 set delay time;
#X text 571 660 updated for Pd version 0.33;
#X obj 45 16 pipe;
#X text 84 15 - message "delay line";
#X obj 63 380 print pipe;
#X obj 96 240 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
#X symbolatom 135 584 13 0 0 0 - - - 0;
#X msg 136 491 symbol ahoy;
#X msg 152 523 symbol cheers;
#X obj 135 615 print;
#X text 140 304 a single float creation argument initializes delay time (0 by default), f 37;
#X text 120 234 bang outputs the last received message after the delay time, f 30;
#X obj 602 573 pipe 5 6 7 1000;
#X obj 517 225 t f f b, f 12;
#X msg 603 264 symbol stop;
#X obj 560 264 + 1;
#X symbolatom 647 362 10 0 0 0 - - - 0;
#X floatatom 647 295 5 0 0 0 - - - 0;
#X text 690 295 delay time;
#X floatatom 272 523 5 0 0 0 - - - 0;
#X text 315 523 set delay time;
#X text 24 60 The [pipe] object stores a sequence of messages and outputs them after a specified delay time in milliseconds. The output is scheduled when storing the incoming message. Thus changing the delay time doesn't affect the messages that are already scheduled., f 58;
#X obj 135 553 pipe s 1000, f 20;
#X text 24 413 You can specify the data type with a first argument (which is a float by default). A symbol argument "s" \, "f" \, or "p" specifies a "symbol" \, "float" (number) \, or pointer type (untested). The delay time comes then as the last argument.;
#X obj 517 324 pipe f f s 1000, f 19;
#X text 466 67 You can specify compound messages (lists) by adding more than one argument. Again \, the delay time comes as the last argument and is also changed by the last inlet., f 42;
#X msg 431 265 50 70 hey;
#X text 466 132 A list input is possible in this example as Pd can distribute its elements to the inlets., f 42;
#X floatatom 123 279 5 0 0 0 - - - 0;
#X floatatom 63 152 5 0 0 0 - - - 0;
#X floatatom 517 192 5 0 0 0 - - - 0;
#X floatatom 517 362 5 0 0 0 - - - 0;
#X floatatom 582 362 5 0 0 0 - - - 0;
#X floatatom 602 601 5 0 0 0 - - - 0;
#X floatatom 653 601 5 0 0 0 - - - 0;
#X floatatom 704 601 5 0 0 0 - - - 0;
#X floatatom 63 346 5 0 0 0 - - - 0;
#X floatatom 613 488 5 0 0 0 - - - 0;
#X obj 11 49 cnv 1 780 1 empty empty empty 8 12 0 13 #000000 #000000 0;
#N canvas 747 105 570 534 reference 0;
#X obj 8 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 0;
#X obj 8 293 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0;
#X obj 8 417 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 0;
#X obj 7 506 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 0;
#X obj 7 259 cnv 1 550 1 empty empty rightmost: 8 12 0 13 #7c7c7c #000000 0;
#X obj 7 85 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 0;
#X obj 45 16 pipe;
#X text 84 15 - message "delay line".;
#X text 132 92 bang - sends the last received data after the delay time.;
#X text 125 112 flush - sends the scheduled messages immediately.;
#X text 125 132 clear - forget all scheduled messages.;
#X text 143 267 float - set the delay time in ms., f 49;
#X text 83 297 'number of inlets depends on creation arguments);
#X obj 7 157 cnv 1 550 1 empty empty n: 8 12 0 13 #7c7c7c #000000 0;
#X text 109 427 1) list -;
#X text 102 479 2) float - sets delay time in ms (default 0).;
#X obj 6 325 cnv 1 550 1 empty empty n: 8 12 0 13 #7c7c7c #000000 0;
#X text 33 160 - (number of inlets depends on creation arguments);
#X text 121 187 float - float input to delay (if type is a float)., f 54;
#X text 114 207 symbol - symbol input to delay (if type is a symbol)., f 55;
#X text 107 227 pointer - pointer input to delay (if type is a pointer).;
#X text 181 428 (optional) symbols sets 'n' number of inlets \, outlets and type: f default \, s and p - floats set float type and initial value (default 0)., f 49;
#X text 121 340 float - float delayed output (if type is a float)., f 54;
#X text 114 360 symbol - symbol delayed output (if type is a symbol)., f 55;
#X text 107 380 pointer - pointer delayed output (if type is a pointer).;
#X restore 593 16 pd reference;
#X text 687 15 <= click;
#X obj 10 647 cnv 1 780 1 empty empty empty 8 12 0 13 #000000 #000000 0;
#X text 119 178 output all scheduled messages immediately;
#X text 128 208 forget all scheduled messages;
#X obj 582 513 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
#X msg 515 514 2 3 4;
#X text 469 401 A float value can be used to set a float type and also initialize its value. In the example below you can test the initialized values with the bang message. Also note that a list gets spread over inlets as usual in Pd., f 43;
#X connect 0 0 23 0;
#X connect 0 1 1 0;
#X connect 0 2 2 0;
#X connect 1 0 23 1;
#X connect 2 0 23 2;
#X connect 4 0 47 0;
#X connect 6 0 4 0;
#X connect 7 0 4 0;
#X connect 16 0 4 0;
#X connect 17 0 20 0;
#X connect 18 0 33 0;
#X connect 19 0 33 0;
#X connect 23 0 44 0;
#X connect 23 1 45 0;
#X connect 23 2 46 0;
#X connect 24 0 35 0;
#X connect 24 1 26 0;
#X connect 24 2 25 0;
#X connect 25 0 35 2;
#X connect 26 0 35 1;
#X connect 28 0 35 3;
#X connect 30 0 33 1;
#X connect 33 0 17 0;
#X connect 35 0 42 0;
#X connect 35 1 43 0;
#X connect 35 2 27 0;
#X connect 37 0 35 0;
#X connect 39 0 4 1;
#X connect 40 0 4 0;
#X connect 41 0 24 0;
#X connect 47 0 15 0;
#X connect 48 0 0 0;
#X connect 55 0 23 0;
#X connect 56 0 23 0;
