aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/vasp/pd-ex/enhance.pd
blob: 05e8ef8af080355e71b9f9762f497bd067a0a92b (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
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
#N canvas 215 47 982 666 12;
#X obj 85 323 nbx 6 18 -100 0 0 1 empty empty spectral_gate(dB) 0 -8
0 12 -225271 -1 -1 -18 256;
#X obj 85 366 nbx 7 18 -10000 10000 0 1 empty empty transpose(cents)
0 -8 0 12 -225271 -1 -1 0 256;
#X obj 463 303 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 744 304 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#N canvas 0 22 476 326 save 0;
#X obj 30 198 soundfiler;
#X obj 30 134 symbol;
#X obj 29 106 savepanel;
#X obj 32 8 inlet;
#X obj 27 232 outlet;
#X obj 30 42 route new again;
#X obj 29 73 t b;
#X obj 84 73 t b;
#X msg 27 169 write -bytes 3 -wave \$1 dst;
#X connect 0 0 4 0;
#X connect 1 0 8 0;
#X connect 2 0 1 0;
#X connect 3 0 5 0;
#X connect 5 0 6 0;
#X connect 5 1 7 0;
#X connect 6 0 2 0;
#X connect 7 0 1 0;
#X connect 8 0 0 0;
#X restore 744 275 pd save;
#N canvas 205 58 359 496 open 0;
#X obj 19 96 openpanel;
#X obj 21 6 inlet;
#X obj 15 390 outlet;
#X obj 20 123 symbol;
#X obj 17 345 vasp.u;
#X obj 17 233 t b;
#X obj 22 33 route new again;
#X obj 19 66 t b;
#X obj 74 66 t b;
#X msg 16 281 vasp src;
#X obj 74 230 s \$0-srclen;
#X obj 15 313 vasp.opt;
#X obj 18 192 sndfiler;
#X msg 19 152 read -resize \$1 src;
#X connect 0 0 3 0;
#X connect 1 0 6 0;
#X connect 3 0 13 0;
#X connect 4 0 2 0;
#X connect 5 0 9 0;
#X connect 6 0 7 0;
#X connect 6 1 8 0;
#X connect 7 0 0 0;
#X connect 8 0 3 0;
#X connect 9 0 11 0;
#X connect 11 0 4 0;
#X connect 12 0 5 0;
#X connect 12 0 10 0;
#X connect 13 0 12 0;
#X restore 463 275 pd open;
#X msg 396 247 stop;
#N canvas 0 22 450 300 graph10 0;
#X array src 5.99654e+06 float 0;
#X coords 0 1 5.99654e+06 -1 600 150 1;
#X restore 322 20 graph;
#X msg 462 247 new;
#X msg 497 247 again;
#X msg 743 247 new;
#X msg 776 247 again;
#X msg 347 247 play;
#X obj 8 9 cnv 15 300 48 empty empty enhance 5 14 0 20 -233017 -66577
0;
#X obj 18 108 bng 25 250 50 0 empty empty do! 0 -6 0 12 -24198 -1 -1
;
#X obj 107 115 nbx 12 18 0 1e+08 0 1 empty empty length(frames) 0 -8
0 12 -225271 -1 -1 1e+06 256;
#X obj 347 222 cnv 15 100 20 empty empty play_src 5 8 0 10 -261681
-66577 0;
#X obj 462 222 cnv 15 100 20 empty empty read_src 5 8 0 10 -261681
-66577 0;
#X obj 742 222 cnv 15 100 20 empty empty write_dst 5 8 0 10 -261681
-66577 0;
#N canvas 0 22 450 300 graph10 0;
#X array dst 1e+06 float 0;
#X coords 0 1 999999 -1 600 150 1;
#X restore 324 392 graph;
#X msg 678 248 stop;
#X msg 629 248 play;
#X obj 629 223 cnv 15 100 20 empty empty play_dst 5 8 0 10 -261681
-66577 0;
#N canvas 0 22 519 371 playsrc 0;
#X obj 17 274 dac~;
#X obj 19 21 inlet;
#X obj 17 49 route play;
#X obj 18 197 tabplay~ src;
#X obj 338 23 r \$0-srclen;
#X obj 166 22 r \$0-offs;
#X obj 249 22 r \$0-len;
#X obj 338 48 t b f;
#X obj 166 94 *;
#X obj 248 93 *;
#X obj 75 132 pack 0 0;
#X obj 19 81 t b;
#X obj 77 105 loadbang;
#X obj 113 274 outlet;
#X obj 19 159 any;
#X obj 18 237 *~;
#X obj 451 21 inlet;
#X obj 451 50 pack 0 30;
#X obj 451 78 line~;
#X connect 1 0 2 0;
#X connect 2 0 11 0;
#X connect 2 1 3 0;
#X connect 3 0 15 0;
#X connect 3 1 13 0;
#X connect 4 0 7 0;
#X connect 5 0 8 0;
#X connect 6 0 9 0;
#X connect 7 0 8 0;
#X connect 7 0 9 0;
#X connect 7 1 8 1;
#X connect 7 1 9 1;
#X connect 8 0 10 0;
#X connect 9 0 10 1;
#X connect 10 0 14 1;
#X connect 11 0 14 0;
#X connect 12 0 10 0;
#X connect 14 0 3 0;
#X connect 15 0 0 0;
#X connect 15 0 0 1;
#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X connect 18 0 15 1;
#X restore 347 275 pd playsrc;
#N canvas 0 22 499 351 playdst 0;
#X obj 23 199 dac~;
#X obj 19 21 inlet;
#X obj 22 51 route play;
#X obj 21 83 tabplay~ dst;
#X obj 113 200 outlet;
#X obj 27 147 *~;
#X obj 171 27 inlet;
#X obj 171 56 pack 0 30;
#X obj 171 84 line~;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 1 3 0;
#X connect 3 0 5 0;
#X connect 3 1 4 0;
#X connect 5 0 0 0;
#X connect 5 0 0 1;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 5 1;
#X restore 629 276 pd playdst;
#N canvas 249 202 587 530 copy 0;
#X obj 27 26 inlet;
#X obj 27 51 t b b;
#X obj 316 19 inlet;
#X obj 25 361 outlet;
#X obj 26 81 vasp src;
#X obj 26 229 vasp.f;
#X obj 26 201 vasp.o;
#X obj 128 31 r \$0-offs;
#X obj 211 31 r \$0-len;
#X obj 316 87 f 1e+06;
#X obj 366 21 loadbang;
#X obj 84 169 *;
#X obj 117 169 *;
#X obj 82 139 vasp.f?;
#X obj 27 109 t a a;
#X obj 27 259 vasp.sync;
#X obj 26 328 vasp.f -1;
#X text 167 288 copy src to dst;
#X text 108 328 take all dst;
#X text 307 213 resize dst buffer;
#X obj 26 287 vasp.-> @detach 1;
#X text 340 139 set to zero;
#X obj 184 140 vasp.= 0 @ref dst @detach 1;
#X obj 183 194 vasp.s @detach 1;
#X connect 0 0 1 0;
#X connect 1 0 4 0;
#X connect 1 1 22 0;
#X connect 2 0 9 0;
#X connect 4 0 14 0;
#X connect 5 0 15 0;
#X connect 6 0 5 0;
#X connect 7 0 11 1;
#X connect 8 0 12 1;
#X connect 9 0 23 1;
#X connect 10 0 9 0;
#X connect 11 0 6 1;
#X connect 12 0 5 1;
#X connect 13 0 11 0;
#X connect 13 0 12 0;
#X connect 14 0 6 0;
#X connect 14 1 13 0;
#X connect 15 0 20 0;
#X connect 15 1 20 1;
#X connect 16 0 3 0;
#X connect 20 1 16 0;
#X connect 22 0 23 0;
#X connect 23 0 15 1;
#X restore 18 159 pd copy;
#X text 82 155 copy and resize;
#X obj 323 170 hsl 600 15 0 1 0 1 \$0-r2 empty empty -2 -6 0 8 -262131
-1 -1 51900 0;
#X obj 323 5 hsl 600 15 0 1 0 1 \$0-r1 empty empty -2 -6 0 8 -262131
-1 -1 34600 0;
#N canvas 148 330 313 273 sel 0;
#X obj 30 25 r \$0-r1;
#X obj 110 25 r \$0-r2;
#X obj 30 100 min;
#X obj 113 100 max;
#X obj 30 53 t f f;
#X obj 110 50 t b b f;
#X obj 113 130 -;
#X obj 27 190 s \$0-offs;
#X obj 113 190 s \$0-len;
#X obj 114 161 * -1;
#X connect 0 0 4 0;
#X connect 1 0 5 0;
#X connect 2 0 6 0;
#X connect 2 0 7 0;
#X connect 3 0 6 1;
#X connect 4 0 2 0;
#X connect 4 1 3 0;
#X connect 5 0 2 0;
#X connect 5 1 3 0;
#X connect 5 2 3 1;
#X connect 5 2 2 1;
#X connect 6 0 9 0;
#X connect 9 0 8 0;
#X restore 872 223 pd sel;
#X obj 85 410 nbx 7 18 0.01 10 1 1 empty empty power 0 -8 0 12 -225271
-1 -1 1.37078 256;
#X obj 346 302 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 628 302 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 165 324 -100... no gate;
#N canvas 0 22 482 332 normalize 0;
#X obj 127 29 loadbang;
#X msg 127 54 detach 1;
#X text 120 75 no attributes yet;
#X obj 39 115 vasp.opt;
#X obj 38 149 vasp.u;
#X obj 39 32 inlet;
#X obj 38 184 outlet;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 3 0;
#X restore 18 575 pd normalize;
#X obj 608 245 vsl 15 70 0.01 10 1 1 empty empty empty 0 -8 0 8 -262144
-1 -1 4400 1;
#X obj 324 247 vsl 15 70 0.01 10 1 1 empty empty empty 0 -8 0 8 -262144
-1 -1 5600 1;
#X text 11 37 (C)2007 Thomas Grill;
#N canvas 293 22 655 744 enhance 0;
#X obj 27 137 vasp.split 2;
#X obj 31 415 vasp.join 2;
#X obj 27 74 vasp.cfft @detach 1;
#X obj 33 471 vasp.c!fft @detach 1;
#X obj 25 13 inlet;
#X obj 91 230 * 0.01;
#X obj 302 17 inlet;
#X obj 26 107 vasp.polar @detach 1;
#X obj 33 442 vasp.rect @detach 1;
#X obj 29 321 vasp.gate @detach 1;
#X obj 30 386 vasp.sync;
#X obj 91 208 vasp.max? @detach 1;
#X obj 381 17 inlet;
#X obj 437 692 outlet;
#N canvas 238 212 484 334 non0 0;
#X obj 58 254 outlet;
#X obj 60 158 / 1;
#X obj 26 11 inlet;
#X obj 26 39 t a a;
#X obj 234 77 vasp.f?;
#X obj 46 98 vasp.!= 0 @detach 1;
#X obj 27 124 vasp.sum?;
#X obj 60 195 rmstodb;
#X obj 60 225 - 100;
#X obj 47 71 vasp.!;
#X connect 1 0 7 0;
#X connect 2 0 3 0;
#X connect 3 0 6 0;
#X connect 3 1 4 0;
#X connect 4 0 1 1;
#X connect 5 0 6 0;
#X connect 6 1 1 0;
#X connect 7 0 8 0;
#X connect 8 0 0 0;
#X connect 9 0 5 0;
#X restore 436 660 pd non0;
#X obj 34 511 vasp.n 0;
#X obj 302 45 + 100;
#X obj 300 76 dbtorms;
#N canvas 445 282 498 348 cplx 0;
#X obj 19 229 vasp.join;
#X obj 19 73 t a b a;
#X obj 149 137 vasp.f?;
#X obj 19 14 inlet;
#X obj 19 258 outlet;
#X text 216 135 get length of source;
#X text 225 181 make immediate;
#X text 225 196 initialized to 0;
#X text 101 230 make complex vasp;
#X obj 87 176 vasp.! @detach 1;
#X obj 19 203 vasp.sync;
#X connect 0 0 4 0;
#X connect 1 0 10 0;
#X connect 1 1 9 0;
#X connect 1 2 2 0;
#X connect 2 0 9 1;
#X connect 3 0 1 0;
#X connect 9 0 10 1;
#X connect 10 0 0 0;
#X connect 10 1 0 1;
#X restore 27 43 pd cplx;
#X text 281 166 resample;
#X text 146 230 find spectral peak;
#X text 203 320 gate spectrum below threshold;
#X text 107 387 wait for threads to finish;
#X text 193 75 FFT;
#X text 195 100 -> polar;
#X text 192 439 -> cartesian;
#X text 202 467 inverse FFT;
#X text 440 637 get spectral density;
#X obj 28 168 vasp.xtilt 1 @detach 1 @inter 2;
#X obj 30 347 vasp.pow @detach 1;
#X obj 441 21 inlet;
#X text 194 347 treat spectrum exponentially;
#X obj 28 238 t a a;
#X obj 28 288 vasp;
#X obj 89 257 t b f;
#X obj 381 51 / -1200;
#X obj 381 77 t b f;
#X obj 382 129 pow;
#X msg 382 103 2;
#X obj 73 542 t a a;
#X obj 74 640 vasp.* @detach 1;
#X obj 108 573 vasp.flp;
#X obj 33 678 outlet;
#X connect 0 0 28 0;
#X connect 0 1 10 1;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 15 0;
#X connect 4 0 18 0;
#X connect 5 0 34 0;
#X connect 6 0 16 0;
#X connect 7 0 0 0;
#X connect 8 0 3 0;
#X connect 9 0 29 0;
#X connect 10 0 1 0;
#X connect 10 1 1 1;
#X connect 11 0 5 0;
#X connect 12 0 35 0;
#X connect 14 0 13 0;
#X connect 15 0 42 0;
#X connect 16 0 17 0;
#X connect 17 0 5 1;
#X connect 18 0 2 0;
#X connect 28 0 32 0;
#X connect 29 0 10 0;
#X connect 29 0 14 0;
#X connect 30 0 29 1;
#X connect 32 0 11 0;
#X connect 32 1 33 1;
#X connect 33 0 9 0;
#X connect 34 0 33 0;
#X connect 34 1 9 1;
#X connect 35 0 36 0;
#X connect 36 0 38 0;
#X connect 36 1 37 1;
#X connect 37 0 28 1;
#X connect 38 0 37 0;
#X connect 39 0 40 0;
#X connect 39 1 41 0;
#X connect 40 0 42 0;
#X restore 17 440 pd enhance;
#N canvas 0 22 501 392 expand 0;
#X obj 41 33 inlet;
#X obj 41 313 outlet;
#X obj 42 64 t a a;
#X obj 76 93 vasp.!;
#X obj 41 280 vasp.* @detach 1;
#X obj 41 247 vasp.sync;
#X obj 77 167 vasp.flp @detach 1;
#X obj 218 35 inlet;
#X obj 76 202 vasp.pow @detach 1;
#X obj 376 37 inlet;
#X text 229 165 make a smooth volume curve;
#X obj 77 136 vasp.abs @detach 1;
#X connect 0 0 2 0;
#X connect 2 0 5 0;
#X connect 2 1 3 0;
#X connect 3 0 11 0;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X connect 5 1 4 1;
#X connect 6 0 8 0;
#X connect 7 0 6 1;
#X connect 8 0 5 1;
#X connect 9 0 8 1;
#X connect 11 0 6 0;
#X restore 18 275 pd expand;
#X obj 82 204 nbx 7 18 1 1e+06 1 1 empty empty low_pass_(samples) 0
-8 0 12 -225271 -1 -1 220.673 256;
#X obj 82 240 nbx 7 18 -3 5 0 1 empty empty power 0 -8 0 12 -225271
-1 -1 0 256;
#N canvas 0 22 517 408 expand 0;
#X obj 41 33 inlet;
#X obj 41 313 outlet;
#X obj 42 64 t a a;
#X obj 76 93 vasp.!;
#X obj 41 280 vasp.* @detach 1;
#X obj 41 247 vasp.sync;
#X obj 77 167 vasp.flp @detach 1;
#X obj 218 35 inlet;
#X obj 76 202 vasp.pow @detach 1;
#X obj 376 37 inlet;
#X text 229 165 make a smooth volume curve;
#X obj 77 136 vasp.abs @detach 1;
#X connect 0 0 2 0;
#X connect 2 0 5 0;
#X connect 2 1 3 0;
#X connect 3 0 11 0;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X connect 5 1 4 1;
#X connect 6 0 8 0;
#X connect 7 0 6 1;
#X connect 8 0 5 1;
#X connect 9 0 8 1;
#X connect 11 0 6 0;
#X restore 18 546 pd expand;
#X obj 84 482 nbx 7 18 1 1e+06 1 1 empty empty low_pass_(samples) 0
-8 0 12 -225271 -1 -1 5633.54 256;
#X obj 84 518 nbx 7 18 -3 10 0 1 empty empty power 0 -8 0 12 -225271
-1 -1 3 256;
#X obj 17 614 bng 25 250 50 0 empty empty ready 0 -6 0 12 -24198 -1
-1;
#X text 172 240 0... no change;
#X text 172 519 0... no change;
#X text 174 410 1... no change;
#X connect 0 0 38 1;
#X connect 1 0 38 2;
#X connect 4 0 3 0;
#X connect 5 0 2 0;
#X connect 6 0 23 0;
#X connect 8 0 5 0;
#X connect 9 0 5 0;
#X connect 10 0 4 0;
#X connect 11 0 4 0;
#X connect 12 0 23 0;
#X connect 14 0 25 0;
#X connect 15 0 25 1;
#X connect 20 0 24 0;
#X connect 21 0 24 0;
#X connect 23 0 31 0;
#X connect 24 0 32 0;
#X connect 25 0 39 0;
#X connect 30 0 38 3;
#X connect 31 0 12 0;
#X connect 32 0 21 0;
#X connect 34 0 45 0;
#X connect 35 0 24 1;
#X connect 36 0 23 1;
#X connect 38 0 42 0;
#X connect 39 0 38 0;
#X connect 40 0 39 1;
#X connect 41 0 39 2;
#X connect 42 0 34 0;
#X connect 43 0 42 1;
#X connect 44 0 42 2;