#N canvas 424 33 563 713 10;
#X obj 3 685 cnv 15 552 21 empty empty empty 20 12 0 14 #e0e0e0 #202020 0;
#X obj 5 320 cnv 3 550 3 empty empty inlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 5 567 cnv 3 550 3 empty empty outlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 5 610 cnv 3 550 3 empty empty arguments 8 12 0 13 #dcdcdc #000000 0;
#X obj 75 348 cnv 17 3 173 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 75 523 cnv 17 3 17 empty empty n+1 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 149 574 signal;
#X text 149 328 signal;
#X obj 75 544 cnv 17 3 17 empty empty n+2 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 76 575 cnv 17 3 30 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 131 633 2) float;
#X obj 281 140 tgl 25 0 empty empty empty 0 -6 0 8 #dcdcdc #000000 #000000 0 1;
#X floatatom 336 158 5 0 0 0 - - - 0;
#X floatatom 407 158 5 0 0 0 - - - 0;
#X text 15 129 1;
#X text 8 242 -1;
#X text 155 349 float;
#X text 161 365 list;
#X text 131 616 1) symbol;
#X text 196 616 - array name (required), f 58;
#X obj 266 116 noise~;
#N canvas 520 145 776 460 multichannel 0;
#X obj 151 265 tgl 20 0 empty empty empty 0 -6 0 8 #dcdcdc #000000 #000000 0 1;
#X obj 444 149 cnv 15 198 98 empty empty empty 20 12 0 14 #e0e0e0 #404040 0;
#N canvas 1 80 450 300 (subpatch) 0;
#X array 1-smp_\$0 22050 float 0;
#X coords 0 1 22049 -1 200 100 1 0 0;
#X restore 443 148 graph;
#X obj 445 29 cnv 15 198 98 empty empty empty 20 12 0 14 #e0e0e0 #404040 0;
#N canvas 1 80 450 300 (subpatch) 0;
#X array 0-smp_\$0 22050 float 0;
#X coords 0 1 22049 -1 200 100 1 0 0;
#X restore 444 28 graph;
#X obj 151 333 cyclone/record~ smp_\$0 2;
#N canvas 207 34 366 264 (subpatch) 0;
#X obj 51 101 tgl 42 0 \$0-tgl-s \$0-tgl-r empty 1 8 1 9 #dcdcdc #7c7c7c #fcfcfc 0 1;
#X obj 215 68 route dsp;
#X obj 215 37 receive pd;
#N canvas 977 77 379 291 set_color 0;
#X obj 47 30 inlet;
#X obj 147 200 s \$0-cnv;
#X obj 47 83 select 0 1;
#X obj 47 220 s \$0-tgl-r;
#N canvas 0 22 712 637 off 0;
#X obj 490 220 * -1;
#X obj 424 300 +;
#X obj 409 325 +;
#X obj 347 219 * -65536;
#X obj 424 220 * -256;
#X obj 409 356 - 1;
#X obj 390 189 unpack f f f;
#X obj 225 295 +;
#X obj 210 320 +;
#X obj 148 214 * -65536;
#X obj 225 215 * -256;
#X obj 291 215 * -1;
#X obj 210 351 - 1;
#X obj 191 184 unpack f f f;
#X obj 379 423 pack;
#X msg 395 152 124 124 124;
#X msg 203 154 220 220 220;
#X obj 238 121 t b b;
#X obj 238 81 inlet;
#X obj 378 485 outlet;
#X connect 0 0 1 1;
#X connect 1 0 2 1;
#X connect 2 0 5 0;
#X connect 3 0 2 0;
#X connect 4 0 1 0;
#X connect 5 0 14 1;
#X connect 6 0 3 0;
#X connect 6 1 4 0;
#X connect 6 2 0 0;
#X connect 7 0 8 1;
#X connect 8 0 12 0;
#X connect 9 0 8 0;
#X connect 10 0 7 0;
#X connect 11 0 7 1;
#X connect 12 0 14 0;
#X connect 13 0 9 0;
#X connect 13 1 10 0;
#X connect 13 2 11 0;
#X connect 14 0 19 0;
#X connect 15 0 6 0;
#X connect 16 0 13 0;
#X connect 17 0 16 0;
#X connect 17 1 15 0;
#X connect 18 0 17 0;
#X restore 47 113 pd off;
#X msg 47 180 color \$1 \$2 0;
#X msg 147 131 -4.86997e+06 -1.34937e+07;
#X msg 147 171 color \$1 0 \$2;
#X connect 0 0 2 0;
#X connect 2 0 4 0;
#X connect 2 1 6 0;
#X connect 4 0 5 0;
#X connect 4 0 7 0;
#X connect 5 0 3 0;
#X connect 6 0 7 0;
#X connect 6 0 5 0;
#X connect 7 0 1 0;
#X restore 215 165 pd set_color;
#X obj 135 122 r \$0-tgl-s;
#N canvas 121 482 450 300 (subpatch) 0;
#X obj 101 101 cnv 25 40 25 empty \$0-cnv DSP 3 13 0 20 #dcdcdc #7c7c7c 0;
#X coords 0 -1 1 1 42 27 1 100 100;
#X restore 51 144 pd;
#X obj 226 139 s \$0-tgl-r;
#X msg 226 115 set \$1;
#X msg 135 177 \; pd dsp \$1;
#N canvas 256 32 278 194 load_check 0;
#X obj 136 53 sig~ 1;
#X obj 74 24 loadbang;
#X obj 136 86 snapshot~;
#X obj 91 52 del 5;
#X obj 136 151 outlet;
#X obj 74 103 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 74 126 switch~;
#X connect 0 0 2 0;
#X connect 1 0 3 0;
#X connect 1 0 5 0;
#X connect 2 0 4 0;
#X connect 3 0 2 0;
#X connect 3 0 5 0;
#X connect 5 0 6 0;
#X restore 51 72 pd load_check;
#X connect 1 0 3 0;
#X connect 1 0 7 0;
#X connect 2 0 1 0;
#X connect 4 0 8 0;
#X connect 4 0 3 0;
#X connect 7 0 6 0;
#X connect 9 0 0 0;
#X coords 0 -1 1 1 44 72 2 50 100;
#X restore 28 257 pd;
#X text 28 123 If more than one channel is set \, the name convention for multi channel arrays is the table name preceded by the channel number (starting from zero) and "-" \, such as: "0-" \, "1-" \, "2-" \, "3-" \, and so on...;
#X text 30 197 You can manually set multi channel arrays in Pd like that or use the [buffer~] object \, which does this internally.;
#X msg 631 315 open, f 5;
#X text 28 43 Multi channel recording is possible (up to 64 channels) when you specify it with a second argument. The number of channels defines the number 'n' of inlets - where the first outlets are the channel inputs and the two righmost are the range intlets.;
#X obj 441 312 adc~;
#X obj 413 279 tgl 20 0 empty empty empty 0 -6 0 8 #dcdcdc #000000 #000000 0 1;
#X obj 413 347 cyclone/record~ buff_\$0 2;
#X obj 631 346 cyclone/buffer~ buff_\$0 500 2, f 16;
#X obj 198 298 noise~;
#X obj 151 367 cyclone/snapshot~ 1;
#X floatatom 151 392 7 0 0 0 - - - 12;
#X obj 413 379 cyclone/snapshot~ 1;
#X floatatom 413 404 7 0 0 0 - - - 12;
#X connect 0 0 5 0;
#X connect 5 0 16 0;
#X connect 9 0 14 0;
#X connect 11 0 13 0;
#X connect 11 1 13 1;
#X connect 12 0 13 0;
#X connect 13 0 18 0;
#X connect 15 0 5 0;
#X connect 15 0 5 1;
#X connect 16 0 17 0;
#X connect 18 0 19 0;
#X restore 455 230 pd multichannel;
#X obj 31 136 cnv 15 168 118 empty empty empty 20 12 0 14 #e0e0e0 #404040 0;
#X obj 75 327 cnv 17 3 17 empty empty 0-n 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 113 382 set <symbol>;
#X text 155 398 reset;
#X text 368 157 start;
#X text 442 157 end;
#X obj 269 246 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 #dcdcdc #000000 #000000 0 1;
#X msg 218 136 reset;
#X text 113 524 float/signal;
#X text 113 546 float/signal;
#X text 196 349 - non-zero starts recording \, 0 stops it, f 58;
#X text 196 366 - loop start and end points in ms, f 58;
#X text 196 382 - sets array for recording signals, f 58;
#X text 113 456 loop <float>;
#X text 101 427 append <float>;
#X obj 5 656 cnv 3 550 3 empty empty attributes 8 12 0 13 #dcdcdc #000000 0;
#X text 83 486 loopstart <float>;
#X text 95 502 loopend <float>;
#X text 196 502 - end point in ms (default array's size), f 58;
#X text 196 486 - start point in ms (default 0), f 58;
#X text 196 524 - start point in ms (default 0), f 58;
#X text 196 546 - end point in ms (default array's size), f 58;
#N canvas 846 230 382 419 attributes 1;
#X text 89 221 1;
#X text 82 334 -1;
#X text 96 353 0;
#X text 175 353 1000;
#X text 260 353 2000;
#X obj 104 92 noise~;
#X obj 68 87 tgl 25 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000 0 1;
#X text 98 375 |-------- time in ms --------|;
#X text 25 24 Append \, loop \, loopstart and loopend can be indicated as attributes/messages.;
#X obj 105 228 cnv 15 168 118 empty empty empty 20 12 0 14 #e0e0e0 #404040 0;
#X obj 104 136 cyclone/record~ \$0-test @loop 1 @loopstart 500 @loopend 1500 @append 1, f 31;
#N canvas 1 80 450 300 (subpatch) 0;
#X array \$0-test 88200 float 0;
#X coords 0 1 88199 -1 170 120 1 0 0;
#X restore 104 227 graph;
#X msg 166 90 loop \$1;
#X obj 166 68 tgl 15 0 empty empty empty 0 -6 0 8 #dcdcdc #000000 #000000 0 1;
#X obj 232 67 tgl 15 0 empty empty empty 0 -6 0 8 #dcdcdc #000000 #000000 0 1;
#X msg 232 90 append \$1;
#X connect 5 0 10 0;
#X connect 6 0 10 0;
#X connect 12 0 10 0;
#X connect 13 0 12 0;
#X connect 14 0 15 0;
#X connect 15 0 10 0;
#X restore 467 206 pd attributes;
#X text 196 633 -;
#X text 196 574 -;
#X text 208 574 sync output: signal from 0 (at start point) to 1 (at end point). When not recording \, a zero signal is output;
#X text 196 456 -;
#X text 208 456 non-zero enables loop (keep recording at start point when reaching the end) \, 0 disables it (default), f 56;
#X text 196 427 -;
#X text 208 427 non-zero enables append (records from where was last stopped) \, 0 disables it (default), f 56;
#X text 196 398 -;
#X text 208 398 resets loop points to default values (0 to whole array) and restarts recording if recording is on, f 56;
#X text 163 664 @append <f> | @loop <f> | @loopstart <f> | @loopend <f>;
#N canvas 1 80 450 300 (subpatch) 0;
#X array \$0-array 44100 float 0;
#X coords 0 1 44099 -1 170 120 1 0 0;
#X restore 30 135 graph;
#X obj 266 181 cyclone/record~ \$0-array;
#X text 196 328 - signal to record into an array (1 \, 2 or 4 channels), f 58;
#X text 208 633 channels to record \, max 64 \, default 1, f 56;
#X obj 499 69 cyclone/dsponoff~;
#X text 51 81 [record~] records up to 64 signal channels into arrays. By default \, recording stops when the array is filled., f 68;
#X obj 3 2 ./header record~;
#X text 22 61 Record signals in arrays;
#X obj 266 205 cyclone/snapshot~ 1;
#X floatatom 266 226 7 0 0 0 - - - 10;
#X obj 436 295 open-else;
#X text 504 272 click, f 6;
#X msg 436 273 tabwriter~;
#X text 162 281 Plugdata users or those with ELSE can also use [else/tabwriter~] as an alternative, f 42;
#X text 28 288 see also:;
#X obj 93 287 tabwrite~;
#X connect 11 0 56 0;
#X connect 12 0 56 1;
#X connect 13 0 56 2;
#X connect 20 0 56 0;
#X connect 29 0 56 0;
#X connect 56 0 63 0;
#X connect 63 0 64 0;
#X connect 64 0 28 0;
#X connect 67 0 65 0;
