#N canvas 347 191 514 431 12;
#X declare -lib iemmatrix;
#X obj 107 120 mtx_pack~ 3;
#X obj 106 85 sig~ 1;
#X obj 169 85 sig~ 2;
#X obj 230 85 sig~ 3;
#X obj 139 200 mtx_size;
#X floatatom 182 225 5 0 0 0 - - - 0;
#X floatatom 139 226 5 0 0 0 - - - 0;
#X obj 68 290 mtx_print;
#X text 43 29 packing signal vectors (usually 64 samples);
#X text 42 52 of multiple inputs into a matrix;
#X obj 396 404 mtx_unpack~;
#N canvas 460 154 494 184 META 0;
#X text 12 85 OUTLET_0 matrix;
#X text 12 125 HELP_PATCH_AUTHORS IOhannes m zmölnig;
#X text 12 25 LICENSE GPL-2+;
#X text 12 106 AUTHOR Franz Zotter;
#X text 12 65 INLET_n signal;
#X text 11 43 DESCRIPTION pack signal vectors into a matrix;
#X text 12 5 KEYWORDS signal matrix;
#X obj 13 150 declare -lib iemmatrix;
#X restore 381 6 pd META;
#X msg 390 84 \; pd dsp \$1;
#X obj 390 56 tgl 20 0 empty empty empty 0 -10 0 12 #fcfcfc #000000 #000000 0 1;
#X text 323 404 see also;
#N canvas 391 376 717 517 multichannel 0;
#X text 38 22 With Pd>=0.54 \, [mtx_pack~] has multichannel support.;
#X obj 545 114 tgl 20 0 empty empty empty 0 -10 0 12 #fcfcfc #000000 #000000 0 1;
#X obj 88 333 cnv 20 50 40 empty empty empty 20 12 0 12 #dfdfdf #404040 0;
#X obj 88 373 cnv 20 50 20 empty empty empty 20 12 0 12 #bbbbbb #404040 0;
#X obj 88 394 cnv 20 50 60 empty empty empty 20 12 0 12 #9f9f9f #404040 0;
#X text 103 333 ch#1;
#X text 103 434 ch#6;
#X text 103 373 ch#3;
#X text 103 393 ch#4;
#X obj 139 313 mtx_plot 512 120;
#X obj 131 243 cnv 20 20 20 empty empty 1-2 0 12 0 12 #dfdfdf #404040 0;
#X obj 170 243 cnv 20 20 20 empty empty 3 8 12 0 12 #bbbbbb #404040 0;
#X obj 208 243 cnv 20 20 20 empty empty 4-6 0 12 0 12 #9f9f9f #404040 0;
#X obj 139 207 snake~ in 2;
#X obj 302 197 snake~ in 3;
#X obj 302 97 osc~ 689.062;
#X obj 377 145 noise~;
#X obj 376 171 abs~;
#X obj 302 140 +~ 1;
#X obj 302 169 /~ 2;
#X obj 139 263 mtx_pack~ 3;
#X obj 140 165 sig~ 0.5;
#X obj 340 122 sig~ 1;
#X floatatom 473 263 5 0 0 0 channels - - 0;
#X floatatom 473 285 5 0 0 0 blocksize - - 0;
#X obj 473 238 route channels blocksize;
#X text 41 56 the output matrix contains all channels from all input signals;
#X obj 545 137 switch~ 128;
#X obj 213 165 phasor~ 750;
#X connect 1 0 27 0;
#X connect 13 0 20 0;
#X connect 14 0 20 2;
#X connect 15 0 18 0;
#X connect 16 0 17 0;
#X connect 17 0 14 2;
#X connect 18 0 19 0;
#X connect 19 0 14 0;
#X connect 20 0 9 0;
#X connect 20 1 25 0;
#X connect 21 0 13 0;
#X connect 22 0 14 1;
#X connect 25 0 23 0;
#X connect 25 1 24 0;
#X connect 28 0 13 1;
#X restore 69 392 pd multichannel;
#X obj 251 175 route dimen channels blocksize;
#X obj 251 200 unpack;
#X floatatom 251 225 5 0 0 0 - - - 0;
#X floatatom 290 225 5 0 0 0 - - - 0;
#X floatatom 407 203 5 0 0 0 channels: - - 0;
#X floatatom 407 223 5 0 0 0 blocksize: - - 0;
#X text 222 226 ==>;
#X obj 107 165 t a a;
#X obj 68 235 bng 20 250 50 0 empty empty empty 0 -10 0 12 #fcfcfc #000000 #000000;
#X obj 68 267 matrix;
#X text 336 376 part of iemmatrix;
#N canvas 0 0 450 376 compatibility 0;
#X text 107 14 COMPAT NOTE;
#X text 16 75 Older versions of iemmatrix (up to v0.4.2) output the matrices within the DSP-tick.;
#X text 15 117 While this allowed for zero-latency matrix processing of signals \, it broke all kinds of assumptions that Pd makes about how messages and signals get along.;
#X text 19 185 Starting with iemmatrix >= v0.4.3 \, the object will now only output data in the message phase of the next cycle.;
#X text 19 240 As an additional service to our legacy users \, Pd << v0.56 will not be affected by this change.;
#X text 12 296 If you rely on this behaviour \, you should change your patches. Most likely \, Pd's recent multichannel addition makes the old behaviour obsolete anyhow.;
#X restore 69 352 pd compatibility note;
#X connect 0 0 23 0;
#X connect 0 1 16 0;
#X connect 1 0 0 0;
#X connect 2 0 0 1;
#X connect 3 0 0 2;
#X connect 4 0 6 0;
#X connect 4 1 5 0;
#X connect 13 0 12 0;
#X connect 16 0 17 0;
#X connect 16 1 20 0;
#X connect 16 2 21 0;
#X connect 17 0 18 0;
#X connect 17 1 19 0;
#X connect 23 0 25 1;
#X connect 23 1 4 0;
#X connect 24 0 25 0;
#X connect 25 0 7 0;
