#N canvas 1424 197 911 409 12; #N canvas 0 50 863 256 output 0; #X obj 50 170 catch~ mm_send_1; #X obj 180 170 catch~ mm_send_2; #X obj 310 170 catch~ mm_send_3; #X obj 440 170 catch~ mm_send_4; #X obj 50 130 clone -s 1 mm_input 4 4; #X obj 50 50 s~ mm_input_1; #X obj 50 90 s~ mm_mod_1_1; #X obj 160 90 s~ mm_mod_1_2; #X obj 270 90 s~ mm_mod_1_3; #X obj 380 90 s~ mm_mod_1_4; #X obj 160 50 s~ mm_input_2; #X obj 490 90 s~ mm_mod_2_1; #X obj 600 90 s~ mm_mod_2_2; #X obj 710 90 s~ mm_mod_2_3; #X obj 820 90 s~ mm_mod_2_4; #X obj 270 50 s~ mm_input_3; #X obj 930 90 s~ mm_mod_3_1; #X obj 1040 90 s~ mm_mod_3_2; #X obj 1150 90 s~ mm_mod_3_3; #X obj 1260 90 s~ mm_mod_3_4; #X obj 380 50 s~ mm_input_4; #X obj 1370 90 s~ mm_mod_4_1; #X obj 1480 90 s~ mm_mod_4_2; #X obj 1590 90 s~ mm_mod_4_3; #X obj 1700 90 s~ mm_mod_4_4; #X restore 369 78 pd output; #X text 384 145 2 - clone; #X text 384 164 3 - all send~; #X text 384 126 1 - all catch~; #X obj 70 47 bng 15 250 50 0 empty empty generate_matrix_mixer 17 7 0 10 -262144 -1 -1; #X msg 149 167 \; pd-output clear; #X obj 70 67 t b b b b; #X obj 256 115 s nrOutp; #X obj 182 115 s nrInp; #X obj 130 217 s init; #N canvas 951 162 486 434 genCatch~ 0; #X obj 90 73 inlet; #X obj 178 125 r init; #X obj 90 138 f; #X obj 90 162 until; #X obj 132 199 + 1; #X obj 90 199 f 1; #X msg 142 161 1; #X obj 90 306 pack f f; #X obj 108 113 r nrOutp; #X obj 90 223 t f b; #X obj 122 249 f 50; #X obj 163 249 + 130; #X msg 178 208 50; #X msg 90 330 \; pd-output obj \$2 170 catch~ mm_send_\$1; #X connect 0 0 2 0; #X connect 1 0 6 0; #X connect 1 0 12 0; #X connect 2 0 3 0; #X connect 3 0 5 0; #X connect 4 0 5 1; #X connect 5 0 4 0; #X connect 5 0 9 0; #X connect 6 0 5 1; #X connect 7 0 13 0; #X connect 8 0 2 1; #X connect 9 0 7 0; #X connect 9 1 10 0; #X connect 10 0 11 0; #X connect 10 0 7 1; #X connect 11 0 10 1; #X connect 12 0 10 1; #X restore 110 248 pd genCatch~; #N canvas 0 50 500 285 genClone 0; #X obj 69 53 inlet; #X obj 69 116 f; #X obj 122 142 r nrOutp; #X obj 87 91 r nrInp; #X obj 69 166 pack f f; #X msg 69 190 \; pd-output obj 50 130 clone -s 1 mm_input \$1 \$2; #X connect 0 0 1 0; #X connect 1 0 4 0; #X connect 2 0 4 1; #X connect 3 0 1 1; #X connect 4 0 5 0; #X restore 90 278 pd genClone; #N canvas 56 115 599 619 genSend~ 0; #X obj 207 43 inlet; #X obj 259 103 r init; #X obj 207 105 f; #X obj 207 129 until; #X obj 249 153 + 1; #X obj 207 153 f 1; #X msg 259 128 1; #X obj 247 301 pack f f; #X obj 225 80 r nrInp; #X msg 247 326 \; pd-output obj \$2 50 s~ mm_input_\$1; #X obj 131 326 f; #X obj 131 350 until; #X obj 173 384 + 1; #X obj 131 384 f 1; #X msg 183 349 1; #X obj 149 301 r nrOutp; #X msg 131 529 \; pd-output obj \$3 90 s~ mm_mod_\$2_\$1; #X obj 131 505 pack f f f; #X obj 223 421 r init; #X obj 131 408 t f b; #X obj 198 476 f 50; #X obj 242 476 + 110; #X msg 223 449 50; #X obj 207 177 t b b f b; #X obj 325 219 r init; #X obj 300 274 f 50; #X obj 344 274 + 110; #X msg 325 247 50; #X connect 0 0 2 0; #X connect 1 0 6 0; #X connect 2 0 3 0; #X connect 3 0 5 0; #X connect 4 0 5 1; #X connect 5 0 4 0; #X connect 5 0 23 0; #X connect 6 0 5 1; #X connect 7 0 9 0; #X connect 8 0 2 1; #X connect 10 0 11 0; #X connect 11 0 13 0; #X connect 12 0 13 1; #X connect 13 0 12 0; #X connect 13 0 19 0; #X connect 14 0 13 1; #X connect 15 0 10 1; #X connect 17 0 16 0; #X connect 18 0 22 0; #X connect 19 0 17 0; #X connect 19 1 20 0; #X connect 20 0 21 0; #X connect 20 0 17 2; #X connect 21 0 20 1; #X connect 22 0 20 1; #X connect 23 0 10 0; #X connect 23 1 14 0; #X connect 23 2 7 0; #X connect 23 2 17 1; #X connect 23 3 25 0; #X connect 24 0 27 0; #X connect 25 0 26 0; #X connect 25 0 7 1; #X connect 26 0 25 1; #X connect 27 0 25 1; #X restore 70 307 pd genSend~; #X text 360 106 paste order for zero latency:; #X text 363 187 then cut/repaste the heads of all audio chains that feed the send~s (but not if there is feedback \, see https://forum.pdpatchrepo.info/topic/13512/s-r-throw-catch-latency-and-object-creation-order for details); #X obj 182 89 nbx 3 18 1 48 0 1 empty empty nr_inputs 0 -8 0 10 -262144 -1 -1 4 256; #X obj 256 89 nbx 3 18 1 48 0 1 empty empty nr_outputs 0 -8 0 10 -262144 -1 -1 4 256; #X text 362 51 open me to copy the mixer objects; #X connect 4 0 6 0; #X connect 6 0 12 0; #X connect 6 1 11 0; #X connect 6 2 10 0; #X connect 6 3 5 0; #X connect 6 3 9 0; #X connect 15 0 8 0; #X connect 16 0 7 0;