aboutsummaryrefslogtreecommitdiff
path: root/polypoly~.pd
blob: d97cfe3161f83691ba4c13a96c5b03bef6664263 (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
#N canvas 211 82 939 654 10;
#X obj 36 31 inlet;
#X obj 292 200 moses 1;
#X text 495 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;
#X obj 256 108 f \$1;
#N canvas 0 0 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 434 359 r \$0-subname;
#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 540 134 based on: nqpoly (v4) - pix.test.at;
#X obj 343 135 s \$0-init;
#X obj 458 494 r \$0-init;
#X text 540 158 changes: fbar at footils.org 2006;
#X obj 408 390 pack f s s f;
#X msg 408 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 395 31 inlet;
#X obj 36 167 pack 0 0 0;
#X obj 36 140 - 1;
#X obj 36 344 outlet~;
#X obj 460 332 symbol \$3;
#X obj 408 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 495 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 0 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;
#X obj 395 58 unpack f s;
#N canvas 0 0 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;
#X obj 487 216 f;
#X connect 0 0 34 0;
#X connect 1 1 38 0;
#X connect 6 0 36 0;
#X connect 7 0 8 0;
#X connect 8 0 21 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 12 0 19 1;
#X connect 13 0 10 1;
#X connect 17 0 9 1;
#X connect 19 0 28 0;
#X connect 21 0 35 0;
#X connect 21 1 14 0;
#X connect 21 2 1 0;
#X connect 21 3 39 0;
#X connect 21 4 16 0;
#X connect 22 0 29 0;
#X connect 22 1 19 0;
#X connect 22 2 27 0;
#X connect 23 0 37 0;
#X connect 24 0 4 0;
#X connect 25 0 24 0;
#X connect 27 0 19 2;
#X connect 28 0 20 0;
#X connect 29 0 9 0;
#X connect 31 0 26 0;
#X connect 32 0 30 0;
#X connect 34 0 25 0;
#X connect 34 1 24 1;
#X connect 34 2 24 2;
#X connect 37 0 8 0;
#X connect 37 1 27 0;
#X connect 38 0 22 0;
#X connect 39 0 19 3;