blob: f20b588462f445f4d8690b3ca4c3a23db4b73979 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
|
#N canvas 152 148 939 654 10;
#X obj 36 31 inlet;
#X obj 292 200 moses 1;
#X text 555 67 your abstraction is ultimately called with the parameters:
<index> <number of objects> <arg1> <arg2> <arg3> <arg4>;
#N canvas 7 455 362 318 \$0-poly 0;
#X restore 36 254 pd \$0-poly;
#X obj 36 227 s \$0-in1;
#N canvas 220 112 751 428 init 0;
#X obj 197 139 symbol \$0-poly;
#X obj 197 163 makefilename pd-%s;
#X obj 197 187 pack s \$0;
#X msg 204 118 bang;
#X text 154 317 This will clear the subpatch and create fake "in/outlets"
as senders and receivers.;
#X obj 103 206 s \$0-subname;
#X obj 197 92 b;
#X obj 197 69 r \$0-init;
#X msg 197 230 \; \$1 clear \; \$1 obj 50 60 r \$2-in1 \; \$1 obj 199
60 r \$2-in2 \; \$1 obj 50 200 throw~ \$2-out0 \; \$1 obj 199 200 throw~
\$2-out1 \;;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 0 5 0;
#X connect 2 0 8 0;
#X connect 3 0 0 0;
#X connect 6 0 0 0;
#X connect 7 0 6 0;
#X restore 343 108 pd init;
#X obj 139 31 inlet;
#X obj 256 63 loadbang;
#N canvas 0 22 692 559 last-two 0;
#X obj 153 175 cnv 15 150 80 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 378 110 first reset (b) \, then set new length (f).;
#X text 311 195 Right outlet is responsible to first fill the list
;
#X text 312 211 Left outlet then only lets the smaller list pass.;
#X obj 180 183 list;
#X obj 228 113 inlet;
#X obj 180 149 inlet;
#X obj 180 302 outlet;
#X obj 180 228 list split 2;
#X obj 228 149 b;
#X connect 4 0 8 0;
#X connect 5 0 9 0;
#X connect 6 0 4 0;
#X connect 8 0 4 1;
#X connect 8 0 7 0;
#X connect 8 2 4 1;
#X connect 9 0 4 1;
#X restore 386 521 pd last-two;
#X obj 386 562 list prepend;
#X msg 386 589 \; \$1 connect \$3 0 \$2 0 \;;
#X obj 465 541 r \$0-subname;
#N canvas 183 178 858 457 finish 0;
#X obj 121 185 until;
#X obj 156 212 + 1;
#X obj 121 284 list prepend;
#X obj 121 162 t a b;
#X obj 200 255 r \$0-subname;
#X obj 452 126 r \$0-subname;
#X obj 77 31 inlet;
#X obj 77 67 moses 1;
#X text 412 238 Connect [r \$0-in1] to first object's first inlet;
#X obj 168 185 4;
#X obj 121 211 f 4;
#X text 167 163 first 4 objects are xlets;
#X msg 415 196 \; \$1 connect 0 0 4 0 \;;
#X msg 121 318 \; \$1 connect 1 0 \$2 1 \; \$1 connect \$2 1 2 0 \;
\$1 connect \$2 2 3 0 \;;
#X obj 415 165 symbol;
#X obj 121 98 t a b;
#X text 276 344 Connect all wrapper's middle signal outlet to [s~ \$0-out0]
;
#X text 276 330 Connect all wrapper's right inlet to [r \$0-in2];
#X text 276 359 Connect all wrapper's left signal outlet to [s~ \$0-out1]
;
#X connect 0 0 10 0;
#X connect 1 0 10 1;
#X connect 2 0 13 0;
#X connect 3 0 0 0;
#X connect 3 1 9 0;
#X connect 4 0 2 1;
#X connect 5 0 14 1;
#X connect 6 0 7 0;
#X connect 7 1 15 0;
#X connect 9 0 10 1;
#X connect 10 0 1 0;
#X connect 10 0 2 0;
#X connect 14 0 12 0;
#X connect 15 0 3 0;
#X connect 15 1 14 0;
#X restore 274 260 pd finish;
#X text 600 134 based on: nqpoly (v4) - pix.test.at;
#X obj 343 135 s \$0-init;
#X obj 458 494 r \$0-init;
#X text 600 158 changes: fbar at footils.org 2006;
#X msg 405 444 \; \$2 obj 50 100 polypoly-wrap~ \$3 \$1 \$4 \$5 \$6
\$7 \$8 \;;
#X obj 256 135 t b a a a b;
#X obj 386 273 t a a b;
#X obj 343 31 inlet;
#X obj 36 167 pack 0 0 0;
#X obj 36 140 - 1;
#X obj 36 344 outlet~;
#X obj 454 306 symbol \$3;
#X obj 405 417 list append \$4 \$5 \$6 \$7;
#X obj 386 494 + 4;
#X obj 139 344 outlet~;
#X obj 36 287 catch~ \$0-out0;
#X obj 139 287 catch~ \$0-out1;
#X text 555 30 usage: polypoly~ <number of objects> <voice stealing:
0/1> <abstraction name> <up to 4 creation args>;
#X obj 36 113 poly \$1 \$2;
#N canvas 0 22 382 282 loadbang 0;
#X obj 130 64 inlet;
#X obj 130 86 b;
#X msg 130 141 \; \$1 loadbang;
#X obj 167 86 r \$0-subname;
#X obj 130 113 symbol;
#X connect 0 0 1 0;
#X connect 1 0 4 0;
#X connect 3 0 4 1;
#X connect 4 0 2 0;
#X restore 256 287 pd loadbang;
#X obj 139 227 s \$0-in2;
#N canvas 0 22 227 234 countto 0;
#X obj 60 97 until;
#X obj 95 124 + 1;
#X obj 60 124 f;
#X obj 107 97 0;
#X obj 60 77 t a b;
#X obj 60 54 inlet;
#X obj 60 145 outlet;
#X connect 0 0 2 0;
#X connect 1 0 2 1;
#X connect 2 0 1 0;
#X connect 2 0 6 0;
#X connect 3 0 2 1;
#X connect 4 0 0 0;
#X connect 4 1 3 0;
#X connect 5 0 4 0;
#X restore 386 246 pd countto;
#N canvas 183 272 316 307 expandpath 0;
#X obj 59 16 inlet;
#X obj 55 271 outlet;
#X obj 59 98 list append;
#X msg 58 153 symbol \$1/\$2;
#X obj 59 43 trigger bang anything;
#X obj 58 67 ggee/getdir 2;
#X connect 0 0 4 0;
#X connect 2 0 3 0;
#X connect 3 0 1 0;
#X connect 4 0 5 0;
#X connect 4 1 2 1;
#X connect 5 0 2 0;
#X restore 454 328 pd expandpath;
#X obj 343 58 unpack float symbol;
#X obj 448 359 receive \$0-subname;
#X obj 405 390 pack 0 symbol symbol 0;
#X obj 534 216 float;
#X obj 256 108 float \$1;
#X connect 0 0 31 0;
#X connect 1 1 34 0;
#X connect 6 0 33 0;
#X connect 7 0 40 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 11 0 9 1;
#X connect 15 0 8 1;
#X connect 18 0 32 0;
#X connect 18 1 12 0;
#X connect 18 2 1 0;
#X connect 18 3 39 0;
#X connect 18 4 14 0;
#X connect 19 0 26 0;
#X connect 19 1 38 0;
#X connect 19 2 24 0;
#X connect 20 0 36 0;
#X connect 21 0 4 0;
#X connect 22 0 21 0;
#X connect 24 0 35 0;
#X connect 25 0 17 0;
#X connect 26 0 8 0;
#X connect 28 0 23 0;
#X connect 29 0 27 0;
#X connect 31 0 22 0;
#X connect 31 1 21 1;
#X connect 31 2 21 2;
#X connect 34 0 19 0;
#X connect 35 0 38 2;
#X connect 36 0 40 0;
#X connect 36 1 24 0;
#X connect 37 0 38 1;
#X connect 38 0 25 0;
#X connect 39 0 38 3;
#X connect 40 0 18 0;
|