-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathpp.fft-partconv~.s.pd
More file actions
595 lines (595 loc) · 14.6 KB
/
pp.fft-partconv~.s.pd
File metadata and controls
595 lines (595 loc) · 14.6 KB
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
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
#N canvas 361 230 1164 557 10;
#X obj 296 103 inlet~;
#X obj 809 98 inlet;
#X obj 499 504 outlet~;
#N canvas 176 211 692 496 in 0;
#X obj 125 323 s \$0-open;
#X obj 125 300 symbol;
#X obj 125 38 inlet;
#X obj 199 321 clip 0 100;
#X obj 199 342 s \$0-drywetr;
#X obj 212 274 loadbang;
#X msg 212 295 100;
#N canvas 531 153 450 300 set 0;
#X obj 161 48 inlet;
#X obj 161 69 symbol;
#X obj 193 131 array size;
#X obj 193 154 s \$0-ir-length;
#X msg 53 159 label \$1;
#X obj 161 89 t s b s s;
#X obj 53 187 s \$0-irname-guir;
#X obj 161 236 s \$0-set-tab;
#X connect 0 0 1 0;
#X connect 1 0 5 0;
#X connect 2 0 3 0;
#X connect 4 0 6 0;
#X connect 5 0 4 0;
#X connect 5 0 7 0;
#X connect 5 1 2 0;
#X connect 5 2 2 1;
#X restore 239 242 pd set;
#N canvas 3 57 617 375 blocksize 0;
#X obj 184 76 t f f;
#X obj 184 212 spigot;
#X text 249 141 prevent setting blocksizes that are not a power of 2;
#X msg 244 244 blocksize is not a power of 2;
#X obj 184 294 outlet;
#X obj 244 222 sel 0;
#X obj 184 54 inlet;
#X obj 244 265 print pp.fft-partconv~;
#X obj 217 122 expr (($f1-1) & $f1) == 0;
#X connect 0 0 1 0;
#X connect 0 1 8 0;
#X connect 1 0 4 0;
#X connect 3 0 7 0;
#X connect 5 0 3 0;
#X connect 6 0 0 0;
#X connect 8 0 1 1;
#X connect 8 0 5 0;
#X restore 296 362 pd blocksize;
#X obj 305 268 f \$1;
#X obj 305 289 sel 0;
#X msg 305 312 1024;
#X obj 435 188 loadbang;
#X obj 462 399 s \$0-max-blocksize;
#X obj 462 301 sel 0;
#X obj 462 280 f \$2;
#X msg 462 327 65536;
#N canvas 3 57 617 375 blocksize 0;
#X obj 184 76 t f f;
#X obj 184 212 spigot;
#X text 249 141 prevent setting blocksizes that are not a power of 2;
#X obj 184 294 outlet;
#X obj 244 222 sel 0;
#X obj 184 54 inlet;
#X obj 244 265 print pp.fft-partconv~;
#X msg 244 244 max. blocksize is not a power of 2;
#X obj 217 122 expr (($f1-1) & $f1) == 0;
#X connect 0 0 1 0;
#X connect 0 1 8 0;
#X connect 1 0 3 0;
#X connect 4 0 7 0;
#X connect 5 0 0 0;
#X connect 7 0 6 0;
#X connect 8 0 1 1;
#X connect 8 0 4 0;
#X restore 462 375 pd blocksize;
#X obj 435 228 t b b;
#X obj 296 338 change;
#X obj 462 351 change;
#X obj 296 385 max 128;
#X obj 296 409 s \$0-min-blocksize;
#N canvas 698 546 200 251 route 0;
#X obj 20 20 inlet;
#X obj 30 60 route save recall;
#X obj 30 85 route float;
#X obj 97 111 route float;
#X obj 30 136 s \$0-save;
#X obj 30 108 i;
#X obj 98 133 i;
#X obj 98 161 s \$0-recall;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 3 0;
#X connect 2 0 5 0;
#X connect 3 0 6 0;
#X connect 5 0 4 0;
#X connect 6 0 7 0;
#X restore 148 81 pd route save-recall;
#N canvas 362 125 450 479 recall 0;
#X obj 49 145 outlet;
#N canvas 3 54 450 600 listsplit 0;
#X obj 158 23 inlet;
#X obj 220 87 list length;
#X obj 220 113 until;
#X obj 182 150 f;
#X obj 278 150 + 1;
#X msg 265 111 0;
#X obj 182 226 list store;
#X msg 182 202 get \$1 1;
#X obj 154 367 list split;
#X obj 222 342 f;
#X obj 154 334 list;
#X obj 98 124 list;
#X obj 182 389 list split 1;
#X obj 154 274 t bang bang bang;
#X obj 182 179 t f f;
#X obj 158 48 t l l l b;
#X obj 154 473 outlet;
#X obj 154 440 list trim;
#X obj 163 248 sel |;
#X text 275 197 hacky split list at "|";
#X connect 0 0 15 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 0 14 0;
#X connect 4 0 3 1;
#X connect 5 0 3 1;
#X connect 6 0 18 0;
#X connect 7 0 6 0;
#X connect 8 0 17 0;
#X connect 8 1 12 0;
#X connect 9 0 8 1;
#X connect 10 0 8 0;
#X connect 11 0 15 0;
#X connect 12 1 11 0;
#X connect 13 0 10 0;
#X connect 13 1 9 0;
#X connect 13 2 2 1;
#X connect 14 0 7 0;
#X connect 14 1 9 1;
#X connect 15 0 1 0;
#X connect 15 1 10 1;
#X connect 15 2 6 1;
#X connect 15 3 5 0;
#X connect 17 0 16 0;
#X connect 18 0 13 0;
#X restore 49 117 pd listsplit;
#X obj 49 24 r \$0-recall;
#X obj 49 54 pipe 1;
#X obj 221 409 text fromlist \$0-savestates;
#X obj 49 77 text get \$0-savestates;
#X msg 253 246 21;
#X obj 253 269 until;
#X obj 253 292 f;
#X obj 300 295 + 1;
#X obj 253 315 t b f;
#X obj 253 367 text set \$0-savestates;
#X obj 221 114 text tolist \$0-savestates;
#X msg 253 342 list empty_slot;
#X obj 221 160 t a b;
#X obj 151 166 loadbang;
#X obj 221 137 savestate;
#X obj 221 33 text define \$0-savestates;
#X obj 151 189 del 0;
#X msg 298 199 0;
#X obj 253 220 spigot 1;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 3 0 5 0;
#X connect 5 0 1 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 8 0 10 0;
#X connect 9 0 8 1;
#X connect 10 0 13 0;
#X connect 10 1 11 1;
#X connect 12 0 16 0;
#X connect 13 0 11 0;
#X connect 14 0 4 0;
#X connect 14 1 19 0;
#X connect 15 0 18 0;
#X connect 16 0 14 0;
#X connect 16 1 12 0;
#X connect 18 0 20 0;
#X connect 19 0 20 1;
#X connect 20 0 6 0;
#X restore 214 107 pd recall;
#X obj 125 137 route loadIR dry/wet set blocksize max-blocksize;
#X connect 1 0 0 0;
#X connect 2 0 23 0;
#X connect 2 0 25 0;
#X connect 3 0 4 0;
#X connect 5 0 6 0;
#X connect 6 0 4 0;
#X connect 8 0 21 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 10 1 19 0;
#X connect 11 0 19 0;
#X connect 12 0 18 0;
#X connect 14 0 16 0;
#X connect 14 1 20 0;
#X connect 15 0 14 0;
#X connect 16 0 20 0;
#X connect 17 0 13 0;
#X connect 18 0 9 0;
#X connect 18 1 15 0;
#X connect 19 0 8 0;
#X connect 20 0 17 0;
#X connect 21 0 22 0;
#X connect 24 0 25 0;
#X connect 25 0 1 0;
#X connect 25 1 3 0;
#X connect 25 2 7 0;
#X connect 25 3 19 0;
#X connect 25 4 20 0;
#X restore 809 120 pd in;
#N canvas 3 54 450 300 delay 0;
#X obj 234 102 inlet~;
#X obj 234 123 outlet~;
#X obj 309 125 block~ \$1;
#X obj 309 79 r \$0-min-blocksize;
#X msg 309 102 set \$1 1;
#X connect 0 0 1 0;
#X connect 3 0 4 0;
#X connect 4 0 2 0;
#X restore 296 381 pd delay clean;
#X obj 103 130 hsl 130 15 0 100 0 0 \$0-gui \$0-guir Dry/Wet(%) 3 8 2 10 #e0e0e0 #000000 #000000 0 1;
#X obj 276 130 hsl 2 8 0 1 0 0 \$0-gui \$0-guir empty 3 8 2 10 #e0e0e0 #dcdcdc #000000 0 1;
#X obj 235 130 nbx 5 15 0 100 0 0 \$0-drywet \$0-drywetr empty 0 -8 2 10 #dcdcdc #000000 #000000 0 256;
#X msg 158 186 set \$1;
#X obj 75 167 i;
#X msg 75 188 set \$1;
#X obj 54 217 s \$0-drywet;
#X obj 118 115 hsl 160 15 0 100 0 0 \$0-irname-gui \$0-irname-guir empty.. 3 8 2 10 #e0e0e0 #dcdcdc #000000 0 1;
#X obj 100 115 bng 15 250 50 0 \$0-obng \$0-obngr empty 17 7 0 10 #dcdcdc #fcfcfc #000000;
#X obj 403 123 *~ 0.01;
#X obj 800 480 outlet;
#N canvas 688 168 486 485 outlet-message 0;
#X obj 179 340 list trim;
#X msg 116 318 addcomma;
#X msg 26 233 set;
#X obj 179 317 list prepend add2;
#X obj 160 423 outlet;
#X obj 166 14 r \$0-open;
#X obj 166 35 t b a;
#X obj 85 22 r \$0-drywet;
#X obj 228 36 t b f;
#X obj 113 154 pack 100 s 1024 3000;
#X obj 344 36 t b f;
#X obj 344 14 r \$0-max-blocksize;
#X msg 132 224 blocksize \$3 \, dry/wet \$1 \, loadIR \$2 \, max-blocksize \$4;
#X obj 228 15 r \$0-min-blocksize;
#X obj 85 45 t b f;
#X obj 85 98 del 0;
#X obj 85 121 f;
#X obj 160 260 t b a a;
#X obj 113 185 t b a b;
#N canvas 497 319 297 264 save 0;
#X obj 48 16 inlet;
#N canvas 690 259 481 384 collect 0;
#X obj 47 60 inlet;
#X obj 47 274 outlet;
#X obj 98 180 list;
#X obj 166 181 t l;
#X obj 47 225 list;
#X obj 98 139 list append |;
#X obj 47 126 del 0;
#X obj 47 82 t b a;
#X text 119 75 hacky thing... replaycing " \, " with "|";
#X connect 0 0 7 0;
#X connect 2 0 3 0;
#X connect 2 0 4 1;
#X connect 3 0 2 1;
#X connect 4 0 1 0;
#X connect 5 0 2 0;
#X connect 6 0 2 1;
#X connect 6 0 4 0;
#X connect 7 0 6 0;
#X connect 7 1 5 0;
#X restore 48 38 pd collect;
#X obj 117 16 r \$0-save;
#X obj 27 130 text set \$0-savestates;
#X obj 27 104 list;
#X obj 117 62 t b f;
#X obj 117 39 clip 0 20;
#X connect 0 0 1 0;
#X connect 1 0 4 1;
#X connect 2 0 6 0;
#X connect 4 0 3 0;
#X connect 5 0 4 0;
#X connect 5 1 3 1;
#X connect 6 0 5 0;
#X restore 199 285 pd save;
#X connect 0 0 4 0;
#X connect 1 0 4 0;
#X connect 2 0 4 0;
#X connect 3 0 0 0;
#X connect 5 0 6 0;
#X connect 6 0 15 0;
#X connect 6 1 9 1;
#X connect 7 0 14 0;
#X connect 8 0 15 0;
#X connect 8 1 9 2;
#X connect 9 0 18 0;
#X connect 10 0 15 0;
#X connect 10 1 9 3;
#X connect 11 0 10 0;
#X connect 12 0 17 0;
#X connect 13 0 8 0;
#X connect 14 0 15 0;
#X connect 14 1 16 1;
#X connect 15 0 16 0;
#X connect 16 0 9 0;
#X connect 17 0 1 0;
#X connect 17 1 3 0;
#X connect 17 2 19 0;
#X connect 18 0 4 0;
#X connect 18 1 12 0;
#X connect 18 2 2 0;
#X restore 800 456 pd outlet-message;
#N canvas 728 310 715 331 load-IR 0;
#X obj 63 80 s \$0-open;
#X obj 63 12 r \$0-obng;
#N canvas 522 220 600 405 openpanel 0;
#X obj 145 270 openpanel;
#X obj 145 47 f;
#X obj 175 48 + 1;
#X obj 145 70 sel 0;
#X obj 173 168 t b;
#X obj 145 20 inlet;
#X obj 145 293 outlet;
#X text 237 158 remember last directory;
#X obj 145 124 symbol ./;
#X obj 224 69 symbol;
#X obj 224 46 r \$0-open;
#X obj 173 210 symbol ./;
#N canvas 426 89 883 671 splitfilename 0;
#X obj 219 286 outlet;
#X text 263 289 filename;
#X obj 185 210 inlet;
#X obj 185 233 file splitname;
#X obj 185 256 list split 1;
#X obj 185 310 outlet;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 0 0;
#X connect 4 0 5 0;
#X connect 4 1 0 0;
#X restore 224 93 pd splitfilename;
#X connect 0 0 6 0;
#X connect 1 0 2 0;
#X connect 1 0 3 0;
#X connect 2 0 1 1;
#X connect 3 0 8 0;
#X connect 3 1 4 0;
#X connect 4 0 11 0;
#X connect 5 0 1 0;
#X connect 8 0 0 0;
#X connect 9 0 12 0;
#X connect 10 0 9 0;
#X connect 11 0 0 0;
#X connect 12 0 8 1;
#X connect 12 0 11 1;
#X restore 63 35 pd openpanel;
#X msg 381 271 label \$1;
#X msg 365 234 label empty..;
#X obj 365 211 loadbang;
#X obj 381 293 s \$0-irname-guir;
#N canvas 426 89 883 671 splitfilename 0;
#X obj 219 286 outlet;
#X text 263 289 filename;
#X obj 185 210 inlet;
#X obj 185 233 file splitname;
#X obj 185 256 list split 1;
#X obj 185 310 outlet;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 0 0;
#X connect 4 0 5 0;
#X connect 4 1 0 0;
#X restore 248 235 pd splitfilename;
#X obj 186 19 r \$0-open;
#X obj 186 89 file which;
#X msg 243 143 couldn't find \$1;
#X obj 243 166 print fft-partconv~;
#X obj 243 121 symbol;
#X obj 186 52 t a a, f 15;
#X obj 143 233 s \$0-subopen;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 6 0;
#X connect 4 0 6 0;
#X connect 5 0 4 0;
#X connect 7 1 3 0;
#X connect 8 0 13 0;
#X connect 9 0 7 0;
#X connect 9 0 14 0;
#X connect 9 1 12 0;
#X connect 10 0 11 0;
#X connect 12 0 10 0;
#X connect 13 0 9 0;
#X connect 13 1 12 1;
#X restore 809 173 pd load-IR;
#N canvas 53 134 745 476 dry/wet 0;
#X obj 182 27 inlet~;
#X obj 183 328 outlet~;
#X obj 183 237 *~;
#X obj 262 244 *~;
#X obj 548 119 line~;
#X obj 548 97 pack 0 30;
#X obj 315 194 -~;
#X obj 548 49 r \$0-drywet;
#X obj 548 72 / 50;
#X obj 329 170 clip~ 1 2;
#X obj 315 146 sig~ 2;
#X obj 518 165 clip~ 0 1;
#X obj 519 15 inlet~;
#X obj 518 119 +~;
#X obj 262 329 outlet~;
#X connect 0 0 2 0;
#X connect 0 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 14 0;
#X connect 4 0 13 1;
#X connect 5 0 4 0;
#X connect 6 0 2 1;
#X connect 7 0 8 0;
#X connect 8 0 5 0;
#X connect 9 0 6 1;
#X connect 10 0 6 0;
#X connect 11 0 3 1;
#X connect 12 0 13 0;
#X connect 13 0 11 0;
#X connect 13 0 9 0;
#X restore 297 283 pd dry/wet;
#X f 18;
#X obj 403 102 inlet~;
#X text 451 101 dry/wet;
#N canvas 421 280 847 397 collect_subroc_msg 0;
#X obj 439 38 r \$0-min-blocksize;
#X obj 609 40 r \$0-max-blocksize;
#X obj 39 186 list prepend open;
#X obj 438 187 list prepend min-blocksize;
#X obj 609 185 list prepend max-blocksize;
#X obj 39 306 list trim;
#X obj 39 329 outlet;
#X obj 156 40 r \$0-copy_tab;
#X obj 157 185 list prepend copyIR;
#X obj 284 38 r \$0-copy_size;
#X obj 284 185 list prepend copyIRsize;
#N canvas 673 485 450 300 check 0;
#X obj 170 37 inlet;
#X obj 209 104 list store;
#X obj 170 190 outlet;
#X obj 263 37 inlet;
#X obj 209 127 route bang;
#X connect 0 0 1 1;
#X connect 0 0 2 0;
#X connect 1 0 4 0;
#X connect 3 0 1 0;
#X connect 4 1 2 0;
#X restore 609 154 pd check;
#N canvas 673 485 450 300 check 0;
#X obj 170 37 inlet;
#X obj 209 104 list store;
#X obj 170 190 outlet;
#X obj 263 37 inlet;
#X obj 209 127 route bang;
#X connect 0 0 1 1;
#X connect 0 0 2 0;
#X connect 1 0 4 0;
#X connect 3 0 1 0;
#X connect 4 1 2 0;
#X restore 439 157 pd check;
#N canvas 673 485 450 300 check 0;
#X obj 170 37 inlet;
#X obj 209 104 list store;
#X obj 170 190 outlet;
#X obj 263 37 inlet;
#X obj 209 127 route bang;
#X connect 0 0 1 1;
#X connect 0 0 2 0;
#X connect 1 0 4 0;
#X connect 3 0 1 0;
#X connect 4 1 2 0;
#X restore 284 155 pd check;
#N canvas 673 485 450 300 check 0;
#X obj 170 37 inlet;
#X obj 209 104 list store;
#X obj 170 190 outlet;
#X obj 263 37 inlet;
#X obj 209 127 route bang;
#X connect 0 0 1 1;
#X connect 0 0 2 0;
#X connect 1 0 4 0;
#X connect 3 0 1 0;
#X connect 4 1 2 0;
#X restore 157 155 pd check;
#N canvas 673 485 450 300 check 0;
#X obj 170 37 inlet;
#X obj 209 104 list store;
#X obj 170 190 outlet;
#X obj 263 37 inlet;
#X obj 209 127 route bang;
#X connect 0 0 1 1;
#X connect 0 0 2 0;
#X connect 1 0 4 0;
#X connect 3 0 1 0;
#X connect 4 1 2 0;
#X restore 41 155 pd check;
#X obj 317 90 del 1;
#X obj 317 113 t b b b b b, f 13;
#X obj 40 40 r \$0-subopen;
#X obj 317 67 r \$0-startbang;
#X connect 0 0 12 0;
#X connect 1 0 11 0;
#X connect 2 0 5 0;
#X connect 3 0 5 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 7 0 14 0;
#X connect 8 0 5 0;
#X connect 9 0 13 0;
#X connect 10 0 5 0;
#X connect 11 0 4 0;
#X connect 12 0 3 0;
#X connect 13 0 10 0;
#X connect 14 0 8 0;
#X connect 15 0 2 0;
#X connect 16 0 17 0;
#X connect 17 0 15 1;
#X connect 17 1 14 1;
#X connect 17 2 13 1;
#X connect 17 3 12 1;
#X connect 17 4 11 1;
#X connect 18 0 15 0;
#X connect 19 0 16 0;
#X restore 439 249 pd collect_subroc_msg;
#X obj 402 384 pd~ -ninsig 1 -noutsig 1 -fifo 20;
#N canvas 89 528 450 300 set 0;
#X obj 89 44 r \$0-set-tab;
#X obj 90 129 array get;
#X obj 90 152 s \$0-copy_tab;
#X obj 183 132 array size;
#X obj 90 81 t b a b a;
#X obj 183 154 s \$0-copy_size;
#X connect 0 0 4 0;
#X connect 1 0 2 0;
#X connect 3 0 5 0;
#X connect 4 0 1 0;
#X connect 4 1 1 2;
#X connect 4 2 3 0;
#X connect 4 3 3 1;
#X restore 809 144 pd set;
#X obj 402 408 print pp.fft-partconv~;
#X msg 475 354 pd~ vis 1;
#X text 713 523 philipp schmalfuß \, 2018-26;
#X msg 450 331 pd~ start -nogui -send pd\ dsp\ 1 pp.fft-partconv-subroc.pd;
#N canvas 1245 162 450 300 startbang 0;
#X obj 155 51 r pd-dsp-started;
#X obj 155 91 spigot 1;
#X obj 155 114 t b b;
#X obj 123 95 f 0;
#X obj 182 139 s \$0-startbang;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 1 4 0;
#X connect 3 0 1 1;
#X restore 802 216 pd startbang;
#X obj 450 305 r \$0-startbang;
#X connect 0 0 18 0;
#X connect 1 0 3 0;
#X connect 4 0 2 0;
#X connect 5 0 9 0;
#X connect 7 0 8 0;
#X connect 8 0 5 0;
#X connect 9 0 10 0;
#X connect 9 0 11 0;
#X connect 10 0 7 0;
#X connect 14 0 18 1;
#X connect 16 0 15 0;
#X connect 18 0 4 0;
#X connect 18 1 22 0;
#X connect 19 0 14 0;
#X connect 21 0 22 0;
#X connect 22 0 24 0;
#X connect 22 1 2 0;
#X connect 25 0 22 0;
#X connect 27 0 22 0;
#X connect 29 0 27 0;
#X coords 0 -1 1 1 180 48 1 100 100;