aboutsummaryrefslogtreecommitdiff
path: root/matrixctrl.pd
diff options
context:
space:
mode:
Diffstat (limited to 'matrixctrl.pd')
-rw-r--r--matrixctrl.pd543
1 files changed, 543 insertions, 0 deletions
diff --git a/matrixctrl.pd b/matrixctrl.pd
new file mode 100644
index 0000000..e4442d2
--- /dev/null
+++ b/matrixctrl.pd
@@ -0,0 +1,543 @@
+#N struct 1045-color float x float y float farbe;
+#N struct 1045-color-display float x float y float farbe;
+#N struct 1048-color float x float y float farbe;
+#N struct 1048-color-display float x float y float farbe;
+#N struct 1042-matrixctrl float x float y float size float color float
+state;
+#N canvas 426 166 687 425 10;
+#N canvas 227 417 377 370 template 0;
+#X obj 9 9 struct \$0-matrixctrl float x float y float size float color
+float state;
+#X obj 28 312 filledpolygon color 0 1 0 0 0 size size size size 0 0
+0;
+#X obj 9 52 route click change;
+#X obj 91 152 bang;
+#X obj 91 192 set \$0-matrixctrl size;
+#X obj 28 122 t p p p;
+#X obj 9 342 outlet;
+#X obj 28 282 set \$0-matrixctrl color state;
+#X obj 28 222 get \$0-matrixctrl state;
+#X obj 48 92 outlet;
+#X obj 9 72 t b p b;
+#X obj 91 172 value _\$0_size;
+#X obj 28 242 expr if($f1==0 \, _\$0_color1 \, _\$0_color0) \; if($f1==0
+\, 1 \, 0);
+#X connect 0 0 2 0;
+#X connect 2 0 10 0;
+#X connect 2 1 3 0;
+#X connect 3 0 11 0;
+#X connect 5 0 8 0;
+#X connect 5 1 7 2;
+#X connect 5 2 4 1;
+#X connect 8 0 12 0;
+#X connect 10 0 6 0;
+#X connect 10 1 5 0;
+#X connect 10 2 9 0;
+#X connect 11 0 4 0;
+#X connect 12 0 7 0;
+#X connect 12 1 7 1;
+#X restore 15 151 pd template;
+#N canvas 1349 184 689 687 generate 0;
+#X obj 64 553 symbol \$0-matrixctrl;
+#X obj 18 653 s pd-\$0-gui;
+#X obj 311 512 pack f f;
+#X obj 168 452 f+ 0 1;
+#X obj 18 392 until;
+#X obj 18 452 f+ 0 1;
+#X obj 168 492 i;
+#X obj 18 593 pack f f s f;
+#X obj 18 422 t b b;
+#X msg 311 532 clear \, donecanvasdialog 1 -3 2 0 0 \$1 \$2 \$1 \$2
+20 20 \, dirty 0;
+#X obj 311 381 pack f f;
+#X obj 311 421 s \$0-matrixctrl;
+#X msg 311 401 donecanvasdialog 1 -3 2 0 -1 1 1 \$1 \$2 100 50 \, dirty
+0;
+#X msg 18 613 scalar \$3 \$1 \$2 \$4 899 0;
+#X obj 121 42 value _\$0_size;
+#X obj 135 112 value _\$0_column;
+#X obj 108 142 value _\$0_row;
+#X obj 18 12 loadbang;
+#X obj 18 372 expr _\$0_row * _\$0_column;
+#X obj 168 472 expr $f1 / _\$0_column;
+#X obj 18 472 expr $f1 % _\$0_column;
+#X obj 33 232 s \$0-INIT;
+#X obj 18 32 t b b b b b;
+#X obj 265 182 inlet;
+#X obj 304 222 unpack f f;
+#X obj 285 22 inlet;
+#X obj 285 42 t b f;
+#X obj 121 22 expr if( \$3 == 0 \, 13 \, \$3 );
+#X obj 356 361 expr _\$0_size * _\$0_row + 2;
+#X obj 311 341 expr _\$0_size * _\$0_column + 2;
+#X obj 311 321 t b b;
+#X obj 356 472 expr _\$0_size * _\$0_row;
+#X obj 311 492 expr _\$0_size * _\$0_column;
+#X obj 311 452 t b b;
+#X obj 168 512 expr $f1 * _\$0_size;
+#X obj 18 512 expr $f1 * _\$0_size;
+#X obj 87 573 value _\$0_size;
+#X obj 18 271 t b;
+#X obj 18 292 t b b b b b;
+#X obj 265 202 t b b a;
+#X obj 135 92 \$1;
+#X obj 108 122 \$2;
+#X text 151 244 (column and row are switched in the variable order
+\, because the patch was made so from the beginning);
+#X obj 18 352 t b b b;
+#X obj 108 72 t b b;
+#X obj 49 132 t b b;
+#X obj 76 172 value _\$0_color1;
+#X obj 49 202 value _\$0_color0;
+#X obj 49 182 899;
+#X obj 438 22 inlet;
+#X obj 522 92 unpack f f;
+#X obj 438 42 route bang;
+#N canvas 1392 258 311 289 reset-color 0;
+#X obj 23 81 until;
+#X obj 63 171 pointer \$0-matrixctrl;
+#X obj 63 121 symbol pd-\$0-gui;
+#X msg 23 101 next;
+#X msg 63 141 traverse \$1;
+#X obj 23 41 t b b;
+#X obj 23 61 expr _\$0_row * _\$0_column;
+#X obj 23 21 inlet;
+#X obj 63 221 get \$0-matrixctrl state;
+#X obj 63 261 set \$0-matrixctrl color;
+#X obj 63 191 t p p;
+#X obj 63 241 expr if($f1==1 \, _\$0_color1 \, _\$0_color0);
+#X connect 0 0 3 0;
+#X connect 1 0 10 0;
+#X connect 2 0 4 0;
+#X connect 3 0 1 0;
+#X connect 4 0 1 0;
+#X connect 5 0 6 0;
+#X connect 5 1 2 0;
+#X connect 6 0 0 0;
+#X connect 7 0 5 0;
+#X connect 8 0 11 0;
+#X connect 10 0 8 0;
+#X connect 10 1 9 1;
+#X connect 11 0 9 0;
+#X restore 495 122 pd reset-color;
+#X obj 495 72 t b a;
+#X obj 76 152 800;
+#X obj 438 152 s pd-\$0-color-selector;
+#X msg 438 132 vis 1;
+#N canvas 439 459 518 243 \$0-color-selector 0;
+#N canvas 298 464 528 328 color-sel-gui 0;
+#X obj 12 59 ds-color-sel;
+#X obj 12 154 ds-color-sel;
+#X text 12 41 "Off" color;
+#X text 12 136 "On" color;
+#X text 12 13 Click the desired color for the fields \, and click the
+button when you're finished.;
+#X obj 425 25 bng 15 250 50 0 \$0-send-colors \$0-send-colors-i empty
+17 7 0 10 -228856 -1 -1;
+#X text 442 23 Send colors;
+#X obj 12 258 pack s f f;
+#X msg 12 238 symbol color;
+#X obj 12 298 s \$0-color-reset;
+#X msg 12 278 \$2 \$3;
+#X connect 0 0 7 1;
+#X connect 1 0 7 2;
+#X connect 5 0 8 0;
+#X connect 7 0 10 0;
+#X connect 8 0 7 0;
+#X connect 10 0 9 0;
+#X coords 0 -1 1 1 506 217 2 10 10;
+#X restore 5 14 pd color-sel-gui;
+#X restore 438 172 pd \$0-color-selector;
+#X obj 515 42 r \$0-color-reset;
+#N canvas 547 322 688 374 change-cellsize 0;
+#X obj 33 92 until;
+#X obj 124 182 pointer \$0-matrixctrl;
+#X obj 83 92 symbol pd-\$0-gui;
+#X msg 124 162 next;
+#X msg 83 112 traverse \$1;
+#X obj 33 72 expr _\$0_row * _\$0_column;
+#X obj 33 332 set \$0-matrixctrl x y size;
+#X obj 173 212 f+ 0 1;
+#X obj 33 212 f+ 0 1;
+#X obj 173 252 i;
+#X obj 173 232 expr $f1 / _\$0_column;
+#X obj 33 232 expr $f1 % _\$0_column;
+#X obj 173 272 expr $f1 * _\$0_size;
+#X obj 33 272 expr $f1 * _\$0_size;
+#X obj 135 312 value _\$0_size;
+#X obj 33 132 t b b b b;
+#X obj 331 242 pack f f;
+#X obj 376 202 expr _\$0_size * _\$0_row;
+#X obj 331 222 expr _\$0_size * _\$0_column;
+#X obj 331 182 t b b;
+#X obj 331 282 s pd-\$0-gui;
+#X msg 331 262 donecanvasdialog 1 -3 2 0 0 \$1 \$2 \$1 \$2 20 20 \,
+dirty 0;
+#X obj 331 112 pack f f;
+#X obj 331 152 s \$0-matrixctrl;
+#X msg 331 132 donecanvasdialog 1 -3 2 0 -1 1 1 \$1 \$2 100 50 \, dirty
+0;
+#X obj 376 92 expr _\$0_size * _\$0_row + 2;
+#X obj 331 72 expr _\$0_size * _\$0_column + 2;
+#X obj 331 52 t b b;
+#X obj 33 52 t b b b b;
+#X text 328 303 o mesmo de generate \, mas sem clear. nao é muito
+eficiente ter que se repetir o código todo.;
+#X obj 33 22 inlet;
+#X connect 0 0 15 0;
+#X connect 1 0 6 3;
+#X connect 2 0 4 0;
+#X connect 3 0 1 0;
+#X connect 4 0 1 0;
+#X connect 5 0 0 0;
+#X connect 7 0 10 0;
+#X connect 8 0 11 0;
+#X connect 9 0 12 0;
+#X connect 10 0 9 0;
+#X connect 11 0 13 0;
+#X connect 12 0 6 1;
+#X connect 13 0 6 0;
+#X connect 14 0 6 2;
+#X connect 15 0 8 0;
+#X connect 15 1 7 0;
+#X connect 15 2 14 0;
+#X connect 15 3 3 0;
+#X connect 16 0 21 0;
+#X connect 17 0 16 1;
+#X connect 18 0 16 0;
+#X connect 19 0 18 0;
+#X connect 19 1 17 0;
+#X connect 21 0 20 0;
+#X connect 22 0 24 0;
+#X connect 24 0 23 0;
+#X connect 25 0 22 1;
+#X connect 26 0 22 0;
+#X connect 27 0 26 0;
+#X connect 27 1 25 0;
+#X connect 28 0 5 0;
+#X connect 28 1 2 0;
+#X connect 28 2 8 1;
+#X connect 28 3 7 1;
+#X connect 28 3 27 0;
+#X connect 28 3 19 0;
+#X connect 30 0 28 0;
+#X restore 285 62 pd change-cellsize;
+#X connect 0 0 7 2;
+#X connect 2 0 9 0;
+#X connect 3 0 19 0;
+#X connect 4 0 8 0;
+#X connect 5 0 20 0;
+#X connect 6 0 34 0;
+#X connect 7 0 13 0;
+#X connect 8 0 5 0;
+#X connect 8 1 3 0;
+#X connect 9 0 1 0;
+#X connect 10 0 12 0;
+#X connect 12 0 11 0;
+#X connect 13 0 1 0;
+#X connect 17 0 22 0;
+#X connect 18 0 4 0;
+#X connect 19 0 6 0;
+#X connect 20 0 35 0;
+#X connect 22 0 37 0;
+#X connect 22 1 21 0;
+#X connect 22 2 45 0;
+#X connect 22 3 44 0;
+#X connect 22 4 27 0;
+#X connect 23 0 39 0;
+#X connect 24 0 16 0;
+#X connect 24 1 15 0;
+#X connect 25 0 26 0;
+#X connect 26 0 59 0;
+#X connect 26 1 14 0;
+#X connect 27 0 14 0;
+#X connect 28 0 10 1;
+#X connect 29 0 10 0;
+#X connect 30 0 29 0;
+#X connect 30 1 28 0;
+#X connect 31 0 2 1;
+#X connect 32 0 2 0;
+#X connect 33 0 32 0;
+#X connect 33 1 31 0;
+#X connect 34 0 7 1;
+#X connect 35 0 7 0;
+#X connect 36 0 7 3;
+#X connect 37 0 38 0;
+#X connect 38 0 43 0;
+#X connect 38 1 0 0;
+#X connect 38 2 36 0;
+#X connect 38 3 33 0;
+#X connect 38 4 30 0;
+#X connect 39 0 37 0;
+#X connect 39 1 21 0;
+#X connect 39 2 24 0;
+#X connect 40 0 15 0;
+#X connect 41 0 16 0;
+#X connect 43 0 18 0;
+#X connect 43 1 5 1;
+#X connect 43 2 3 1;
+#X connect 44 0 41 0;
+#X connect 44 1 40 0;
+#X connect 45 0 48 0;
+#X connect 45 1 54 0;
+#X connect 48 0 47 0;
+#X connect 49 0 51 0;
+#X connect 50 0 47 0;
+#X connect 50 1 46 0;
+#X connect 51 0 56 0;
+#X connect 51 1 53 0;
+#X connect 53 0 52 0;
+#X connect 53 1 50 0;
+#X connect 54 0 46 0;
+#X connect 56 0 55 0;
+#X connect 58 0 53 0;
+#X restore 15 121 pd generate;
+#N canvas 290 512 450 300 \$0-gui 0;
+#X scalar 1042-matrixctrl 0 0 17 899 0 \;;
+#X scalar 1042-matrixctrl 17 0 17 899 0 \;;
+#X scalar 1042-matrixctrl 34 0 17 899 0 \;;
+#X scalar 1042-matrixctrl 51 0 17 800 1 \;;
+#X scalar 1042-matrixctrl 0 17 17 800 1 \;;
+#X scalar 1042-matrixctrl 17 17 17 899 0 \;;
+#X scalar 1042-matrixctrl 34 17 17 800 1 \;;
+#X scalar 1042-matrixctrl 51 17 17 899 0 \;;
+#X coords 0 0 68 34 68 34 2 20 20;
+#X restore 101 51 pd \$0-gui;
+#X obj 15 241 outlet;
+#X obj 15 291 namecanvas \$0-matrixctrl;
+#X obj 15 71 inlet;
+#N canvas 789 175 369 465 gui-output 0;
+#X obj 25 19 inlet;
+#X obj 85 429 outlet;
+#X obj 25 99 until;
+#X obj 85 149 pointer \$0-matrixctrl;
+#X obj 85 99 symbol pd-\$0-gui;
+#X msg 85 119 traverse \$1;
+#X msg 25 119 next;
+#X obj 25 39 t b b;
+#X obj 85 169 get \$0-matrixctrl state;
+#X obj 25 79 t f f;
+#X obj 85 189 list-abs/last-x;
+#X obj 85 209 list-abs/list-rev;
+#X obj 85 379 list trim;
+#X text 65 18 reads fields and gives output;
+#X obj 85 399 iemmatrix/mtx_transpose;
+#X obj 154 319 pack;
+#X obj 175 299 value _\$0_column;
+#X obj 154 279 value _\$0_row;
+#X msg 154 339 list matrix \$1 \$2;
+#X obj 85 359 list prepend;
+#X obj 154 239 r \$0-INIT;
+#X obj 154 259 t b b;
+#X obj 25 59 expr _\$0_row * _\$0_column;
+#X connect 0 0 7 0;
+#X connect 2 0 6 0;
+#X connect 3 0 8 0;
+#X connect 4 0 5 0;
+#X connect 5 0 3 0;
+#X connect 6 0 3 0;
+#X connect 7 0 22 0;
+#X connect 7 1 4 0;
+#X connect 8 0 10 0;
+#X connect 9 0 2 0;
+#X connect 9 1 10 1;
+#X connect 10 0 11 0;
+#X connect 11 0 19 0;
+#X connect 12 0 14 0;
+#X connect 14 0 1 0;
+#X connect 15 0 18 0;
+#X connect 16 0 15 1;
+#X connect 17 0 15 0;
+#X connect 18 0 19 1;
+#X connect 19 0 12 0;
+#X connect 20 0 21 0;
+#X connect 21 0 17 0;
+#X connect 21 1 16 0;
+#X connect 22 0 9 0;
+#X restore 15 211 pd gui-output;
+#N canvas 0 0 426 446 license 0;
+#X text 8 47 All rights reserved.;
+#X text 8 227 The names of its contributors may not be used to endorse
+or promote products derived from this software without specific prior
+written permission.;
+#X text 8 87 Redistribution and use in source and binary forms \, with
+or without modification \, are permitted provided that the following
+conditions are met:;
+#X text 8 127 Redistributions of source code must retain the above
+copyright notice \, this list of conditions and the following disclaimer.
+;
+#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES \, INCLUDING
+\, BUT NOT LIMITED TO \, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
+\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
+\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
+;
+#X text 8 167 Redistributions in binary form must reproduce the above
+copyright notice \, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the distribution.
+;
+#X text 8 27 jmmmpais@googlemail.com;
+#X text 8 7 Copyright 2006 \, João Pais;
+#X restore 15 337 pd license;
+#X text 12 317 (C) 2013 João Pais - jmmmpais@googlemail.com;
+#N canvas 625 110 539 526 change 0;
+#X obj 217 11 inlet;
+#X obj 244 241 outlet;
+#X obj 327 291 until;
+#X obj 313 391 pointer \$0-matrixctrl;
+#X obj 313 341 symbol pd-\$0-gui;
+#X msg 327 311 next;
+#X obj 293 241 unpack f f f;
+#X obj 293 221 list-abs/list-rot -1;
+#X msg 313 361 traverse \$1;
+#X obj 293 464 set \$0-matrixctrl state color;
+#X obj 274 201 t b a b;
+#X obj 23 321 until;
+#X obj 63 411 pointer \$0-matrixctrl;
+#X obj 63 361 symbol pd-\$0-gui;
+#X msg 23 341 next;
+#X msg 63 381 traverse \$1;
+#X obj 63 491 set \$0-matrixctrl state color;
+#X obj 23 281 t b b;
+#X obj 63 431 t b p;
+#X obj 217 91 route mode;
+#X obj 274 121 list prepend;
+#X msg 237 61 mode AND;
+#X obj 274 161 route AND OR;
+#X obj 274 141 list trim;
+#X obj 237 41 loadbang;
+#X obj 23 181 inlet;
+#X obj 23 201 spigot 0;
+#X obj 308 181 t a b;
+#X obj 68 151 sel AND OR;
+#X obj 68 171 0;
+#X obj 96 171 1;
+#X obj 327 271 expr $f1 + $f2 * _\$0_column + 1;
+#X obj 23 301 expr _\$0_row * _\$0_column;
+#X obj 293 421 expr $f1 \; if($f1==1 \, _\$0_color1 \, _\$0_color0)
+;
+#X obj 63 451 expr 0 \; _\$0_color0;
+#X obj 68 131 zexy/list2symbol;
+#X obj 33 231 inlet;
+#X obj 33 251 t b b;
+#X connect 0 0 19 0;
+#X connect 2 0 5 0;
+#X connect 3 0 9 2;
+#X connect 4 0 8 0;
+#X connect 5 0 3 0;
+#X connect 6 0 33 0;
+#X connect 6 1 31 0;
+#X connect 6 2 31 1;
+#X connect 7 0 6 0;
+#X connect 8 0 3 0;
+#X connect 10 0 1 0;
+#X connect 10 1 7 0;
+#X connect 10 2 4 0;
+#X connect 11 0 14 0;
+#X connect 12 0 18 0;
+#X connect 13 0 15 0;
+#X connect 14 0 12 0;
+#X connect 15 0 12 0;
+#X connect 17 0 32 0;
+#X connect 17 1 13 0;
+#X connect 18 0 34 0;
+#X connect 18 1 16 2;
+#X connect 19 0 20 1;
+#X connect 19 0 35 0;
+#X connect 19 1 20 0;
+#X connect 20 0 23 0;
+#X connect 21 0 19 0;
+#X connect 22 0 10 0;
+#X connect 22 1 27 0;
+#X connect 23 0 22 0;
+#X connect 24 0 21 0;
+#X connect 25 0 26 0;
+#X connect 26 0 17 0;
+#X connect 27 0 10 0;
+#X connect 27 1 17 0;
+#X connect 28 0 29 0;
+#X connect 28 1 30 0;
+#X connect 29 0 26 1;
+#X connect 30 0 26 1;
+#X connect 31 0 2 0;
+#X connect 32 0 11 0;
+#X connect 33 0 9 0;
+#X connect 33 1 9 1;
+#X connect 34 0 16 0;
+#X connect 34 1 16 1;
+#X connect 35 0 28 0;
+#X connect 36 0 37 0;
+#X connect 37 0 1 0;
+#X connect 37 1 17 0;
+#X restore 219 181 pd change;
+#X text 11 21 [matrixctrl] - GUI for [iemmatrix/mtx_mul~];
+#X text 309 116 Inlets;
+#X text 309 316 Outlets;
+#X text 309 337 - output for [iemmatrix/mtx_mul~];
+#X text 309 86 - cell size (default is 13);
+#X text 309 136 - x y z - list with horizontal & vertical positions
+\, and state (0/1);
+#X text 309 206 - "mode AND" / "mode OR" - matrix behaviour (default
+is AND);
+#X text 309 246 - cellsize x - change cell size;
+#X text 309 226 - size x y - change matrix size;
+#X text 308 66 - number of inputs/rows;
+#X text 309 46 - number of outputs/columns;
+#X text 309 266 - color [x y] - change colors;
+#X text 309 26 Arguments - ALWAYS USE THE FIRST TWO ARGUMENTS;
+#N canvas 802 380 290 346 read-matrix 0;
+#X obj 14 14 inlet;
+#X obj 83 244 pointer \$0-matrixctrl;
+#X obj 83 194 symbol pd-\$0-gui;
+#X msg 83 214 traverse \$1;
+#X obj 57 124 zexy/drip;
+#X msg 104 164 next;
+#X text 54 13 imports matrix settings;
+#X obj 57 144 t f b;
+#X obj 57 317 set \$0-matrixctrl state color;
+#X obj 57 274 expr $f1 \; if($f1==1 \, _\$0_color1 \, _\$0_color0)
+;
+#X obj 14 54 iemmatrix/mtx_transpose;
+#X obj 33 94 list split 3;
+#X obj 14 34 prepend matrix;
+#X obj 14 184 outlet;
+#X obj 14 74 t b a b;
+#X connect 0 0 12 0;
+#X connect 1 0 8 2;
+#X connect 2 0 3 0;
+#X connect 3 0 1 0;
+#X connect 4 0 7 0;
+#X connect 5 0 1 0;
+#X connect 7 0 9 0;
+#X connect 7 1 5 0;
+#X connect 9 0 8 0;
+#X connect 9 1 8 1;
+#X connect 10 0 14 0;
+#X connect 11 1 4 0;
+#X connect 12 0 10 0;
+#X connect 14 0 13 0;
+#X connect 14 1 11 0;
+#X connect 14 2 2 0;
+#X restore 142 121 pd read-matrix;
+#X text 309 286 - matrix ... - read matrix definitions;
+#X text 309 166 - reset - resets matrix;
+#X obj 15 91 route size cellsize color matrix reset bang;
+#X text 309 186 - bang - outputs current setting;
+#X text 236 365 falta: \; - mode OR para colunas ou linhas \; - mode
+fade (AND com pegel e Anzeige \, outro objecto diferente);
+#X connect 0 0 6 0;
+#X connect 0 1 9 0;
+#X connect 5 0 26 0;
+#X connect 6 0 3 0;
+#X connect 9 0 6 0;
+#X connect 23 0 6 0;
+#X connect 26 0 1 0;
+#X connect 26 1 1 1;
+#X connect 26 2 1 2;
+#X connect 26 3 23 0;
+#X connect 26 4 9 1;
+#X connect 26 5 6 0;
+#X connect 26 6 9 2;
+#X coords 0 -1 1 1 70 36 2 100 50;