From bff8374f6fcca7202435957c12bf5fcfe442263b Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 22 Nov 2010 19:28:25 +0000 Subject: sketch for poly object with dynamic instance allocation, somewhat like [polypoly] svn path=/trunk/externals/manypoly/; revision=14485 --- rawpoly-test.pd | 17 ++++++ rawpoly.pd | 185 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 202 insertions(+) create mode 100644 rawpoly-test.pd create mode 100644 rawpoly.pd diff --git a/rawpoly-test.pd b/rawpoly-test.pd new file mode 100644 index 0000000..b507ce0 --- /dev/null +++ b/rawpoly-test.pd @@ -0,0 +1,17 @@ +#N canvas 372 366 450 300 10; +#X text 53 202 beeware of loadbangs when dynamically adding instances +using the 3rd inlet! Everytime a new instance is created \, all instances +will receive a loadbang!; +#X msg 218 113 7; +#X msg 185 113 3; +#X msg 249 112 9; +#X text 279 112 control instances; +#X obj 113 138 rawpoly 5 itest; +#X text 27 21 inlet0: routed to each instance based on instance number +; +#X text 27 41 inlet1: connected directly to each instance; +#X text 27 61 outlet~0: connected directly to each instance; +#X text 27 81 outlet1: connected directly to each instance; +#X connect 1 0 5 2; +#X connect 2 0 5 2; +#X connect 3 0 5 2; diff --git a/rawpoly.pd b/rawpoly.pd new file mode 100644 index 0000000..c81127a --- /dev/null +++ b/rawpoly.pd @@ -0,0 +1,185 @@ +#N canvas 820 73 679 577 10; +#X obj 26 8 inlet; +#X obj 196 378 until; +#X obj 234 403 + 1; +#N canvas 169 250 601 588 \$0-poly 0; +#X restore 26 61 pd \$0-poly; +#X obj 196 403 float; +#X obj 26 32 send \$0-in1; +#X obj 100 8 inlet; +#X obj 100 32 send \$0-in2; +#X obj 214 246 float \$1; +#X obj 126 113 outlet; +#X obj 126 88 receive \$0-message; +#X obj 26 89 catch~ \$0-audio; +#X obj 26 113 outlet~; +#X text 102 62 <-- open this subpatch to see the instances; +#N canvas 452 457 572 467 create 0; +#X obj 29 10 inlet; +#X obj 173 153 list trim; +#X obj 202 60 symbol \$2; +#X obj 155 61 * 20; +#X obj 173 132 list append \$3 \$4 \$5 \$6 \$7; +#X obj 173 409 outlet; +#X obj 173 174 trigger anything anything; +#X obj 155 83 + 30; +#X msg 186 281 connect 0 0 \$1 0; +#X obj 92 62 * 2; +#X obj 92 85 + 4; +#X obj 29 192 pack float float; +#X obj 29 62 * 2; +#X obj 29 85 + 5; +#X msg 294 281 connect \$1 0 \$2 0; +#X msg 74 261 connect \$1 1 \$2 0; +#X msg 186 261 connect 1 0 \$2 1; +#X msg 294 260 connect \$2 1 3 0; +#X msg 74 281 connect \$2 0 2 0; +#X obj 350 84 makefilename $%d; +#X msg 350 62 1; +#X obj 173 108 pack float symbol float symbol; +#X obj 29 37 trigger anything anything anything bang anything bang +; +#X msg 168 196 obj 125 \$1 route \$3 all; +#X msg 320 196 obj 210 \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9; +#X connect 0 0 22 0; +#X connect 1 0 6 0; +#X connect 2 0 21 1; +#X connect 3 0 7 0; +#X connect 4 0 1 0; +#X connect 6 0 23 0; +#X connect 6 1 24 0; +#X connect 7 0 21 0; +#X connect 8 0 5 0; +#X connect 9 0 10 0; +#X connect 10 0 11 1; +#X connect 11 0 8 0; +#X connect 11 0 14 0; +#X connect 11 0 15 0; +#X connect 11 0 16 0; +#X connect 11 0 17 0; +#X connect 11 0 18 0; +#X connect 12 0 13 0; +#X connect 13 0 11 0; +#X connect 14 0 5 0; +#X connect 15 0 5 0; +#X connect 16 0 5 0; +#X connect 17 0 5 0; +#X connect 18 0 5 0; +#X connect 19 0 21 3; +#X connect 20 0 19 0; +#X connect 21 0 4 0; +#X connect 22 0 12 0; +#X connect 22 1 9 0; +#X connect 22 2 3 0; +#X connect 22 3 2 0; +#X connect 22 4 21 2; +#X connect 22 5 20 0; +#X connect 23 0 5 0; +#X connect 24 0 5 0; +#X restore 196 450 pd create and link instances; +#X obj 458 530 send; +#X msg 136 450 loadbang; +#X msg 440 449 clear; +#N canvas 973 300 625 362 xlets 0; +#X obj 137 -89 inlet; +#X obj 277 175 outlet; +#X text 190 -84 This will create fake "in/outlets" as senders and receivers. +; +#X msg 137 -59 0; +#X obj 477 28 makefilename $%d-in1; +#X obj 337 28 makefilename $%d-in2; +#X obj 187 28 makefilename $%d-audio; +#X obj 27 28 makefilename $%d-message; +#X obj 277 133 list prepend obj; +#X obj 277 153 list trim; +#X msg 27 49 480 560 send \$1; +#X msg 187 49 10 560 throw~ \$1; +#X msg 337 49 500 10 receive \$1; +#X msg 477 49 10 10 receive \$1; +#X obj 137 -36 trigger float float float float; +#X connect 0 0 3 0; +#X connect 3 0 14 0; +#X connect 4 0 13 0; +#X connect 5 0 12 0; +#X connect 6 0 11 0; +#X connect 7 0 10 0; +#X connect 8 0 9 0; +#X connect 9 0 1 0; +#X connect 10 0 8 0; +#X connect 11 0 8 0; +#X connect 12 0 8 0; +#X connect 13 0 8 0; +#X connect 14 0 7 0; +#X connect 14 1 6 0; +#X connect 14 2 5 0; +#X connect 14 3 4 0; +#X restore 376 449 pd xlets; +#X obj 330 10 inlet; +#X obj 214 268 moses 1; +#X obj 122 214 moses; +#X obj 505 449 symbol pd-\$0-poly; +#X obj 280 404 moses; +#X msg 223 356 bang; +#X msg 323 347 0; +#X obj 376 425 trigger bang bang bang; +#X obj 142 327 trigger bang bang anything; +#X obj 253 292 trigger anything bang; +#X obj 117 175 trigger 0 0; +#N canvas 0 22 519 307 warning 0; +#X obj 70 17 inlet; +#X obj 383 18 inlet; +#X obj 44 260 print rawpoly_WARNING; +#X msg 62 122 inlet value less than current instance count- reseting +all instances!; +#X msg 116 65 inlet value equal to current instance count- ignoring! +; +#X connect 0 0 3 0; +#X connect 1 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 2 0; +#X restore 92 275 pd warning; +#X obj 214 224 loadbang; +#X text 22 507 Beware of loadbangs when dynamically adding instances +using the 3rd inlet! Everytime a new instance is created \, all instances +will receive a loadbang!; +#X obj 207 426 print; +#X obj 149 255 select; +#X connect 0 0 5 0; +#X connect 1 0 4 0; +#X connect 2 0 23 0; +#X connect 2 0 4 1; +#X connect 4 0 2 0; +#X connect 4 0 14 0; +#X connect 4 0 33 0; +#X connect 6 0 7 0; +#X connect 8 0 20 0; +#X connect 10 0 9 0; +#X connect 11 0 12 0; +#X connect 14 0 15 0; +#X connect 16 0 15 0; +#X connect 17 0 15 0; +#X connect 18 0 15 0; +#X connect 19 0 29 0; +#X connect 20 1 28 0; +#X connect 21 0 30 0; +#X connect 21 0 8 0; +#X connect 21 1 34 0; +#X connect 22 0 15 1; +#X connect 23 1 24 0; +#X connect 24 0 1 1; +#X connect 25 0 4 1; +#X connect 26 0 18 0; +#X connect 26 1 17 0; +#X connect 26 2 22 0; +#X connect 27 0 16 0; +#X connect 27 1 1 0; +#X connect 27 2 23 1; +#X connect 28 0 27 0; +#X connect 28 1 26 0; +#X connect 28 1 25 0; +#X connect 29 0 21 1; +#X connect 29 0 34 1; +#X connect 29 1 21 0; +#X connect 31 0 8 0; +#X connect 34 0 30 1; +#X connect 34 1 27 0; -- cgit v1.2.1