-
Notifications
You must be signed in to change notification settings - Fork 1
/
buzz~-help.pd
492 lines (492 loc) · 12 KB
/
buzz~-help.pd
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
#N canvas 7 114 1014 728 10;
#X obj 181 14 loadbang;
#X obj 181 33 samplerate~;
#X text 243 182 phase;
#X obj 184 74 / 2;
#X text 275 115 frequency to extend harmonics to;
#X text 0 142 fundamental;
#X text 272 2 band-limited impulse generator;
#X obj 77 105 mtof;
#X floatatom 81 79 5 0 0 0 - - -;
#X obj 155 9 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X floatatom 615 277 5 0 0 0 - - -;
#X obj 357 42 f;
#X obj 357 22 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X text 439 67 roll 'em;
#X floatatom 509 267 5 0 0 0 - - -;
#X msg 358 62 0 \, \$1 10000;
#X msg 208 187 1;
#X text 466 406 the lowest frequency that has "accurate" harmonics
is samplerate/262141 (.083924 @ 44100 hz);
#X obj 504 44 f;
#X obj 510 23 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X msg 505 64 \$1 \, 0 10000;
#X text 534 121 harmonics are crossfaded in order to avoid clicking
;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-spectrum 512 float 0;
#X coords 0 1 512 0 400 140 1;
#X restore 565 538 graph;
#N canvas 162 23 1104 651 mmb-spectrum 0;
#X obj 118 77 inlet~;
#X obj 111 233 *~;
#X obj 140 233 *~;
#X obj 122 273 sqrt~;
#X obj 642 77 inlet;
#X obj 157 110 sig~ 1;
#X obj 118 167 *~;
#X obj 147 585 metro 100;
#X obj 437 91 t b b;
#N canvas 0 23 555 513 get.size 0;
#X obj 196 223 t f f f;
#X obj 240 277 ==;
#X obj 161 339 spigot;
#X obj 237 416 expr pow(2. \, $f1);
#X obj 274 310 == 0;
#X obj 243 338 spigot;
#X obj 245 364 i;
#X obj 257 253 i;
#X obj 244 385 + 1;
#X obj 193 170 expr log(size("$s1"))/log(2.);
#X obj 197 55 inlet;
#X obj 242 452 outlet;
#X obj 283 19 r pd;
#X obj 283 41 route dsp;
#X obj 282 64 sel 1;
#X obj 197 198 change -1;
#X obj 351 71 r \$0-check.table.size;
#X obj 350 92 sel 1;
#X obj 192 130 symbol \$0-spectrum;
#X connect 0 0 2 0;
#X connect 0 0 5 0;
#X connect 0 1 1 0;
#X connect 0 2 7 0;
#X connect 1 0 2 1;
#X connect 1 0 4 0;
#X connect 2 0 3 0;
#X connect 3 0 11 0;
#X connect 4 0 5 1;
#X connect 5 0 6 0;
#X connect 6 0 8 0;
#X connect 7 0 1 1;
#X connect 8 0 3 0;
#X connect 9 0 15 0;
#X connect 10 0 18 0;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 14 0 18 0;
#X connect 15 0 0 0;
#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X connect 18 0 9 0;
#X restore 450 137 pd get.size;
#X obj 389 207 * 2;
#X obj 445 213 s \$1;
#X msg 462 293 set \$1 1 1;
#X obj 561 219 r pd;
#X obj 561 245 route dsp;
#X obj 642 306 * 1;
#X obj 494 371 switch~ 2048;
#X msg 205 109 12;
#N canvas 0 23 450 300 \$0-reset 0;
#X restore 731 448 pd \$0-reset;
#X obj 731 369 sel 1;
#X obj 731 424 s pd-\$0-reset;
#X msg 731 398 obj 100 100 +~ \, clear;
#X msg 197 277 3.88227 \$1;
#X obj 197 298 /;
#X obj 122 319 *~ 0.00189564;
#X obj 157 139 windowing/kaiser~;
#X obj 642 156 i;
#X obj 642 177 clip 0 1;
#X obj 642 356 s \$0-plot;
#X obj 147 532 r \$0-plot;
#X obj 198 559 r \$0-refresh;
#X obj 691 151 s \$0-refresh;
#N canvas 765 197 568 496 ampscale 0;
#X obj 58 52 inlet~;
#X obj 179 82 r \$0-linamp;
#X obj 146 115 == 0;
#X obj 185 115 != 0;
#N canvas 89 44 681 600 logscale 0;
#X obj 82 68 inlet~;
#X obj 82 118 rmstodb~;
#X obj 175 100 unpack f f;
#X obj 144 243 swap;
#X obj 145 268 -;
#X obj 82 406 outlet~;
#X obj 144 145 + 100;
#X obj 144 175 max 0;
#X obj 217 143 + 100;
#X obj 82 226 -~ 0;
#X obj 82 312 /~ 1;
#X obj 82 363 clip~ 0 1;
#X obj 175 78 r \$0-dbrange;
#X obj 322 68 inlet;
#X obj 322 102 switch~;
#X connect 0 0 1 0;
#X connect 1 0 9 0;
#X connect 2 0 6 0;
#X connect 2 1 8 0;
#X connect 3 0 4 0;
#X connect 3 1 4 1;
#X connect 4 0 10 1;
#X connect 6 0 7 0;
#X connect 7 0 3 0;
#X connect 7 0 9 1;
#X connect 8 0 3 1;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 5 0;
#X connect 12 0 2 0;
#X connect 13 0 14 0;
#X restore 58 195 pd logscale;
#X obj 58 252 outlet~;
#N canvas 406 23 575 491 linscale 0;
#X obj 115 79 inlet~;
#X obj 306 79 inlet;
#X obj 306 125 switch~;
#X obj 201 162 r \$0-amprange;
#X obj 201 195 unpack f f;
#X obj 115 270 -~ 0;
#X obj 201 222 max 0;
#X obj 201 277 swap;
#X obj 203 307 -;
#X obj 115 344 /~ 1;
#X obj 115 381 clip~ 0 1;
#X obj 115 416 outlet~;
#X connect 0 0 5 0;
#X connect 1 0 2 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 4 1 7 1;
#X connect 5 0 9 0;
#X connect 6 0 5 1;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 7 1 8 1;
#X connect 8 0 9 1;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X restore 148 195 pd linscale;
#X connect 0 0 4 0;
#X connect 0 0 6 0;
#X connect 1 0 2 0;
#X connect 1 0 3 0;
#X connect 2 0 4 1;
#X connect 3 0 6 1;
#X connect 4 0 5 0;
#X connect 6 0 5 0;
#X restore 122 372 pd ampscale;
#X obj 740 177 s \$0-linamp;
#X obj 787 151 s \$0-dbrange;
#X obj 569 22 loadbang;
#X msg 445 189 resize \$1 \, bounds 0 1 \$1 0;
#X obj 841 180 s \$0-amprange;
#N canvas 0 23 450 300 freqscale 0;
#X obj 101 45 inlet~;
#X obj 206 74 r \$0-logfreq;
#X obj 173 106 == 0;
#N canvas 0 23 450 300 linfreq 0;
#X obj 119 59 inlet~;
#X obj 119 158 outlet~;
#X obj 199 108 switch~;
#X obj 199 59 inlet;
#X connect 0 0 1 0;
#X connect 3 0 2 0;
#X restore 101 169 pd linfreq;
#X obj 233 106 != 0;
#X obj 101 218 outlet~;
#N canvas 488 97 819 684 logfreq 0;
#X obj 119 59 inlet~;
#X obj 273 613 outlet~;
#X obj 339 108 switch~;
#X obj 339 59 inlet;
#X obj 520 50 r \$0-table.size;
#X obj 119 122 tabsend~ \$0-tab.linfreq;
#X obj 515 204 table \$0-tab.linfreq 512;
#X obj 520 123 s \$0-tab.linfreq;
#X msg 520 102 resize \$1;
#X obj 515 226 table \$0-tab.logscale 512;
#N canvas 682 22 758 715 logscale 0;
#X obj 121 42 inlet;
#X obj 121 74 change;
#X obj 261 164 s \$0-tab.logscale;
#X msg 261 142 resize \$1;
#X obj 117 312 until;
#X obj 117 358 f 0;
#X obj 147 359 + 1;
#X msg 132 337 0;
#X obj 122 100 t f f;
#X obj 313 242 swap;
#X obj 124 155 i;
#X obj 124 180 t f f;
#X obj 313 268 -;
#X obj 313 323 until;
#X obj 313 369 f 0;
#X obj 343 370 + 1;
#X msg 328 348 0;
#X obj 313 400 t f f;
#X obj 340 429 s \$0-logscale.index;
#X obj 313 456 /;
#X obj 313 517 * 21.8268;
#X obj 313 586 *;
#X obj 313 548 / 22050;
#X obj 196 657 tabwrite \$0-tab.logscale;
#X obj 337 627 r \$0-logscale.index;
#X msg 193 362 119.766 \$1;
#X obj 117 281 t f b f;
#X obj 193 388 /;
#X obj 117 393 t f f;
#X obj 195 438 +;
#X obj 117 426 + 1;
#X obj 117 458 *;
#X obj 117 515 mtof;
#X obj 117 540 / 22050;
#X obj 117 575 *;
#X obj 313 293 t f b f;
#X obj 168 472 s \$0-logscale.index;
#X obj 117 488 + 17;
#X obj 124 132 * 0.97;
#X obj 313 485 expr pow($f1 \, .4);
#X connect 0 0 1 0;
#X connect 1 0 8 0;
#X connect 3 0 2 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 5 0 28 0;
#X connect 6 0 5 1;
#X connect 7 0 5 1;
#X connect 8 0 38 0;
#X connect 8 1 3 0;
#X connect 8 1 9 1;
#X connect 8 1 21 1;
#X connect 8 1 34 1;
#X connect 9 0 12 0;
#X connect 9 1 12 1;
#X connect 10 0 11 0;
#X connect 11 0 26 0;
#X connect 11 1 9 0;
#X connect 12 0 29 1;
#X connect 12 0 35 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 14 0 17 0;
#X connect 15 0 14 1;
#X connect 16 0 14 1;
#X connect 17 0 19 0;
#X connect 17 1 18 0;
#X connect 19 0 39 0;
#X connect 20 0 22 0;
#X connect 21 0 23 0;
#X connect 22 0 21 0;
#X connect 24 0 23 1;
#X connect 25 0 27 0;
#X connect 26 0 4 0;
#X connect 26 1 7 0;
#X connect 26 2 25 0;
#X connect 27 0 31 1;
#X connect 28 0 30 0;
#X connect 28 1 29 0;
#X connect 29 0 36 0;
#X connect 30 0 31 0;
#X connect 31 0 37 0;
#X connect 32 0 33 0;
#X connect 33 0 34 0;
#X connect 34 0 23 0;
#X connect 35 0 13 0;
#X connect 35 1 16 0;
#X connect 35 2 19 1;
#X connect 37 0 32 0;
#X connect 38 0 10 0;
#X connect 39 0 20 0;
#X restore 600 84 pd logscale;
#X obj 379 246 * 2;
#X obj 337 164 r \$0-full;
#X obj 361 195 t b f;
#X obj 316 247 + 1;
#X obj 315 222 == 1;
#X obj 273 367 *~ 1;
#X obj 273 338 tabread~ \$0-tab.logscale;
#X obj 273 477 tabread~ \$0-tab.linfreq;
#X obj 273 417 expr~ int($v1) \; modf($v1);
#X obj 355 538 tabread~ \$0-tab.linfreq;
#X obj 355 516 +~ 1;
#X obj 273 580 *~;
#X obj 289 522 sig~ 1;
#X obj 290 548 -~;
#X obj 386 569 *~;
#X obj 273 287 cyclone/count~ 0 1024 1 1;
#X connect 0 0 5 0;
#X connect 3 0 2 0;
#X connect 4 0 8 0;
#X connect 4 0 10 0;
#X connect 4 0 11 0;
#X connect 8 0 7 0;
#X connect 11 0 26 1;
#X connect 12 0 13 0;
#X connect 12 0 15 0;
#X connect 13 0 11 0;
#X connect 13 1 11 1;
#X connect 14 0 16 1;
#X connect 15 0 14 0;
#X connect 16 0 19 0;
#X connect 17 0 16 0;
#X connect 18 0 22 0;
#X connect 19 0 18 0;
#X connect 19 0 21 0;
#X connect 19 1 24 1;
#X connect 19 1 25 1;
#X connect 20 0 25 0;
#X connect 21 0 20 0;
#X connect 22 0 1 0;
#X connect 23 0 24 0;
#X connect 24 0 22 1;
#X connect 25 0 1 0;
#X connect 26 0 17 0;
#X restore 201 169 pd logfreq;
#X connect 0 0 3 0;
#X connect 0 0 6 0;
#X connect 1 0 2 0;
#X connect 1 0 4 0;
#X connect 2 0 3 1;
#X connect 3 0 5 0;
#X connect 4 0 6 1;
#X connect 6 0 5 0;
#X restore 122 452 pd freqscale;
#X obj 471 164 s \$0-table.size;
#X obj 889 153 s \$0-logfreq;
#X obj 122 494 clip~ 0 1;
#X obj 570 44 t b b;
#X text 872 401 I don't know why \, but this needs to be done. I think
switch~ throws the window out of sync \, and a little dynamic patching
seems to fix it.;
#X obj 118 196 fft~;
#X obj 642 128 route plot refresh linamp dbrange amprange logfreq full
;
#X obj 948 297 s \$0-full;
#X obj 330 126 r \$0-full;
#X obj 945 194 i;
#X obj 943 220 clip 0 1;
#X obj 949 274 + 1;
#X obj 354 157 t b f;
#X obj 946 245 == 0;
#X obj 686 265 s \$0-check.table.size;
#X obj 642 226 t f f;
#X obj 561 265 t b f;
#X obj 122 623 tabwrite~ \$0-spectrum;
#X msg 699 89 plot 1 \, refresh 100 \, linamp 0 \, dbrange -100 0 \,
amprange 0 1 \, logfreq 0 \, full 0;
#X connect 0 0 6 0;
#X connect 1 0 3 0;
#X connect 2 0 3 0;
#X connect 3 0 24 0;
#X connect 4 0 45 0;
#X connect 5 0 25 0;
#X connect 6 0 44 0;
#X connect 7 0 56 0;
#X connect 8 0 17 0;
#X connect 8 1 9 0;
#X connect 9 0 10 0;
#X connect 9 0 36 0;
#X connect 9 0 39 0;
#X connect 10 0 12 0;
#X connect 10 0 22 0;
#X connect 12 0 16 0;
#X connect 13 0 14 0;
#X connect 14 0 55 0;
#X connect 15 0 16 0;
#X connect 15 0 19 0;
#X connect 15 0 28 0;
#X connect 17 0 25 0;
#X connect 19 0 21 0;
#X connect 21 0 20 0;
#X connect 22 0 23 0;
#X connect 23 0 24 1;
#X connect 24 0 32 0;
#X connect 25 0 6 1;
#X connect 26 0 27 0;
#X connect 27 0 54 0;
#X connect 29 0 7 0;
#X connect 30 0 7 1;
#X connect 32 0 38 0;
#X connect 35 0 42 0;
#X connect 36 0 11 0;
#X connect 38 0 41 0;
#X connect 41 0 56 0;
#X connect 42 0 57 0;
#X connect 42 1 8 0;
#X connect 44 0 1 0;
#X connect 44 0 1 1;
#X connect 44 1 2 0;
#X connect 44 1 2 1;
#X connect 45 0 26 0;
#X connect 45 1 31 0;
#X connect 45 2 33 0;
#X connect 45 3 34 0;
#X connect 45 4 37 0;
#X connect 45 5 40 0;
#X connect 45 6 48 0;
#X connect 47 0 51 0;
#X connect 48 0 49 0;
#X connect 49 0 52 0;
#X connect 50 0 46 0;
#X connect 51 0 10 0;
#X connect 51 1 10 1;
#X connect 52 0 50 0;
#X connect 54 0 15 0;
#X connect 54 1 53 0;
#X connect 55 0 15 0;
#X connect 55 1 15 1;
#X connect 57 0 45 0;
#X restore 483 484 pd mmb-spectrum;
#X text 440 168 if an argument is present \, it is interpreted as the
frequency to extend harmonics to if it is a number. if the argument
is a non-number then it is set to 1/2 the sample rate. if there is
no argument then the second inlet will be a signal-inlet;
#X text 191 245 <- 2nd outlet gives 1/2 frequency phasor~;
#X obj 562 442 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X msg 561 462 linamp \$1;
#X obj 39 9 r pd-dsp-started;
#X obj 181 54 change -1;
#X obj 367 81 ./expline;
#X obj 514 83 ./rexpline;
#X obj 90 140 ./smoother~ 15;
#X obj 179 114 ./smoother~ 100;
#X obj 156 225 ./buzz~;
#X obj 90 326 ./outputc~;
#X obj 446 290 ./buzz~ gobbledygook;
#X obj 586 299 ./buzz~ 9000;
#X connect 0 0 1 0;
#X connect 1 0 29 0;
#X connect 3 0 11 1;
#X connect 3 0 18 1;
#X connect 3 0 33 0;
#X connect 7 0 32 0;
#X connect 8 0 7 0;
#X connect 9 0 1 0;
#X connect 10 0 37 1;
#X connect 11 0 15 0;
#X connect 12 0 11 0;
#X connect 14 0 36 1;
#X connect 15 0 30 0;
#X connect 16 0 34 2;
#X connect 18 0 20 0;
#X connect 19 0 18 0;
#X connect 20 0 31 0;
#X connect 26 0 27 0;
#X connect 27 0 23 1;
#X connect 28 0 1 0;
#X connect 29 0 3 0;
#X connect 30 0 33 0;
#X connect 31 0 33 0;
#X connect 32 0 34 0;
#X connect 32 0 36 0;
#X connect 33 0 34 1;
#X connect 34 0 23 0;
#X connect 34 0 35 1;
#X connect 34 0 35 0;