From eb0cbc70eed7c2484ebd34d219a5b8023f53cc45 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 11 Nov 2010 22:39:13 +0000 Subject: sketched idea for poly object that reads the inlets/outlets from the .pd file and dynamically creates them svn path=/trunk/externals/manypoly/; revision=14419 --- itest.pd | 19 ++++++ runmany-test.pd | 79 +++++++++++++++++++++++ runmany.pd | 191 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 289 insertions(+) create mode 100644 itest.pd create mode 100644 runmany-test.pd create mode 100644 runmany.pd diff --git a/itest.pd b/itest.pd new file mode 100644 index 0000000..cba4be6 --- /dev/null +++ b/itest.pd @@ -0,0 +1,19 @@ +#N canvas 823 274 637 579 10; +#X obj 35 508 outlet~; +#X obj 145 508 outlet~; +#X obj 330 505 outlet; +#X text 371 503 bang when done; +#X obj 29 331 tabplay~ \$3; +#X obj 35 445 pan/equal_power_pan~; +#X obj 29 30 inlet; +#X obj 335 19 inlet; +#X obj 29 247 delay; +#X obj 29 85 unpack float float; +#X connect 4 0 5 0; +#X connect 4 1 2 0; +#X connect 5 0 0 0; +#X connect 5 1 1 0; +#X connect 6 0 9 0; +#X connect 8 0 4 0; +#X connect 9 0 8 0; +#X connect 9 1 5 1; diff --git a/runmany-test.pd b/runmany-test.pd new file mode 100644 index 0000000..400f20c --- /dev/null +++ b/runmany-test.pd @@ -0,0 +1,79 @@ +#N canvas 717 288 620 535 10; +#X obj 23 124 runmany 5 itest; +#X obj 237 244 textfile; +#X obj 237 191 trigger bang anything; +#X msg 224 146 read itest.pd; +#X obj 237 296 route #X; +#X obj 237 213 until; +#X msg 236 168 rewind; +#X obj 237 337 list split 2; +#X obj 271 357 list split 1; +#X obj 237 316 route obj; +#X obj 271 400 route inlet inlet~ outlet outlet~; +#X obj 280 430 + 1; +#X obj 271 378 list trim; +#X obj 362 430 + 1; +#X obj 444 430 + 1; +#X obj 526 430 + 1; +#X obj 178 461 pack symbol float float float float; +#X msg 154 347 io; +#X obj 179 489 pddp/print; +#X floatatom 437 247 5 0 0 0 - - -; +#X obj 442 268 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 466 210 float; +#X msg 480 183 0; +#X msg 439 183 1; +#X obj 438 211 +; +#X obj 231 430 float 1; +#X obj 313 430 float 1; +#X obj 395 430 float 1; +#X obj 477 430 float 1; +#X obj 176 111 trigger bang bang; +#X obj 236 91 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 176 90 loadbang; +#X obj 380 59 send pd-3754-voicepoly; +#X msg 381 36 clear; +#X connect 1 0 4 0; +#X connect 1 1 5 1; +#X connect 1 1 17 0; +#X connect 2 0 5 0; +#X connect 2 1 1 0; +#X connect 3 0 1 0; +#X connect 4 0 9 0; +#X connect 5 0 1 0; +#X connect 6 0 2 0; +#X connect 7 1 8 0; +#X connect 8 0 12 0; +#X connect 9 0 7 0; +#X connect 10 0 25 0; +#X connect 10 1 26 0; +#X connect 10 2 27 0; +#X connect 10 3 28 0; +#X connect 11 0 25 1; +#X connect 12 0 10 0; +#X connect 13 0 26 1; +#X connect 14 0 27 1; +#X connect 15 0 28 1; +#X connect 16 0 18 0; +#X connect 17 0 16 0; +#X connect 19 0 20 0; +#X connect 21 0 24 1; +#X connect 22 0 21 0; +#X connect 23 0 24 0; +#X connect 24 0 19 0; +#X connect 24 0 21 0; +#X connect 25 0 11 0; +#X connect 25 0 16 1; +#X connect 26 0 13 0; +#X connect 26 0 16 2; +#X connect 27 0 14 0; +#X connect 27 0 16 3; +#X connect 28 0 15 0; +#X connect 28 0 16 4; +#X connect 29 0 6 0; +#X connect 29 1 3 0; +#X connect 30 0 29 0; +#X connect 31 0 29 0; +#X connect 33 0 32 0; diff --git a/runmany.pd b/runmany.pd new file mode 100644 index 0000000..8b8533e --- /dev/null +++ b/runmany.pd @@ -0,0 +1,191 @@ +#N canvas 133 84 761 526 10; +#X obj 26 8 inlet; +#X obj 256 209 outlet; +#X obj 175 388 until; +#X obj 136 333 moses 1; +#X obj 213 415 + 1; +#N canvas 748 380 472 324 init 0; +#X obj 142 101 makefilename pd-%s; +#X msg 149 56 bang; +#X text 99 265 This will clear the subpatch and create fake "in/outlets" +as senders and receivers.; +#X obj 38 154 send \$0-subname; +#X obj 142 125 pack symbol \$0; +#X obj 142 30 bang; +#X obj 142 7 inlet; +#X obj 142 77 symbol \$0-voicepoly; +#X msg 142 166 \; \$1 clear \; \$1 obj 10 10 receive \$2-in1 \; \$1 +obj 400 10 receive \$2-in2 \; \$1 obj 10 560 throw~ \$2-audioL \; \$1 +obj 380 560 throw~ \$2-audioR \; \$1 obj 500 560 send \$2-voicemsg +\;; +#X connect 0 0 3 0; +#X connect 0 0 4 0; +#X connect 1 0 7 0; +#X connect 4 0 8 0; +#X connect 5 0 7 0; +#X connect 6 0 5 0; +#X connect 7 0 0 0; +#X restore 225 332 pd init; +#N canvas 810 447 610 407 finish 0; +#X obj 373 197 list prepend; +#X obj 77 180 until; +#X obj 127 206 + 1; +#X obj 77 279 list prepend; +#X msg 77 313 \; \$1 connect 1 0 \$2 1 \;; +#X text 210 158 first 3 objects are xlets; +#X obj 38 26 inlet; +#X obj 38 62 moses 1; +#X obj 156 250 receive \$0-subname; +#X obj 442 173 receive \$0-subname; +#X obj 77 206 float 3; +#X obj 77 157 trigger anything bang; +#X obj 77 93 trigger anything anything; +#X text 15 363 Connect all wrapper object's right inlet to [receive +\$0-in2]; +#X text 360 282 Connect final object to [send \$0-out]; +#X msg 200 177 5; +#X msg 373 227 \; \$1 connect 0 0 5 0 \; \$1 connect \$2 0 4 0 \;; +#X obj 373 159 + 4; +#X connect 0 0 16 0; +#X connect 1 0 10 0; +#X connect 2 0 10 1; +#X connect 3 0 4 0; +#X connect 6 0 7 0; +#X connect 7 1 12 0; +#X connect 8 0 3 1; +#X connect 9 0 0 1; +#X connect 10 0 2 0; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 11 1 15 0; +#X connect 12 0 11 0; +#X connect 12 1 17 0; +#X connect 15 0 10 1; +#X connect 17 0 0 0; +#X restore 48 331 pd finish; +#X obj 48 251 initbang; +#X obj 175 415 float; +#X obj 175 360 trigger anything bang; +#X msg 216 388 0; +#X obj 26 67 send \$0-in1; +#X obj 100 8 inlet; +#X obj 100 67 send \$0-in2; +#X obj 48 281 float \$1; +#X obj 26 208 outlet~; +#N canvas 177 52 366 386 communications 0; +#X obj 29 10 inlet; +#N canvas 0 22 535 282 last-two 0; +#X obj 40 92 cnv 15 150 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 265 27 first reset (b) \, then set new length (f).; +#X text 198 112 Right outlet is responsible to first fill the list +; +#X text 199 128 Left outlet then only lets the smaller list pass.; +#X obj 67 100 list; +#X obj 67 66 inlet; +#X obj 67 219 outlet; +#X obj 67 145 list split 2; +#X connect 4 0 7 0; +#X connect 5 0 4 0; +#X connect 7 0 4 1; +#X connect 7 0 6 0; +#X connect 7 2 4 1; +#X restore 29 242 pd last-two; +#X obj 29 288 list prepend; +#X obj 44 135 list append \$3 \$4 \$5 \$6; +#X obj 290 59 float \$1; +#X obj 150 84 receive \$0-subname; +#X obj 98 267 receive \$0-subname; +#X obj 44 111 pack float float symbol symbol float; +#X obj 97 67 * 19; +#X obj 97 89 + 30; +#X obj 29 221 + 5; +#X msg 29 316 \; \$1 connect \$3 0 \$2 0 \;; +#X obj 29 37 trigger anything anything anything bang bang; +#X msg 44 162 \; \$3 obj 150 \$2 voicepolywrap \$4 \$1 \$5 \$6 \$7 +\$8 \$9 \;; +#N canvas 183 272 316 307 expandpath 0; +#X obj 59 16 inlet; +#X obj 55 271 outlet; +#X obj 59 43 trigger bang bang; +#X obj 59 98 list append; +#X obj 58 153 zexy/list2symbol /; +#X obj 158 66 symbol \$2; +#X obj 59 67 ggee/getdir 3; +#X connect 0 0 2 0; +#X connect 2 0 6 0; +#X connect 2 1 5 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X connect 5 0 3 1; +#X connect 6 0 3 0; +#X restore 194 61 pd expandpath; +#X connect 0 0 12 0; +#X connect 1 0 2 0; +#X connect 2 0 11 0; +#X connect 3 0 13 0; +#X connect 4 0 7 4; +#X connect 5 0 7 2; +#X connect 6 0 2 1; +#X connect 7 0 3 0; +#X connect 8 0 9 0; +#X connect 9 0 7 1; +#X connect 10 0 1 0; +#X connect 12 0 10 0; +#X connect 12 1 7 0; +#X connect 12 2 8 0; +#X connect 12 3 14 0; +#X connect 12 4 4 0; +#X connect 14 0 7 3; +#X restore 175 482 pd communications connections; +#N canvas 875 553 450 300 connect 0; +#X obj 89 17 inlet; +#X obj 89 102 + 5; +#X obj 211 78 symbol; +#X obj 244 56 receive \$0-subname; +#X obj 87 136 pack float symbol; +#X obj 88 57 trigger anything bang; +#X msg 89 182 \; \$2 connect \$1 1 2 0 \; \$2 connect \$1 2 3 0; +#X connect 0 0 5 0; +#X connect 1 0 4 0; +#X connect 2 0 4 1; +#X connect 3 0 2 1; +#X connect 4 0 6 0; +#X connect 5 0 1 0; +#X connect 5 1 2 0; +#X restore 185 453 pd connect user outlets; +#X text 122 97 <-- open this subpatch to see the instances; +#X obj 48 310 trigger anything anything bang; +#N canvas 100 24 601 588 \$0-voicepoly 0; +#X obj 10 10 receive 1081-in1; +#X obj 400 10 receive 1081-in2; +#X obj 10 560 throw~ 1081-audioL; +#X obj 380 560 throw~ 1081-audioR; +#X obj 500 560 send 1081-voicemsg; +#X restore 26 96 pd \$0-voicepoly; +#X obj 136 209 outlet~; +#X obj 26 124 catch~ \$0-audioL; +#X obj 136 124 catch~ \$0-audioR; +#X obj 256 124 receive \$0-voicemsg; +#X obj 24 260 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X connect 0 0 11 0; +#X connect 2 0 8 0; +#X connect 3 1 9 0; +#X connect 4 0 8 1; +#X connect 7 0 14 0; +#X connect 8 0 4 0; +#X connect 8 0 16 0; +#X connect 8 0 17 0; +#X connect 9 0 2 0; +#X connect 9 1 10 0; +#X connect 10 0 8 1; +#X connect 12 0 13 0; +#X connect 14 0 19 0; +#X connect 19 0 6 0; +#X connect 19 1 3 0; +#X connect 19 2 5 0; +#X connect 22 0 15 0; +#X connect 23 0 21 0; +#X connect 24 0 1 0; +#X connect 25 0 14 0; -- cgit v1.2.1