From 6b90ede50883f41e5bca89d88a38aa0c7c831244 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 22 Nov 2010 20:54:36 +0000 Subject: proper tilde-fication svn path=/trunk/externals/many/; revision=14490 --- Makefile | 4 +- examples/run-200voicetest.pd | 27 ++++--- examples/ticker-voice.pd | 21 ----- examples/ticker-voice~.pd | 21 +++++ examples/ticker.pd | 4 +- examples/voicetest.pd | 40 ---------- examples/voicetest~.pd | 40 ++++++++++ voicepoly.pd | 186 ------------------------------------------- voicepolywrap.pd | 34 -------- voices-wrap~-help.pd | 5 ++ voices-wrap~.pd | 34 ++++++++ voices~.pd | 186 +++++++++++++++++++++++++++++++++++++++++++ 12 files changed, 305 insertions(+), 297 deletions(-) delete mode 100644 examples/ticker-voice.pd create mode 100644 examples/ticker-voice~.pd delete mode 100644 examples/voicetest.pd create mode 100644 examples/voicetest~.pd delete mode 100644 voicepoly.pd delete mode 100644 voicepolywrap.pd create mode 100644 voices-wrap~-help.pd create mode 100644 voices-wrap~.pd create mode 100644 voices~.pd diff --git a/Makefile b/Makefile index bc775cd..8240111 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ ## Pd library template version 1.0.6 # For instructions on how to use this template, see: # http://puredata.info/docs/developer/MakefileTemplate -LIBRARY_NAME = manypoly +LIBRARY_NAME = many # add your .c source files, one object per file, to the SOURCES # variable, help files will be included automatically @@ -9,7 +9,7 @@ SOURCES = # list all pd objects (i.e. myobject.pd) files here, and their helpfiles will # be included automatically -PDOBJECTS = instances.pd instances-template.pd instances~.pd instances-template~.pd polypoly~.pd polypoly-wrap~.pd polypoly-voice~.pd voicepoly.pd voicepoly-wrap.pd +PDOBJECTS = instances.pd instances-template.pd instances~.pd instances-template~.pd polypoly~.pd polypoly-wrap~.pd polypoly-voice~.pd voices~.pd voices-wrap~.pd # example patches and related files, in the 'examples' subfolder EXAMPLES = tick.wav ticker-voice.pd ticker.pd tock.wav aw.wav voicetest.pd run-200voicetest.pd diff --git a/examples/run-200voicetest.pd b/examples/run-200voicetest.pd index b42a53d..16f5e69 100644 --- a/examples/run-200voicetest.pd +++ b/examples/run-200voicetest.pd @@ -17,7 +17,7 @@ that is banged when the voice is finished.; #X text 26 169 factor by which to stretch sample; #X text 26 183 (i.e. 2 means twice as long); #X text 33 459 this is the patch of a single voice \, it has the same -inlets and outlets as voicepoly above:; +inlets and outlets as voices~ above:; #X obj 335 188 table \$0-sample; #X text 221 298 (you can send \$0 for localizing things); #X obj 336 139 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 @@ -57,7 +57,7 @@ inlets and outlets as voicepoly above:; #X text 248 263 <-- send the size of the sample table to all instances ; #X obj 67 349 output~; -#X obj 135 505 voicetest 0 0 \$0; +#X obj 135 505 voicetest~ 0 0 \$0; #X obj 60 272 pack 0 0; #X obj 78 250 t b f; #X obj 417 139 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 @@ -65,25 +65,28 @@ inlets and outlets as voicepoly above:; #X text 435 137 <-- record from mic; #X text 148 78 <-- play your voice like an instrument \, click and drag; -#X obj 60 297 voicepoly 200 voicetest \$0; +#X obj 60 297 voices~ 200 voicetest~ \$0; #N canvas 0 22 450 300 (subpatch) 0; #X obj 106 259 outlet; -#X obj 106 80 inlet; -#X obj 160 79 inlet; -#X obj 106 101 / 80; -#X obj 106 234 pack float float; -#X obj 106 214 * 10; -#X obj 160 101 / 90; -#X obj 160 125 + 0.1; -#X obj 106 186 mapping/exponential_curve 0.75; +#X obj 106 30 inlet; +#X obj 160 29 inlet; +#X obj 106 86 / 80; +#X obj 106 199 pack float float; +#X obj 160 152 * 10; +#X obj 160 86 / 90; +#X obj 160 110 + 0.1; +#X obj 160 131 mapping/exponential_curve 0.75; +#X obj 106 152 t b 0; #X connect 1 0 3 0; #X connect 2 0 6 0; -#X connect 3 0 4 1; +#X connect 3 0 9 0; #X connect 4 0 0 0; #X connect 5 0 4 0; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 8 0 5 0; +#X connect 9 0 4 0; +#X connect 9 1 4 1; #X coords 0 0 1 1 90 90 0; #X restore 2 175 pd; #X obj 64 76 gcanvas 80 80; diff --git a/examples/ticker-voice.pd b/examples/ticker-voice.pd deleted file mode 100644 index 8493f67..0000000 --- a/examples/ticker-voice.pd +++ /dev/null @@ -1,21 +0,0 @@ -#N canvas 474 451 518 379 10; -#X obj 22 28 inlet; -#X text 62 27 clock input; -#X obj 32 357 outlet~; -#X obj 136 357 outlet~; -#X obj 41 135 % 2; -#X obj 41 156 select 0 1; -#X obj 253 28 inlet; -#X obj 265 354 outlet; -#X text 310 354 bang when done to free voice; -#X text 291 30 optional inlet; -#X obj 32 249 tabplay~ \$3-tick; -#X obj 137 250 tabplay~ \$3-tock; -#X connect 0 0 4 0; -#X connect 4 0 5 0; -#X connect 5 0 10 0; -#X connect 5 1 11 0; -#X connect 10 0 2 0; -#X connect 10 1 7 0; -#X connect 11 0 3 0; -#X connect 11 1 7 0; diff --git a/examples/ticker-voice~.pd b/examples/ticker-voice~.pd new file mode 100644 index 0000000..8493f67 --- /dev/null +++ b/examples/ticker-voice~.pd @@ -0,0 +1,21 @@ +#N canvas 474 451 518 379 10; +#X obj 22 28 inlet; +#X text 62 27 clock input; +#X obj 32 357 outlet~; +#X obj 136 357 outlet~; +#X obj 41 135 % 2; +#X obj 41 156 select 0 1; +#X obj 253 28 inlet; +#X obj 265 354 outlet; +#X text 310 354 bang when done to free voice; +#X text 291 30 optional inlet; +#X obj 32 249 tabplay~ \$3-tick; +#X obj 137 250 tabplay~ \$3-tock; +#X connect 0 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 10 0; +#X connect 5 1 11 0; +#X connect 10 0 2 0; +#X connect 10 1 7 0; +#X connect 11 0 3 0; +#X connect 11 1 7 0; diff --git a/examples/ticker.pd b/examples/ticker.pd index fcbab38..ef22525 100644 --- a/examples/ticker.pd +++ b/examples/ticker.pd @@ -22,9 +22,9 @@ #X obj 85 312 output~; #X text 35 34 <-- turn on clock; #X text 185 57 <-- run it faster!; -#X obj 53 221 voicepoly 100 ticker-voice \$0; +#X obj 53 221 voices~ 100 ticker-voice~ \$0; #X text 201 302 here is the playback patch:; -#X obj 211 333 ticker-voice 0 0 \$0; +#X obj 211 333 ticker-voice~ 0 0 \$0; #X connect 3 0 2 0; #X connect 4 0 3 0; #X connect 5 0 4 0; diff --git a/examples/voicetest.pd b/examples/voicetest.pd deleted file mode 100644 index 06a8a5d..0000000 --- a/examples/voicetest.pd +++ /dev/null @@ -1,40 +0,0 @@ -#N canvas 393 160 577 494 10; -#X obj 122 11 inlet; -#X obj 122 463 outlet~; -#X obj 267 11 inlet; -#X obj 239 463 outlet~; -#X obj 320 463 outlet; -#X text 367 463 bang when done; -#X obj 122 337 line~; -#X obj -15 88 print voicetest_\$1; -#X obj 282 76 samplerate~; -#X obj 267 97 /; -#X obj 320 435 delay; -#X obj 267 124 * 1000; -#X text 306 125 ms; -#X obj 122 241 pack float float; -#X msg 122 313 0 \, \$2 \$1; -#X obj 122 179 *; -#X obj 112 365 tabread4~ \$3-sample; -#X obj 122 397 pan/equal_power_pan~; -#X obj 122 60 unpack float float; -#X obj 282 56 loadbang; -#X connect 0 0 7 0; -#X connect 0 0 18 0; -#X connect 2 0 9 0; -#X connect 2 0 13 1; -#X connect 6 0 16 0; -#X connect 8 0 9 1; -#X connect 9 0 11 0; -#X connect 10 0 4 0; -#X connect 11 0 15 1; -#X connect 13 0 14 0; -#X connect 14 0 6 0; -#X connect 15 0 13 0; -#X connect 15 0 10 0; -#X connect 16 0 17 0; -#X connect 17 0 1 0; -#X connect 17 1 3 0; -#X connect 18 0 15 0; -#X connect 18 1 17 1; -#X connect 19 0 8 0; diff --git a/examples/voicetest~.pd b/examples/voicetest~.pd new file mode 100644 index 0000000..76c3afd --- /dev/null +++ b/examples/voicetest~.pd @@ -0,0 +1,40 @@ +#N canvas 393 160 577 494 10; +#X obj 122 11 inlet; +#X obj 122 463 outlet~; +#X obj 267 11 inlet; +#X obj 239 463 outlet~; +#X obj 320 463 outlet; +#X text 367 463 bang when done; +#X obj 122 337 line~; +#X obj -15 88 print voicetest~_\$1; +#X obj 282 76 samplerate~; +#X obj 267 97 /; +#X obj 320 435 delay; +#X obj 267 124 * 1000; +#X text 306 125 ms; +#X obj 122 241 pack float float; +#X msg 122 313 0 \, \$2 \$1; +#X obj 122 179 *; +#X obj 112 365 tabread4~ \$3-sample; +#X obj 122 397 pan/equal_power_pan~; +#X obj 122 60 unpack float float; +#X obj 282 56 loadbang; +#X connect 0 0 7 0; +#X connect 0 0 18 0; +#X connect 2 0 9 0; +#X connect 2 0 13 1; +#X connect 6 0 16 0; +#X connect 8 0 9 1; +#X connect 9 0 11 0; +#X connect 10 0 4 0; +#X connect 11 0 15 1; +#X connect 13 0 14 0; +#X connect 14 0 6 0; +#X connect 15 0 13 0; +#X connect 15 0 10 0; +#X connect 16 0 17 0; +#X connect 17 0 1 0; +#X connect 17 1 3 0; +#X connect 18 0 15 0; +#X connect 18 1 17 1; +#X connect 19 0 8 0; diff --git a/voicepoly.pd b/voicepoly.pd deleted file mode 100644 index 2347941..0000000 --- a/voicepoly.pd +++ /dev/null @@ -1,186 +0,0 @@ -#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 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; diff --git a/voicepolywrap.pd b/voicepolywrap.pd deleted file mode 100644 index c9a0c95..0000000 --- a/voicepolywrap.pd +++ /dev/null @@ -1,34 +0,0 @@ -#N canvas 366 494 452 327 10; -#X obj 45 26 inlet; -#X obj 45 177 spigot; -#X obj 192 274 spigot; -#X obj 25 249 \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9; -#X obj 22 301 outlet; -#X obj 260 23 inlet; -#X msg 67 124 0 1; -#X msg 105 125 1 0; -#X text 252 156 this object is used by nqpoly5; -#X text 12 5 nqpwrap5 - pix.test.at; -#X obj 45 64 trigger anything anything; -#X obj 25 226 trigger anything bang; -#X obj 105 100 loadbang; -#X obj 78 155 unpack float float; -#X obj 85 301 outlet~; -#X text 213 298 strange ordering to make dynamic patching esaier; -#X obj 161 301 outlet~; -#X connect 0 0 10 0; -#X connect 1 0 11 0; -#X connect 2 0 4 0; -#X connect 3 0 14 0; -#X connect 3 1 16 0; -#X connect 3 2 7 0; -#X connect 5 0 3 1; -#X connect 6 0 13 0; -#X connect 7 0 13 0; -#X connect 10 0 1 0; -#X connect 10 1 2 0; -#X connect 11 0 3 0; -#X connect 11 1 6 0; -#X connect 12 0 7 0; -#X connect 13 0 1 1; -#X connect 13 1 2 1; diff --git a/voices-wrap~-help.pd b/voices-wrap~-help.pd new file mode 100644 index 0000000..43330fd --- /dev/null +++ b/voices-wrap~-help.pd @@ -0,0 +1,5 @@ +#N canvas 137 124 450 300 10; +#X text 60 100 [polypoly~-wrap] is an object used by [polypoly~] to handle +the voice allocation logic for each patch that [polypoly~] is instantiating. +It is not a patch that has any use outside of how [polypoly~] uses it +internally.; diff --git a/voices-wrap~.pd b/voices-wrap~.pd new file mode 100644 index 0000000..c9a0c95 --- /dev/null +++ b/voices-wrap~.pd @@ -0,0 +1,34 @@ +#N canvas 366 494 452 327 10; +#X obj 45 26 inlet; +#X obj 45 177 spigot; +#X obj 192 274 spigot; +#X obj 25 249 \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9; +#X obj 22 301 outlet; +#X obj 260 23 inlet; +#X msg 67 124 0 1; +#X msg 105 125 1 0; +#X text 252 156 this object is used by nqpoly5; +#X text 12 5 nqpwrap5 - pix.test.at; +#X obj 45 64 trigger anything anything; +#X obj 25 226 trigger anything bang; +#X obj 105 100 loadbang; +#X obj 78 155 unpack float float; +#X obj 85 301 outlet~; +#X text 213 298 strange ordering to make dynamic patching esaier; +#X obj 161 301 outlet~; +#X connect 0 0 10 0; +#X connect 1 0 11 0; +#X connect 2 0 4 0; +#X connect 3 0 14 0; +#X connect 3 1 16 0; +#X connect 3 2 7 0; +#X connect 5 0 3 1; +#X connect 6 0 13 0; +#X connect 7 0 13 0; +#X connect 10 0 1 0; +#X connect 10 1 2 0; +#X connect 11 0 3 0; +#X connect 11 1 6 0; +#X connect 12 0 7 0; +#X connect 13 0 1 1; +#X connect 13 1 2 1; diff --git a/voices~.pd b/voices~.pd new file mode 100644 index 0000000..cf22bc9 --- /dev/null +++ b/voices~.pd @@ -0,0 +1,186 @@ +#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-voices~; +#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 voices-wrap~ \$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-voices~ 0; +#X restore 26 96 pd \$0-voices~; +#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