-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEnhancedSpectrogram.pd
More file actions
361 lines (361 loc) · 11.8 KB
/
EnhancedSpectrogram.pd
File metadata and controls
361 lines (361 loc) · 11.8 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
#N canvas 1098 94 341 348 10;
#X declare -lib Gem;
#N canvas 0 0 450 250 (subpatch) 0;
#X array \$0-magLog 1737 float 2;
#X coords 0 1 1737 0 212 103 1;
#X restore 143 53 graph;
#X obj 414 254 dac~;
#X obj 521 89 adc~;
#X obj 414 221 *~;
#X obj 532 190 knob 50 0 1 2 0.1 empty empty #E4E4E4 #B7B7B7 #4D4D4D 1 0 0 0 1 270 0 0 0 empty empty 0 12 6 -15 0 1 0 0;
#N canvas 0 50 450 300 spectrum 0;
#N canvas 808 169 772 804 show 0;
#X obj 476 151 sel 1 0;
#X obj 144 383 rotateXYZ 0 0 -90;
#X obj 476 119 inlet;
#X msg 494 237 0 \, destroy;
#X obj 475 262 gemwin 50;
#X obj 144 522 square 4;
#X floatatom 268 119 5 0 0 0 - - - 12;
#N canvas 0 50 450 300 heatmap 0;
#X obj 221 318 inlet~;
#X obj 221 344 *~ 0.8;
#X obj 423 483 expr~ if($v1<1\\\, $v1*0.8\\\, max(0\\\, ($v1-1.5)*2));
#X obj 153 432 outlet~;
#X obj 221 513 outlet~;
#X obj 423 513 outlet~;
#X floatatom 275 318 5 0 0 0 - - - 12;
#X obj 153 402 expr~ if($v1<0.5 \, 0 \, if($v1<1.0 \, ($v1-0.5)*2 \, 1));
#X obj 221 483 expr~ max(0\\\, ($v1-1.2)*2.5);
#X obj 221 370 expr~ pow($v1 \, 0.25) * 2.2;
#X connect 0 0 1 0;
#X connect 1 0 9 0;
#X connect 2 0 5 0;
#X connect 6 0 1 1;
#X connect 7 0 3 0;
#X connect 8 0 4 0;
#X connect 9 0 2 0;
#X connect 9 0 8 0;
#X connect 9 0 7 0;
#X restore 169 287 pd heatmap;
#X obj 144 456 scaleXYZ -1 1 1;
#X obj 144 141 translateXYZ -0.8 0 -4;
#X obj 204 419 r \$0-scaleX;
#X obj 283 419 r \$0-scaleY;
#X obj 366 419 r \$0-scaleZ;
#X obj 204 353 r \$0-rotetaX;
#X obj 290 353 r \$0-rotetaY;
#X obj 382 353 r \$0-rotetaZ;
#X obj 144 100 gemframebuffer \; dimen 4096 4096;
#X obj 195 218 tabreceive~ \$0-magLog;
#X obj 169 262 selector~ 2;
#X obj 170 171 r \$0-enhance;
#X obj 170 197 + 1;
#X msg 475 182 title Gem \, FSAA 3 \, dimen 750 910 \, create \, 1, f 38;
#X obj 54 75 gemhead 20;
#X obj 144 75 gemhead 15;
#X obj 54 141 pix_texture \; quality 0;
#X obj 144 484 pix_texture \; quality 0;
#X obj 538 117 block~ 4096 4 1;
#X obj 230 239 tabreceive~ \$0-magLogReassignment;
#X floatatom 311 119 5 0 0 0 - - - 12;
#X obj 54 183 rectangle 4 4;
#X obj 144 318 pix_sig2pix~ 2048 360 \; mode waterfall;
#X connect 0 0 21 0;
#X connect 0 1 3 0;
#X connect 1 0 8 0;
#X connect 2 0 0 0;
#X connect 3 0 4 0;
#X connect 6 0 9 1;
#X connect 7 0 30 0;
#X connect 7 1 30 1;
#X connect 7 2 30 2;
#X connect 8 0 25 0;
#X connect 9 0 30 0;
#X connect 10 0 8 1;
#X connect 11 0 8 2;
#X connect 12 0 8 3;
#X connect 13 0 1 1;
#X connect 14 0 1 2;
#X connect 15 0 1 3;
#X connect 16 0 9 0;
#X connect 16 1 24 1;
#X connect 17 0 18 1;
#X connect 18 0 7 0;
#X connect 19 0 20 0;
#X connect 20 0 18 0;
#X connect 21 0 4 0;
#X connect 22 0 24 0;
#X connect 23 0 16 0;
#X connect 24 0 29 0;
#X connect 25 0 5 0;
#X connect 27 0 18 2;
#X connect 28 0 9 2;
#X connect 30 0 1 0;
#X restore 421 480 pd show;
#X obj 402 381 inlet~;
#X obj 402 517 outlet~;
#X obj 449 381 declare -lib Gem;
#N canvas 0 50 450 300 fft 0;
#N canvas 0 0 450 250 (subpatch) 0;
#X array hann_\$0 4096 float 2;
#X coords 0 1 4096 0 244 103 1;
#X restore 1037 -275 graph;
#X obj 798 75 loadbang, f 11;
#X obj 1370 149 bng 25 250 50 0 empty empty empty 17 7 0 10 #e4e4e4 #4d4d4d #373737;
#X obj 964 184 v twopi;
#X msg 964 121 1;
#X obj 964 143 atan;
#X obj 964 165 * 8;
#X floatatom 964 210 4 0 0 0 - - - 12;
#N canvas 0 0 450 250 (subpatch) 0;
#X array dhann_\$0 4096 float 2;
#X coords 0 0.005 4096 -0.005 244 103 1;
#X restore 1037 -155 graph;
#N canvas 0 0 450 250 (subpatch) 0;
#X array thann_\$0 2048 float 2;
#X coords 0 1024 2048 -1024 244 103 1;
#X restore 1037 -35 graph;
#X obj 169 216 tabreceive~ hann_\$0;
#X obj 143 244 *~, f 5;
#X obj 143 279 rfft~;
#X obj -33 168 inlet~ sigIn;
#X obj -33 244 *~, f 5;
#X obj -33 279 rfft~;
#X obj -7 216 tabreceive~ dhann_\$0;
#X obj 1285 254 expr thann_\$0[$f1] = ($f1 - 1024) * hann_\$0[$f1];
#X obj 195 321 mag~;
#X obj 1053 336 bang~;
#N canvas 0 0 450 250 (subpatch) 0;
#X array \$0-mag 2048 float 2;
#X coords 0 1 2048 0 223 103 1;
#X restore 798 -275 graph;
#X obj 880 194 sr~;
#X obj 798 121 bng 25 250 50 0 empty empty empty 17 7 0 10 #e4e4e4 #4d4d4d #373737;
#X obj -237 312 *~;
#X obj -20 362 *~;
#X obj 34 362 *~;
#X obj -20 389 -~;
#X obj -20 430 /~;
#X obj -237 513 -~;
#X obj -114 469 *~;
#X obj 143 362 *~;
#X obj 1053 182 hradio 20 1 0 5 empty empty empty 0 -8 0 10 #191919 #e1e1e1 #e1e1e1 0;
#X obj 1053 213 + 8;
#X floatatom 1130 273 5 0 0 0 - - - 12;
#X obj 1053 239 expr pow(2 \, $f1);
#X msg 1053 273 set \$1 4 1;
#X obj 1171 273 s \$0-Nfft;
#X obj 1053 450 r \$0-Nfft;
#X obj 1053 474 / 2;
#X obj 1053 558 loop;
#N canvas 0 0 450 250 (subpatch) 0;
#X array \$0-expIdx 2048 float 2;
#X coords 0 2048 2048 0 200 140 1;
#X restore 1053 796 graph;
#X obj 1053 667 tabwrite \$0-expIdx;
#X obj 1053 500 t f f f;
#X obj 1517 583 array size \$0-expIdx;
#X obj 1261 607 expr $f2 * log(2 * $f1) / log(2 * $f2) \; $f1;
#N canvas 0 0 450 250 (subpatch) 0;
#X array \$0-logIdx 2048 float 2;
#X coords 0 2048 2048 0 200 140 1;
#X restore 1272 796 graph;
#X obj 1261 667 tabwrite \$0-logIdx;
#X obj 1053 121 loadmess 4;
#X obj 1053 146 pipe 20;
#X obj 1053 607 expr 0.5 * pow($f2*2 \, $f1/$f2) \; $f1;
#X obj 1261 651 max 1;
#X obj 1053 651 max 1;
#X obj 880 222 / 4096;
#X obj -171 279 count~ 0 4096;
#X obj 1370 183 loop 4096;
#X obj 1488 229 expr hann_\$0[$f1] = cos(twopi*$f1/4096) * (-0.5) + 0.5;
#X obj 1384 287 expr dhann_\$0[$f1] = sin(twopi*$f1/4096) * (3.1415926/4096);
#X obj 1053 360 s \$0-hopBang;
#X obj -171 249 r \$0-hopBang;
#X obj 244 321 r \$0-hopBang;
#X obj 880 276 s \$0-df;
#X obj 786 225 /;
#X obj 798 194 v twopi;
#X floatatom 786 249 8 0 0 0 - - - 12;
#X floatatom 880 249 7 0 0 0 - - - 12;
#X obj 786 276 s \$0-rad2Hz;
#X obj 798 159 t b b;
#X obj -114 430 r \$0-rad2Hz;
#X obj -237 249 r \$0-df;
#X msg 244 412 set 0;
#X obj 1053 306 block~ 1024 4 1;
#X obj 213 441 fexpr~ if($x > $y \, $x \, $y);
#X obj 213 465 snapshot~;
#X floatatom 244 492 5 0 0 0 - - - 12;
#X obj 195 586 >~;
#X obj -237 618 *~;
#X obj 288 465 r \$0-hopBang;
#X obj -139 676 r \$0-hopBang;
#X obj 195 636 /~ 1024;
#X text 195 715 Altinus \, 2026;
#X obj 310 362 /~ 1024;
#X obj 244 550 * 0.01;
#X obj 288 492 r \$0-minThresh;
#X obj 435 492 tabreceive~ \$0-expIdx;
#X obj 435 525 tabread4~ \$0-mag;
#X obj 310 412 tabwrite~ \$0-mag;
#X obj 435 578 tabwrite~ \$0-magLog;
#X obj 539 550 r \$0-hopBang;
#X obj 1370 207 t f f f;
#X obj 435 550 bin.shift~ -310;
#X obj -237 716 tabwrite~ \$0-magLogReassignment;
#X obj 1689 555 loadbang;
#X obj 1689 581 \$0;
#X msg 1689 607 \; \$1-magLog width 1000 \; \$1-magLog color 256 \;;
#X obj -237 676 reassign;
#X connect 1 0 4 0;
#X connect 1 0 22 0;
#X connect 1 0 47 0;
#X connect 1 0 54 0;
#X connect 2 0 54 0;
#X connect 3 0 7 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 3 0;
#X connect 10 0 11 1;
#X connect 11 0 12 0;
#X connect 12 0 24 1 32.................f....j1+++OH....o8+++CD....;
#X connect 12 0 18 0 32.................L....PC....C....z....bA....;
#X connect 12 1 25 1 32.................f....H4+++OH....R9+++CD....;
#X connect 12 1 18 1 32.................L....rC....C....6....bA....;
#X connect 13 0 11 0 32.................S.....K...vD....vB...jC....;
#X connect 13 0 14 0 32.................c.........PG.........jC....;
#X connect 14 0 15 0;
#X connect 15 0 25 0 32.................f....LD....H....CA....D....;
#X connect 15 1 24 0 32.................f..........H..........D....;
#X connect 16 0 14 1;
#X connect 18 0 30 1 32.................K....f8++++B....X++++aA....;
#X connect 18 0 30 0 32.................K....z7++++B....M++++aA....;
#X connect 18 0 71 0;
#X connect 18 0 80 0 32.................K....LG...vB....yA...XA....;
#X connect 18 0 78 0;
#X connect 18 0 74 0;
#X connect 19 0 57 0;
#X connect 21 0 52 0;
#X connect 21 0 61 0;
#X connect 22 0 66 0;
#X connect 23 0 28 0;
#X connect 24 0 26 0;
#X connect 25 0 26 1;
#X connect 26 0 27 0;
#X connect 27 0 29 1;
#X connect 28 0 75 0;
#X connect 29 0 28 1;
#X connect 30 0 27 1 32.................k....j1+++eI....o8+++GC....;
#X connect 31 0 32 0;
#X connect 32 0 34 0;
#X connect 34 0 35 0;
#X connect 34 0 33 0;
#X connect 34 0 36 0;
#X connect 35 0 70 0;
#X connect 37 0 38 0;
#X connect 38 0 42 0;
#X connect 39 0 44 0 32.................O.....M...vC....PC...3A....;
#X connect 39 0 49 0;
#X connect 42 0 39 0;
#X connect 42 1 44 1 48......................DD.........AA...XA....hA...V....fX...PP....;
#X connect 42 1 49 1 48......................nA.........Z....XA...vl....V....rI...PP....;
#X connect 42 2 43 0 32.................N....La...fC....yF...jB....;
#X connect 44 0 50 0;
#X connect 44 1 46 1 32.................M....n4+++eC....Z9+++qA....;
#X connect 47 0 48 0;
#X connect 48 0 31 0;
#X connect 49 0 51 0;
#X connect 49 1 41 1 32.................I....n6+++eB....59+++qA....;
#X connect 50 0 46 0;
#X connect 51 0 41 0;
#X connect 52 0 64 0;
#X connect 53 0 23 1;
#X connect 54 0 88 0;
#X connect 58 0 53 0;
#X connect 59 0 69 0;
#X connect 59 0 85 0;
#X connect 61 0 63 0;
#X connect 62 0 61 1;
#X connect 63 0 65 0;
#X connect 64 0 60 0;
#X connect 66 0 62 0;
#X connect 66 1 21 0;
#X connect 67 0 29 0;
#X connect 68 0 23 0;
#X connect 69 0 71 0;
#X connect 71 0 72 0;
#X connect 72 0 73 0;
#X connect 73 0 81 0;
#X connect 74 0 75 1;
#X connect 75 0 94 0;
#X connect 76 0 72 0;
#X connect 77 0 90 0;
#X connect 78 0 94 1;
#X connect 80 0 85 0;
#X connect 81 0 74 1;
#X connect 82 0 81 1;
#X connect 83 0 84 0;
#X connect 84 0 89 0;
#X connect 87 0 86 0;
#X connect 88 0 17 0;
#X connect 88 1 56 0;
#X connect 88 2 55 0;
#X connect 89 0 86 0;
#X connect 91 0 92 0;
#X connect 92 0 93 0;
#X connect 94 0 90 0;
#X restore 449 418 pd fft;
#X obj 449 447 inlet on/off;
#X connect 1 0 2 0;
#X connect 1 0 4 0;
#X connect 1 1 0 0;
#X connect 5 0 0 0;
#X restore 414 192 pd spectrum;
#X obj 353 305 knob 50 0.0001 0.1 6 0.0001 empty empty #E4E4E4 #B7B7B7 #4D4D4D 1 0 0 0 1 270 0 0 0.0001 empty empty 0 12 6 -15 0 1 0 0;
#X obj 353 362 s \$0-minThresh;
#X obj 143 305 tgl 50 0 empty empty empty 17 7 0 10 #e4e4e4 #4d4d4d #373737 0 1;
#X obj 143 359 s \$0-on/off;
#X obj 475 159 r \$0-on/off;
#X obj 84 392 knob 50 0 180 0 180 \$0-rotetaX empty #E4E4E4 #B7B7B7 #4D4D4D 0 0 0 0 1 270 0 0 0 empty empty 0 12 6 -15 0 1 0 0;
#X obj 143 392 knob 50 0 180 0 0 \$0-rotetaY empty #E4E4E4 #B7B7B7 #4D4D4D 0 0 0 0 1 270 0 0 0 empty empty 0 12 6 -15 0 1 0 0;
#X obj 205 392 knob 50 0 360 0 270 \$0-rotetaZ empty #E4E4E4 #B7B7B7 #4D4D4D 0 0 0 0 1 270 0 0 0 empty empty 0 12 6 -15 0 1 0 0;
#X text 143 463 rotation;
#X text 101 444 X;
#X text 161 443 Y;
#X text 222 443 Z;
#X obj 276 392 knob 50 0 2 0 1 \$0-scaleX empty #E4E4E4 #B7B7B7 #4D4D4D 0 0 0 0 1 270 0 0 0 empty empty 0 12 6 -15 0 1 0 0;
#X obj 335 392 knob 50 0 2 0 1 \$0-scaleY empty #E4E4E4 #B7B7B7 #4D4D4D 0 0 0 0 1 270 0 0 0 empty empty 0 12 6 -15 0 1 0 0;
#X obj 397 392 knob 50 0 2 0 1 \$0-scaleZ empty #E4E4E4 #B7B7B7 #4D4D4D 0 0 0 0 1 270 0 0 0 empty empty 0 12 6 -15 0 1 0 0;
#X text 293 443 X;
#X text 353 443 Y;
#X text 414 443 Z;
#X text 342 463 scale;
#X obj 243 305 tgl 50 1 empty empty empty 17 7 0 10 #e4e4e4 #4d4d4d #373737 1 1;
#X obj 243 362 s \$0-enhance;
#N canvas 0 0 450 250 (subpatch) 0;
#X array \$0-magLogReassignment 2048 float 2;
#X coords 0 1 2048 0 212 103 1;
#X restore 143 176 graph;
#X floatatom 459 61 5 0 0 0 - - - 12;
#X obj 440 89 bl.saw~ 60;
#X obj 414 121 selector~ 2;
#X obj 404 54 tgl 25 1 empty empty empty 17 7 0 10 #e4e4e4 #4d4d4d #373737 0 1;
#X obj 404 89 + 1;
#X text 72 320 open--->;
#X connect 2 0 30 2;
#X connect 3 0 1 0;
#X connect 3 0 1 1;
#X connect 4 0 3 1;
#X connect 5 0 3 0;
#X connect 6 0 7 0;
#X connect 8 0 9 0;
#X connect 10 0 5 1;
#X connect 25 0 26 0;
#X connect 28 0 29 0;
#X connect 29 0 30 1;
#X connect 30 0 5 0;
#X connect 31 0 32 0;
#X connect 32 0 30 0;