From e13c080ea00836751efce187d516b3faa8a7040c Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 22 Nov 2010 18:39:09 +0000 Subject: got a working version of instances~ with AM demo svn path=/trunk/externals/manypoly/; revision=14483 --- instances-template~-help.pd | 15 ++++ instances-template~.pd | 36 +++++++++ instances~-help.pd | 31 ++++++++ instances~.pd | 186 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 268 insertions(+) create mode 100644 instances-template~-help.pd create mode 100644 instances-template~.pd create mode 100644 instances~-help.pd create mode 100644 instances~.pd diff --git a/instances-template~-help.pd b/instances-template~-help.pd new file mode 100644 index 0000000..0e899c5 --- /dev/null +++ b/instances-template~-help.pd @@ -0,0 +1,15 @@ +#N canvas 204 154 602 360 10; +#X obj 110 254 instances-template~ 1 8 four more arguments possible +; +#X text 72 274 dsp-out left; +#X text 381 274 dsp-out right; +#X text 35 233 inlet for messages routed to instances; +#X text 380 234 inlet for audio to all instances; +#X text 80 35 instances-template~ is a basic patch here only to illustrate +what a patch designed for [instances~] looks like. Feel free to use +it as a template for your own patches for [instances~].; +#X text 76 100 Your [instances~] abstraction needs one [inlet] and +one [inlet~] and two [outlet~]s. First argument will be the voice index +number starting from 0 \, second argument will be the total number +of voices. Four more arguments can be passed as arguments to [instances~] +and will be passed on to the custom abstraction.; diff --git a/instances-template~.pd b/instances-template~.pd new file mode 100644 index 0000000..6f639fb --- /dev/null +++ b/instances-template~.pd @@ -0,0 +1,36 @@ +#N canvas 244 339 552 361 10; +#X obj 54 11 inlet; +#X obj 54 324 outlet~; +#X obj 228 325 outlet~; +#X obj 243 9 inlet~; +#X obj 228 150 *~; +#X obj 211 121 osc~; +#X obj 100 48 print instances~_\$1; +#X obj 54 302 *~; +#X obj 129 137 osc~; +#X obj 129 158 +~ 1; +#X obj 129 178 *~ 0.5; +#X obj 228 305 *~; +#X obj 243 285 -~; +#X msg 243 256 1; +#X obj 243 236 loadbang; +#X obj 130 81 float; +#X obj 130 115 / 500; +#X connect 0 0 6 0; +#X connect 0 0 15 0; +#X connect 3 0 4 1; +#X connect 4 0 11 0; +#X connect 4 0 7 0; +#X connect 5 0 4 0; +#X connect 7 0 1 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 7 1; +#X connect 10 0 12 1; +#X connect 11 0 2 0; +#X connect 12 0 11 1; +#X connect 13 0 12 0; +#X connect 14 0 13 0; +#X connect 15 0 5 0; +#X connect 15 0 16 0; +#X connect 16 0 8 0; diff --git a/instances~-help.pd b/instances~-help.pd new file mode 100644 index 0000000..f626c3e --- /dev/null +++ b/instances~-help.pd @@ -0,0 +1,31 @@ +#N canvas 202 131 588 471 10; +#X text 62 424 dsp-out left; +#X text 371 424 dsp-out right; +#X text 25 383 inlet for messages routed to instances; +#X text 370 384 inlet for audio to all instances; +#X obj 219 318 output~; +#X obj 365 220 adc~; +#X obj 168 249 list prepend; +#X obj 237 228 hradio 15 1 1 5 empty empty empty 0 -8 0 10 -203904 +-1 -1 4; +#X obj 168 272 instances~ 5 instances-template~; +#X obj 171 203 hsl 128 15 200 500 1 1 empty empty empty -2 -8 0 10 +-261682 -1 -1 6600 0; +#X obj 100 404 instances-template~ 1 8 four more arguments possible +; +#X obj 134 142 loadbang; +#X msg 134 166 0 200 \, 1 300 \, 2 400 \, 3 500 \, 4 100; +#X text 27 81 outlet~0: connected directly to each instance; +#X text 27 101 outlet~1: connected directly to each instance; +#X text 27 41 inlet~: connected directly to each instance; +#X text 27 21 inlet: routed to each instance based on instance number +; +#X connect 5 0 8 1; +#X connect 5 1 8 1; +#X connect 6 0 8 0; +#X connect 7 0 6 1; +#X connect 8 0 4 0; +#X connect 8 1 4 1; +#X connect 9 0 6 0; +#X connect 11 0 12 0; +#X connect 12 0 8 0; diff --git a/instances~.pd b/instances~.pd new file mode 100644 index 0000000..c2f127f --- /dev/null +++ b/instances~.pd @@ -0,0 +1,186 @@ +#N canvas 287 129 622 492 10; +#X obj 26 8 inlet; +#X obj 99 306 until; +#X obj 137 333 + 1; +#X obj 99 333 float; +#X msg 138 306 0; +#X obj 7 181 float \$1; +#X obj 26 113 outlet~; +#X text 122 62 <-- open this subpatch to see the instances; +#N canvas 90 404 490 437 make 0; +#X obj 88 14 inlet; +#X obj 210 83 until; +#X obj 210 107 float; +#X obj 248 107 + 1; +#X msg 251 83 0; +#X msg 281 113 route; +#X obj 210 244 list trim; +#X obj 210 223 list prepend obj 10 30; +#X msg 85 225 connect 0 0 4 0; +#X obj 88 57 trigger bang bang anything bang; +#X obj 210 317 outlet; +#N canvas 0 22 450 300 tolist 0; +#X obj 90 40 inlet; +#X obj 169 40 inlet; +#X obj 67 215 outlet; +#X obj 90 150 list; +#X obj 67 171 list; +#X obj 90 127 list prepend; +#X connect 0 0 5 0; +#X connect 1 0 5 1; +#X connect 1 0 4 0; +#X connect 3 0 4 1; +#X connect 3 0 5 1; +#X connect 4 0 2 0; +#X connect 5 0 3 0; +#X restore 210 193 pd tolist; +#X connect 0 0 9 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 11 0; +#X connect 3 0 2 1; +#X connect 4 0 2 1; +#X connect 5 0 11 0; +#X connect 6 0 10 0; +#X connect 7 0 6 0; +#X connect 8 0 10 0; +#X connect 9 0 8 0; +#X connect 9 1 11 1; +#X connect 9 2 1 0; +#X connect 9 3 5 0; +#X connect 9 3 4 0; +#X connect 11 0 7 0; +#X restore 292 363 pd make route; +#N canvas 493 375 432 461 create 1; +#X obj 29 10 inlet; +#X obj 281 61 float \$1; +#X obj 29 141 + 5; +#X obj 155 83 + 50; +#X obj 173 108 pack float symbol float float; +#X obj 173 153 list trim; +#X obj 218 61 symbol \$2; +#X obj 155 61 * 20; +#X obj 173 132 list append \$3 \$4 \$5 \$6 \$7; +#X msg 45 282 connect 1 0 \$1 1; +#X obj 29 37 trigger anything anything anything bang bang anything +; +#X obj 58 225 pack float float; +#X msg 58 247 connect 4 \$2 \$1 0; +#X msg 35 302 connect \$1 0 2 0; +#X msg 18 326 connect \$1 1 3 0; +#X obj 173 409 outlet; +#X msg 173 176 obj 150 \$1 \$2 \$4 \$3 \$5 \$6 \$7 \$8 \$9; +#X connect 0 0 10 0; +#X connect 1 0 4 2; +#X connect 2 0 9 0; +#X connect 2 0 11 0; +#X connect 2 0 13 0; +#X connect 2 0 14 0; +#X connect 3 0 4 0; +#X connect 4 0 8 0; +#X connect 5 0 16 0; +#X connect 6 0 4 1; +#X connect 7 0 3 0; +#X connect 8 0 5 0; +#X connect 9 0 15 0; +#X connect 10 0 2 0; +#X connect 10 1 11 1; +#X connect 10 2 7 0; +#X connect 10 3 6 0; +#X connect 10 4 1 0; +#X connect 10 5 4 3; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 15 0; +#X connect 14 0 15 0; +#X connect 16 0 15 0; +#X restore 106 363 pd create and link instances; +#X obj 466 464 send; +#X obj 99 278 trigger 0 bang; +#X obj 7 160 loadbang; +#X msg 46 363 loadbang; +#X obj 487 362 makefilename pd-%s; +#X obj 46 227 trigger bang anything anything bang bang bang; +#X msg 439 363 clear; +#N canvas 314 361 566 361 xlets 0; +#X obj 78 -165 inlet; +#X obj 78 29 outlet; +#X text 126 -137 This will create fake "in/outlets" as senders and +receivers.; +#X obj 78 -73 float \$0; +#X msg 78 -47 obj 10 10 receive \$1-message \, obj 400 10 catch~ \$1-audio-in +\, obj 10 560 throw~ \$1-audio-out0 \, obj 380 560 throw~ \$1-audio-out1 +; +#X connect 0 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X restore 384 363 pd xlets; +#X obj 7 205 moses 1; +#X text 59 203 no need to generate anything for 0 instances; +#X obj 487 338 symbol \$0-instances; +#N canvas 48 22 633 512 \$0-instances 0; +#X obj 10 10 receive 20641-message; +#X obj 400 10 catch~ 20641-audio-in; +#X obj 10 560 throw~ 20641-audio-out0; +#X obj 380 560 throw~ 20641-audio-out1; +#X obj 10 30 route 0 1 2 3 4; +#X obj 150 130 instances-template~ 5 4 0 0 0 0 0; +#X obj 150 50 instances-template~ 5 0 0 0 0 0 0; +#X obj 150 70 instances-template~ 5 1 0 0 0 0 0; +#X obj 150 90 instances-template~ 5 2 0 0 0 0 0; +#X obj 150 110 instances-template~ 5 3 0 0 0 0 0; +#X connect 0 0 4 0; +#X connect 1 0 5 1; +#X connect 1 0 6 1; +#X connect 1 0 7 1; +#X connect 1 0 8 1; +#X connect 1 0 9 1; +#X connect 4 0 6 0; +#X connect 4 1 7 0; +#X connect 4 2 8 0; +#X connect 4 3 9 0; +#X connect 4 4 5 0; +#X connect 5 0 2 0; +#X connect 5 1 3 0; +#X connect 6 0 2 0; +#X connect 6 1 3 0; +#X connect 7 0 2 0; +#X connect 7 1 3 0; +#X connect 8 0 2 0; +#X connect 8 1 3 0; +#X connect 9 0 2 0; +#X connect 9 1 3 0; +#X restore 26 61 pd \$0-instances; +#X obj 26 32 send \$0-message; +#X obj 161 32 throw~ \$0-audio-in; +#X obj 163 89 catch~ \$0-audio-out1; +#X obj 26 89 catch~ \$0-audio-out0; +#X obj 163 114 outlet~; +#X obj 161 8 inlet~; +#X connect 0 0 22 0; +#X connect 1 0 3 0; +#X connect 2 0 3 1; +#X connect 3 0 2 0; +#X connect 3 0 9 0; +#X connect 4 0 3 1; +#X connect 5 0 18 0; +#X connect 8 0 10 0; +#X connect 9 0 10 0; +#X connect 11 0 1 0; +#X connect 11 1 4 0; +#X connect 12 0 5 0; +#X connect 13 0 10 0; +#X connect 14 0 10 1; +#X connect 15 0 13 0; +#X connect 15 1 11 0; +#X connect 15 2 8 0; +#X connect 15 3 17 0; +#X connect 15 4 16 0; +#X connect 15 5 20 0; +#X connect 16 0 10 0; +#X connect 17 0 10 0; +#X connect 18 1 15 0; +#X connect 20 0 14 0; +#X connect 24 0 26 0; +#X connect 25 0 6 0; +#X connect 27 0 23 0; -- cgit v1.2.1