From 7c6d8626b9983e4d77188e37c50757f0503253ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pais?= Date: Thu, 22 Aug 2013 17:35:44 +0000 Subject: svn path=/trunk/abstractions/jmmmp/; revision=17197 --- matrixctrl.pd | 543 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 543 insertions(+) create mode 100644 matrixctrl.pd (limited to 'matrixctrl.pd') 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; -- cgit v1.2.1