-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwavefolderHelp.pd
More file actions
341 lines (341 loc) · 10.1 KB
/
wavefolderHelp.pd
File metadata and controls
341 lines (341 loc) · 10.1 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
#N canvas 9 55 871 921 10;
#X obj 140 129 phasor~;
#X floatatom 141 109 0 0 0 0 - - -;
#X obj 141 89 mtof;
#X floatatom 141 70 5 0 0 0 - - -, f 5;
#X obj 131 27 loadbang;
#X obj 19 280 *~;
#X obj 27 309 dac~;
#X msg 66 101 bipolar \$1;
#X obj 67 81 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
;
#X msg 67 61 1;
#X msg 142 49 48;
#X obj 140 232 wavefolder~;
#X obj 68 278 *~;
#X obj 33 257 dbtorms;
#X obj 33 149 vsl 22 101 0 100 0 0 empty empty TriSaw 0 -9 0 10 -262144
-1 -1 9000 1;
#X obj 83 257 dbtorms;
#X obj 83 150 vsl 22 101 0 100 0 0 empty empty PWM 0 -9 0 10 -262144
-1 -1 0 1;
#X obj 211 129 * 0.01;
#X floatatom 211 110 5 -100 100 1 TriSaw - -, f 5;
#X floatatom 211 150 5 0 0 1 shape - -, f 5;
#X obj 291 129 * 0.01;
#X floatatom 291 110 5 -100 100 1 PWM - -, f 5;
#X floatatom 291 150 5 0 0 1 threshold - -, f 5;
#N canvas 0 23 450 300 miniscope~ 0;
#X obj 19 163 inlet~;
#N canvas 0 22 450 300 (subpatch) 0;
#X array trisaw 1024 float 0;
#X coords 0 1 1023 -1 202 61 1;
#X restore 202 128 graph;
#X obj 39 210 bang~;
#X obj 19 247 tabwrite~ trisaw;
#X obj 202 79 switch~ 1024 1 1;
#X obj 202 59 inlet;
#N canvas 0 22 450 300 (subpatch) 0;
#X array PWM 1024 float 0;
#X coords 0 1 1023 -1 202 61 1;
#X restore 406 128 graph;
#X obj 129 163 inlet~;
#X obj 149 210 bang~;
#X obj 129 247 tabwrite~ PWM;
#X connect 0 0 3 0;
#X connect 2 0 3 0;
#X connect 5 0 4 0;
#X connect 7 0 9 0;
#X connect 8 0 9 0;
#X coords 0 -1 1 1 410 81 2 200 110;
#X restore 146 262 pd miniscope~;
#X msg 562 262 1;
#X obj 567 237 loadbang;
#X text 373 112 it also generates continuously variable duty cycle
pulse waveforms from the trisaw wave.;
#X obj 211 176 pack f 20;
#X obj 291 176 pack f 20;
#X obj 211 198 line~;
#X obj 291 198 line~;
#X text 572 592 (c) 2012 Edward Kelly;
#X msg 36 62 90;
#X text 373 85 wavefolder~ derives continuously variable sawtooth -
to triangle shaped waveforms from phasor~ input.;
#X text 360 191 inlets: signal(phasor~ output) \, trisaw shape \, pulse
threshold;
#X text 361 220 outlets: trisaw wave \, pulse wave;
#N canvas 733 427 450 300 trisaw_spectrum~ 0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array trisaw_spectrum 128 float 1;
#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
#X coords 0 250 127 0 192 81 1;
#X restore 106 118 graph;
#N canvas 0 23 450 300 fft_analysis 0;
#X obj 92 36 inlet~;
#X obj 92 73 rfft~;
#X obj 189 120 bang~;
#X obj 231 97 block~ 1024 4 1;
#X obj 93 175 clip~ 0 250;
#X obj 93 211 tabwrite~ trisaw_spectrum;
#X obj 75 106 *~;
#X obj 114 106 *~;
#X obj 75 127 sqrt~;
#X connect 0 0 1 0;
#X connect 1 0 6 0;
#X connect 1 0 6 1;
#X connect 1 1 7 0;
#X connect 1 1 7 1;
#X connect 2 0 5 0;
#X connect 4 0 5 0;
#X connect 6 0 8 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X restore 166 53 pd fft_analysis;
#X obj 166 17 inlet~;
#X text 104 198 0--------------Hz-----------5012;
#X connect 2 0 1 0;
#X coords 0 -1 1 1 204 114 2 100 100;
#X restore 593 259 pd trisaw_spectrum~;
#X obj 136 506 wavestretcher~;
#X obj 173 407 * 0.01;
#X floatatom 173 388 5 -100 100 1 - - -, f 5;
#X floatatom 173 428 5 0 0 1 breakpoint - -, f 5;
#X obj 272 407 * 0.01;
#X floatatom 272 388 5 -100 100 1 PWM - -, f 5;
#X floatatom 272 428 5 0 0 1 squash_stretch - -, f 5;
#X obj 173 454 pack f 20;
#X obj 272 454 pack f 20;
#X obj 173 476 line~;
#X obj 272 476 line~;
#N canvas 0 22 450 300 miniscope~ 0;
#X obj 19 163 inlet~;
#N canvas 0 22 450 300 (subpatch) 0;
#X array wavestretch 1024 float 0;
#X coords 0 1 1023 -1 202 61 1;
#X restore 202 128 graph;
#X obj 39 210 bang~;
#X obj 202 79 switch~ 1024 1 1;
#X obj 202 59 inlet;
#X obj 19 247 tabwrite~ wavestretch;
#X connect 0 0 5 0;
#X connect 2 0 5 0;
#X connect 4 0 3 0;
#X coords 0 -1 1 1 206 81 2 200 110;
#X restore 137 554 pd miniscope~;
#X msg 343 489 1;
#X obj 348 464 loadbang;
#N canvas 733 427 450 300 trisaw_spectrum~ 0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array stretch_spectrum 128 float 1;
#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
#X coords 0 250 127 0 192 81 1;
#X restore 106 118 graph;
#N canvas 0 23 450 300 fft_analysis 0;
#X obj 92 36 inlet~;
#X obj 97 78 rfft~;
#X obj 189 120 bang~;
#X obj 231 97 block~ 1024 4 1;
#X obj 93 175 clip~ 0 250;
#X obj 93 211 tabwrite~ stretch_spectrum;
#X obj 91 109 *~;
#X obj 126 109 *~;
#X obj 91 130 sqrt~;
#X connect 0 0 1 0;
#X connect 1 0 6 0;
#X connect 1 0 6 1;
#X connect 1 1 7 0;
#X connect 1 1 7 1;
#X connect 2 0 5 0;
#X connect 4 0 5 0;
#X connect 6 0 8 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X restore 166 53 pd fft_analysis;
#X obj 166 17 inlet~;
#X text 104 198 0--------------Hz-----------5012;
#X connect 2 0 1 0;
#X coords 0 -1 1 1 204 114 2 100 100;
#X restore 359 528 pd trisaw_spectrum~;
#X text 407 378 wavestretcher~ derives a waveform from a triangle/sawtooth
wave input that morphs between different shapes.;
#X text 409 405 with the breakpoint at -1 \, the stretch factor morphs
between a square and a sawtooth wave \, and with the breakpoint at
e.g. 0.99 \, the stretch factor morphs between a sawtooth and alternate
pulse-train style waveforms.;
#X text 420 457 various flavours of pulse/saw/trapezoid waveforms may
be seamlessly morphed between.;
#X obj 55 550 *~;
#X obj 70 529 dbtorms;
#X obj 70 422 vsl 22 101 0 100 0 0 empty empty stretched 0 -9 0 10
-262144 -1 -1 0 1;
#X obj 49 585 dac~;
#X text 212 4 wavefolder~ and wavestretcher~ extend the spectral modulations
typically found in Pulse-Width Modulation \, providing a variety of
waveshape modulations not found in traditional subtractive synthesis
methods.;
#X obj 117 759 wavecutter~;
#X obj 153 659 * 0.01;
#X floatatom 153 640 5 0 100 1 - - -, f 5;
#X floatatom 153 680 5 0 0 1 breakpoint - -, f 5;
#X obj 252 659 * 0.01;
#X floatatom 252 640 5 -100 100 1 Negative - -, f 5;
#X floatatom 252 680 5 0 0 1 squash_stretch - -, f 5;
#X obj 153 706 pack f 20;
#X obj 252 706 pack f 20;
#X obj 153 728 line~;
#X obj 252 728 line~;
#N canvas 4 55 450 300 miniscope~ 0;
#X obj 19 163 inlet~;
#N canvas 0 22 450 300 (subpatch) 0;
#X array wavecut 1024 float 0;
#X coords 0 1 1023 -1 202 61 1;
#X restore 202 128 graph;
#X obj 39 210 bang~;
#X obj 202 79 switch~ 1024 1 1;
#X obj 202 59 inlet;
#X obj 19 247 tabwrite~ wavecut;
#X connect 0 0 5 0;
#X connect 2 0 5 0;
#X connect 4 0 3 0;
#X coords 0 -1 1 1 206 81 2 200 110;
#X restore 79 822 pd miniscope~;
#N canvas 734 429 450 300 trisaw_spectrum~ 0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array cut_spectrum 128 float 1;
#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
#X coords 0 250 127 0 192 81 1;
#X restore 106 118 graph;
#N canvas 4 55 450 300 fft_analysis 0;
#X obj 92 36 inlet~;
#X obj 92 73 rfft~;
#X obj 189 120 bang~;
#X obj 231 97 block~ 1024 4 1;
#X obj 93 175 clip~ 0 250;
#X obj 93 211 tabwrite~ cut_spectrum;
#X obj 91 109 *~;
#X obj 131 109 *~;
#X obj 91 130 sqrt~;
#X connect 0 0 1 0;
#X connect 1 0 6 0;
#X connect 1 0 6 1;
#X connect 1 1 7 0;
#X connect 1 1 7 1;
#X connect 2 0 5 0;
#X connect 4 0 5 0;
#X connect 6 0 8 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X restore 166 53 pd fft_analysis;
#X obj 166 17 inlet~;
#X text 104 198 0--------------Hz-----------5012;
#X connect 2 0 1 0;
#X coords 0 -1 1 1 204 114 2 100 100;
#X restore 301 796 pd trisaw_spectrum~;
#X msg 253 794 1;
#X obj 25 797 *~;
#X obj 40 776 dbtorms;
#X obj 40 669 vsl 22 101 0 100 0 0 empty empty cut 0 -9 0 10 -262144
-1 -1 0 1;
#X obj 19 832 dac~;
#N canvas 303 130 489 373 META 0;
#X text 12 195 HELP_PATCH_AUTHORS Ed Kelly. Revised by Jonathan Wilkes
for Pd-extended 0.42 to conform to the PDDP template.;
#X text 12 5 KEYWORDS signal needs_work (example patch);
#X text 12 45 DESCRIPTION highest apparent spectral component \, according
to amplitude threshold;
#X text 12 75 INLET_0 signal;
#X text 12 95 INLET_1 signal;
#X text 12 175 AUTHOR Ed Kelly <morph_2016@yahoo.co.uk>;
#X text 12 25 LICENSE GPL v3;
#X text 12 115 INLET_2 signal;
#X text 12 135 OUTLET_0 signal;
#X text 12 155 OUTLET_1 signal;
#X restore 808 891 pd META;
#X obj 611 65 switch~;
#X obj 610 20 inlet;
#X connect 0 0 11 0;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 4 0 10 0;
#X connect 4 0 9 0;
#X connect 4 0 32 0;
#X connect 5 0 6 0;
#X connect 5 0 6 1;
#X connect 7 0 11 0;
#X connect 8 0 7 0;
#X connect 9 0 8 0;
#X connect 10 0 3 0;
#X connect 11 0 5 0;
#X connect 11 0 23 0;
#X connect 11 0 36 0;
#X connect 11 0 37 0;
#X connect 11 0 60 0;
#X connect 11 1 12 0;
#X connect 11 1 23 1;
#X connect 12 0 6 0;
#X connect 12 0 6 1;
#X connect 13 0 5 1;
#X connect 14 0 13 0;
#X connect 15 0 12 1;
#X connect 16 0 15 0;
#X connect 17 0 19 0;
#X connect 18 0 17 0;
#X connect 19 0 27 0;
#X connect 20 0 22 0;
#X connect 21 0 20 0;
#X connect 22 0 28 0;
#X connect 24 0 23 2;
#X connect 25 0 24 0;
#X connect 27 0 29 0;
#X connect 28 0 30 0;
#X connect 29 0 11 1;
#X connect 30 0 11 2;
#X connect 32 0 14 0;
#X connect 37 0 48 0;
#X connect 37 0 51 0;
#X connect 37 0 55 0;
#X connect 38 0 40 0;
#X connect 39 0 38 0;
#X connect 40 0 44 0;
#X connect 41 0 43 0;
#X connect 42 0 41 0;
#X connect 43 0 45 0;
#X connect 44 0 46 0;
#X connect 45 0 47 0;
#X connect 46 0 37 1;
#X connect 47 0 37 2;
#X connect 49 0 48 1;
#X connect 50 0 49 0;
#X connect 55 0 58 0;
#X connect 55 0 58 1;
#X connect 56 0 55 1;
#X connect 57 0 56 0;
#X connect 60 0 71 0;
#X connect 60 0 72 0;
#X connect 60 0 74 0;
#X connect 61 0 63 0;
#X connect 62 0 61 0;
#X connect 63 0 67 0;
#X connect 64 0 66 0;
#X connect 65 0 64 0;
#X connect 66 0 68 0;
#X connect 67 0 69 0;
#X connect 68 0 70 0;
#X connect 69 0 60 1;
#X connect 70 0 60 2;
#X connect 73 0 71 1;
#X connect 74 0 77 0;
#X connect 74 0 77 1;
#X connect 75 0 74 1;
#X connect 76 0 75 0;
#X connect 80 0 79 0;