#N canvas 476 32 518 527 12;
#X floatatom 64 436 5 0 0 0 - - - 0;
#X obj 64 406 snapshot~;
#X obj 34 15 throw~;
#X obj 34 39 catch~;
#X obj 285 370 metro 200;
#X obj 168 406 snapshot~;
#X obj 100 494 send~;
#X text 27 493 see also:;
#X floatatom 168 436 5 0 0 0 - - - 0;
#X obj 285 342 loadbang;
#X msg 395 357 \; pd dsp 1;
#X text 427 327 DSP on/off;
#X floatatom 160 220 5 0 0 0 - - - 0;
#X floatatom 62 224 5 0 0 0 - - - 0;
#X text 87 17 - summing signal bus and;
#X text 101 34 non-local connection, f 22;
#X obj 230 213 f \$0;
#X obj 230 188 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
#N canvas 525 216 510 156 execution-order 0;
#X obj 115 95 ../3.audio.examples/G05.execution.order;
#X text 46 30 You have to get the throw~ sorted before the catch~ or else you'll never get less than a block's delay. You can use the strategy given in the example below to control this.;
#X restore 346 415 pd execution-order;
#N canvas 611 127 576 445 reference 0;
#X obj 8 53 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 0;
#X obj 8 114 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0;
#X obj 8 151 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 0;
#X obj 7 190 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 0;
#X obj 8 321 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 0;
#X obj 9 363 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 0;
#X obj 9 420 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 0;
#X text 146 123 NONE;
#X obj 8 281 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 0;
#X obj 24 15 throw~ y;
#X obj 24 245 catch~ y;
#X text 107 376 1) symbol -;
#X text 107 393 2) number -;
#X text 190 392 number of channels (default: one).;
#X text 91 294 channels <float> - set number of channels to output.;
#X text 162 332 symbol - signal from matching [throw~] object(s).;
#X text 95 15 - throw signal to a matching [catch~] object.;
#X text 139 65 signal - signal to throw to a matching [catch~] object.;
#X text 97 84 set <symbol> - set throw name.;
#X text 114 159 1) symbol - throw symbol name (default: empty symbol).;
#X text 99 245 - catch signal from one or more [throw~] objects.;
#X text 190 376 catch name symbol (default: empty symbol).;
#X restore 329 26 pd reference;
#X text 426 27 <= click;
#X obj 4 68 cnv 1 510 1 empty empty empty 8 12 0 13 #000000 #000000 0;
#X obj 4 478 cnv 1 510 1 empty empty empty 8 12 0 13 #000000 #000000 0;
#X obj 146 494 tabsend~;
#X text 338 246 You can redirect [throw~] via a "set" message., f 16;
#X text 268 189 <- \$0 needs to be expanded from objects., f 23;
#N canvas 680 88 505 390 multichannel 0;
#X obj 304 247 metro 200;
#X obj 193 284 snapshot~;
#X floatatom 193 314 5 0 0 0 - - - 0;
#X obj 304 219 loadbang;
#X obj 273 284 snapshot~;
#X floatatom 273 314 5 0 0 0 - - - 0;
#X floatatom 44 208 5 0 0 0 - - - 0;
#X floatatom 118 207 5 0 0 0 - - - 0;
#X text 47 11 A [catch~] object may be directed to output multichannel signals via its second optional argument. A [throw~] object automatically uses as many channels as its input signal provides. If the matching [catch~] has fewer channels than that the extras are ignored. If the [throw~] object has fewer than the catch the extra output channels are left unchanged.;
#X obj 44 244 snake~ in 2;
#X obj 192 223 snake~ out 2;
#X text 274 354 see also:;
#X obj 352 355 snake~;
#X obj 410 355 clone;
#X msg 192 129 channels 1;
#X msg 206 158 channels 2;
#X text 298 130 message to set number of channels, f 18;
#X obj 44 282 throw~ bus3;
#X obj 192 187 catch~ bus3 2;
#X connect 0 0 1 0;
#X connect 0 0 4 0;
#X connect 1 0 2 0;
#X connect 3 0 0 0;
#X connect 4 0 5 0;
#X connect 6 0 9 0;
#X connect 7 0 9 1;
#X connect 9 0 17 0;
#X connect 10 0 1 0;
#X connect 10 1 4 0;
#X connect 14 0 18 0;
#X connect 15 0 18 0;
#X connect 18 0 10 0;
#X restore 346 441 pd multichannel;
#X text 277 493 updated for Pd version 0.54;
#X obj 395 322 set-dsp-tgl;
#X text 33 81 A [throw~] object copies its input to a local buffer which a [catch~] object of the same name reads from. Any number of [throw~] objects can add into one [catch~] object (but two [catch~] objects cannot share the same name.) A pair of [throw~]/[catch~]objects must have matching block sizes \, but they may be in different windows or even different patches., f 61;
#X msg 230 242 set \$1-bus2;
#X msg 242 272 set bus1;
#X obj 168 349 catch~ \$0-bus2;
#X obj 62 288 throw~ bus1;
#X obj 64 350 catch~ bus1;
#X obj 230 300 throw~ bus1;
#X obj 160 246 sig~ 25;
#X obj 62 251 sig~ 50;
#X connect 1 0 0 0;
#X connect 4 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 8 0;
#X connect 9 0 4 0;
#X connect 12 0 36 0;
#X connect 13 0 37 0;
#X connect 16 0 30 0;
#X connect 17 0 16 0;
#X connect 28 0 10 0;
#X connect 30 0 35 0;
#X connect 31 0 35 0;
#X connect 32 0 5 0;
#X connect 34 0 1 0;
#X connect 36 0 35 0;
#X connect 37 0 33 0;
