#N canvas 476 32 521 526 12;
#X floatatom 34 436 5 0 0 0 - - - 0;
#X obj 374 234 sig~ 50;
#X obj 34 406 snapshot~;
#X obj 374 269 throw~ signal1;
#X obj 42 251 sig~ 25;
#X obj 34 350 catch~ signal1;
#X obj 34 15 throw~;
#X obj 34 39 catch~;
#X obj 285 370 metro 200;
#X obj 168 406 snapshot~;
#X obj 168 349 catch~ signal2;
#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 42 225 5 0 0 0 - - - 0;
#X floatatom 374 205 5 0 0 0 - - - 0;
#X text 87 17 - summing signal bus and;
#X text 101 34 non-local connection, f 22;
#X obj 102 305 throw~ \$0-signal;
#X msg 114 277 set signal;
#X msg 102 251 set \$1-signal;
#X obj 102 218 f \$0;
#X obj 102 193 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 210 251 You can redirect [throw~] via a "set" message., f 16;
#X text 140 194 <- \$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 192 187 catch~ signal3 2;
#X obj 273 284 snapshot~;
#X floatatom 273 314 5 0 0 0 - - - 0;
#X obj 44 282 throw~ signal3;
#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 connect 0 0 1 0;
#X connect 0 0 5 0;
#X connect 1 0 2 0;
#X connect 3 0 0 0;
#X connect 4 0 12 0;
#X connect 5 0 6 0;
#X connect 8 0 11 0;
#X connect 9 0 11 1;
#X connect 11 0 7 0;
#X connect 12 0 1 0;
#X connect 12 1 5 0;
#X connect 16 0 4 0;
#X connect 17 0 4 0;
#X restore 346 441 pd multichannel;
#X text 277 493 updated for Pd version 0.54;
#X text 33 81 A [throw~] object copies its input to a local buffer which all [catch~] objects of the same name read from. They may be in different windows or even different patches. 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., f 61;
#X obj 395 322 set-dsp-tgl;
#X connect 1 0 3 0;
#X connect 2 0 0 0;
#X connect 4 0 21 0;
#X connect 5 0 2 0;
#X connect 8 0 2 0;
#X connect 8 0 9 0;
#X connect 9 0 13 0;
#X connect 10 0 9 0;
#X connect 14 0 8 0;
#X connect 17 0 4 0;
#X connect 18 0 1 0;
#X connect 22 0 21 0;
#X connect 23 0 21 0;
#X connect 24 0 23 0;
#X connect 25 0 24 0;
#X connect 37 0 15 0;
