blob: 2310c7f5506176604f1d292a78792b7f6eaed666 (
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
|
#N canvas 737 25 578 583 10;
#N canvas 116 214 598 221 guts 0;
#X obj 318 37 loadbang;
#X obj 318 64 f \$0;
#N canvas 0 0 450 300 dacs 0;
#X obj 164 152 a_output~;
#X msg 251 100 0;
#X obj 249 59 r \$0-master-lvl-stereo;
#X obj 251 81 r \$0-master-lvl-mute;
#X obj 251 120 s \$0-master-lvl-stereo;
#X obj 174 110 inlet~;
#X connect 1 0 0 2;
#X connect 1 0 4 0;
#X connect 2 0 0 2;
#X connect 3 0 1 0;
#X connect 5 0 0 0;
#X connect 5 0 0 1;
#X restore 85 126 pd dacs;
#X obj 16 24 r \$0-fund;
#X msg 318 88 \; pd dsp 1 \; \$1-master-lvl-stereo 60 \; \$1-window-gen
bang \; \$1-mfcc xticks 0 5 5 \; \$1-mfcc yticks 0 50 1 \; \$1-mfcc
xlabel -120 0 5 10 15 20;
#N canvas 308 141 679 510 paf 0;
#X obj 331 95 / 10;
#X obj 331 120 pack 0 50;
#X obj 139 412 fexpr~ $x1 * $x2;
#X obj 241 188 cos~;
#X obj 241 166 expr~ ($v1 * 0.5) - 0.25;
#X obj 380 197 *~ 256;
#X obj 462 209 line~;
#X obj 462 189 pack 0 50;
#X obj 289 194 *~;
#X obj 282 216 +~ 256;
#X obj 118 328 cos~;
#X obj 118 305 *~;
#X obj 161 328 cos~;
#X obj 161 305 +~;
#X obj 154 358 -~;
#X obj 174 390 *~;
#X obj 136 390 +~;
#X obj 230 291 wrap~;
#X obj 199 291 -~;
#X obj 199 259 samphold~;
#X obj 331 142 line~;
#X obj 138 438 outlet~;
#X obj 462 167 inlet bandwidth;
#X obj 47 121 phasor~;
#X obj 48 100 line~;
#X msg 47 78 \$1 20;
#X obj 48 57 inlet fund;
#X obj 331 73 inlet cf;
#X obj 282 316 tabread4~ \$0-hann;
#X obj 466 426 table \$0-hann;
#N canvas 0 0 450 300 hann 0;
#X obj 136 98 samplerate~;
#X obj 139 166 phasor~;
#X msg 225 96 0;
#X obj 139 195 expr~ 0.5 - cos($v1 * 6.28) * 0.5;
#X obj 114 51 t b b b b;
#X obj 114 23 inlet;
#X obj 261 117 s \$0-hann;
#X obj 139 220 tabwrite~ \$0-hann;
#X msg 259 93 resize 512;
#X obj 136 120 /~ 512;
#X connect 0 0 9 0;
#X connect 1 0 3 0;
#X connect 2 0 1 1;
#X connect 3 0 7 0;
#X connect 4 0 7 0;
#X connect 4 1 2 0;
#X connect 4 2 0 0;
#X connect 4 3 8 0;
#X connect 5 0 4 0;
#X connect 8 0 6 0;
#X connect 9 0 1 0;
#X restore 466 390 pd hann;
#X obj 466 362 r \$0-window-gen;
#X connect 0 0 1 0;
#X connect 1 0 20 0;
#X connect 2 0 21 0;
#X connect 3 0 8 0;
#X connect 4 0 3 0;
#X connect 5 0 8 1;
#X connect 6 0 5 0;
#X connect 7 0 6 0;
#X connect 8 0 9 0;
#X connect 9 0 28 0;
#X connect 10 0 14 1;
#X connect 10 0 16 0;
#X connect 11 0 13 0;
#X connect 11 0 10 0;
#X connect 12 0 14 0;
#X connect 13 0 12 0;
#X connect 14 0 15 0;
#X connect 15 0 16 1;
#X connect 16 0 2 0;
#X connect 17 0 18 1;
#X connect 17 0 15 1;
#X connect 18 0 11 1;
#X connect 19 0 18 0;
#X connect 19 0 17 0;
#X connect 20 0 19 0;
#X connect 22 0 7 0;
#X connect 23 0 19 1;
#X connect 23 0 13 1;
#X connect 23 0 11 0;
#X connect 23 0 4 0;
#X connect 24 0 23 0;
#X connect 25 0 24 0;
#X connect 26 0 25 0;
#X connect 27 0 0 0;
#X connect 28 0 2 1;
#X connect 31 0 30 0;
#X restore 35 80 pd paf;
#X obj 85 25 r \$0-cf;
#X obj 140 23 r \$0-bw;
#X obj 145 127 r \$0-window-gen;
#X obj 145 148 a_hann 1024;
#N canvas 34 54 723 391 spectrum 0;
#X obj 194 153 *~;
#X obj 181 69 inlet~;
#X obj 252 68 inlet~;
#X obj 195 176 xtract~ spectrum;
#N canvas 0 0 450 300 mag_spectrum 0;
#X obj 260 64 block~ 512;
#N canvas 0 0 450 300 (subpatch) 0;
#X array mag_spectrum 512 float 3;
#A 0 0.0347679 0.0238386 0.0342933 0.0362505 0.0295941 0.0500627 0.0356107
0.0419818 0.0507073 0.0290984 0.0416723 0.0321575 0.0192698 0.0252058
0.0116167 0.00836482 0.00784646 0.00138145 0.00132721 0.000381971 0.000573959
0.000406984 0.000280216 0.000179901 0.000186049 0.000268997 0.000263714
0.000155282 0.000139129 0.000167519 0.000124361 0.000180699 0.000142076
0.000144225 0.000119736 0.000148186 0.000111046 0.000121504 0.000107089
0.000121003 9.47739e-05 0.000125579 0.000100434 0.000104701 9.41711e-05
0.000104671 8.29275e-05 9.69602e-05 8.842e-05 9.28634e-05 8.08756e-05
9.55736e-05 7.85888e-05 8.25423e-05 7.83809e-05 8.18489e-05 7.07095e-05
8.02309e-05 7.42804e-05 7.48963e-05 6.96933e-05 7.65881e-05 6.52446e-05
6.90523e-05 6.72559e-05 6.77385e-05 6.22041e-05 6.80202e-05 6.33565e-05
6.27514e-05 6.09007e-05 6.3778e-05 5.64576e-05 5.99506e-05 5.87628e-05
5.80413e-05 5.54242e-05 5.86565e-05 5.49603e-05 5.42429e-05 5.4014e-05
5.47262e-05 5.03136e-05 5.31452e-05 5.20179e-05 5.08749e-05 4.98008e-05
5.13611e-05 4.85163e-05 4.80735e-05 4.85478e-05 4.80833e-05 4.56452e-05
4.77271e-05 4.64662e-05 4.53934e-05 4.50956e-05 4.56013e-05 4.35624e-05
4.34772e-05 4.40007e-05 4.30346e-05 4.18994e-05 4.31475e-05 4.18919e-05
4.11025e-05 4.11284e-05 4.10175e-05 3.97421e-05 3.98145e-05 4.01797e-05
3.90583e-05 3.87068e-05 3.92256e-05 3.81535e-05 3.76564e-05 3.77768e-05
3.73499e-05 3.66974e-05 3.67557e-05 3.68833e-05 3.58508e-05 3.59041e-05
3.58715e-05 3.51094e-05 3.48463e-05 3.49077e-05 3.43984e-05 3.41789e-05
3.40861e-05 3.40455e-05 3.32054e-05 3.34367e-05 3.30168e-05 3.26526e-05
3.24827e-05 3.24396e-05 3.19881e-05 3.19942e-05 3.17211e-05 3.16122e-05
3.10021e-05 3.12408e-05 3.06344e-05 3.06429e-05 3.04321e-05 3.03029e-05
2.99668e-05 3.00742e-05 2.95874e-05 2.95749e-05 2.91166e-05 2.92872e-05
2.87315e-05 2.88123e-05 2.86934e-05 2.84017e-05 2.82494e-05 2.83481e-05
2.76694e-05 2.7905e-05 2.74856e-05 2.7595e-05 2.70659e-05 2.73785e-05
2.70175e-05 2.68042e-05 2.67559e-05 2.67275e-05 2.61115e-05 2.64444e-05
2.60253e-05 2.6143e-05 2.56633e-05 2.59967e-05 2.55765e-05 2.54011e-05
2.54205e-05 2.52767e-05 2.48309e-05 2.51035e-05 2.48111e-05 2.47337e-05
2.44776e-05 2.47857e-05 2.41466e-05 2.42557e-05 2.41419e-05 2.40363e-05
2.36974e-05 2.39439e-05 2.36521e-05 2.35678e-05 2.34062e-05 2.3597e-05
2.29854e-05 2.32039e-05 2.30333e-05 2.29341e-05 2.27001e-05 2.29057e-05
2.25917e-05 2.25413e-05 2.24169e-05 2.25144e-05 2.1993e-05 2.22539e-05
2.20491e-05 2.19648e-05 2.18146e-05 2.19472e-05 2.16342e-05 2.16211e-05
2.15227e-05 2.15229e-05 2.11552e-05 2.13981e-05 2.1145e-05 2.11307e-05
2.10028e-05 2.10558e-05 2.07771e-05 2.08104e-05 2.06922e-05 2.06572e-05
2.0421e-05 2.06044e-05 2.03378e-05 2.03852e-05 2.0236e-05 2.02428e-05
2.00298e-05 2.00682e-05 1.99341e-05 1.99055e-05 1.9766e-05 1.98595e-05
1.96149e-05 1.9708e-05 1.95175e-05 1.951e-05 1.93652e-05 1.93882e-05
1.9253e-05 1.92475e-05 1.91492e-05 1.91725e-05 1.89653e-05 1.90797e-05
1.88526e-05 1.88553e-05 1.87737e-05 1.87674e-05 1.86322e-05 1.86603e-05
1.85738e-05 1.8523e-05 1.84042e-05 1.84821e-05 1.82465e-05 1.82856e-05
1.82333e-05 1.81908e-05 1.80772e-05 1.81247e-05 1.80205e-05 1.79422e-05
1.78919e-05 1.79356e-05 1.76952e-05 1.77907e-05 1.77256e-05 1.76545e-05
1.75951e-05 1.76011e-05 1.75059e-05 1.74307e-05 1.74315e-05 1.73783e-05
1.72885e-05 1.72999e-05 1.72644e-05 1.71807e-05 1.71397e-05 1.71261e-05
1.70455e-05 1.6948e-05 1.70073e-05 1.6948e-05 1.6794e-05 1.69151e-05
1.68262e-05 1.6732e-05 1.67057e-05 1.67527e-05 1.65599e-05 1.65856e-05
1.65865e-05 1.65142e-05 1.64285e-05 1.65163e-05 1.63755e-05 1.63693e-05
1.63267e-05 1.62936e-05 1.62273e-05 1.6209e-05 1.62148e-05 1.61265e-05
1.61024e-05 1.61131e-05 1.60167e-05 1.60016e-05 1.59628e-05 1.59332e-05
1.58903e-05 1.58553e-05 1.58772e-05 1.57569e-05 1.57924e-05 1.57572e-05
1.56537e-05 1.56966e-05 1.56074e-05 1.56212e-05 1.55779e-05 1.5539e-05
1.55494e-05 1.5449e-05 1.5495e-05 1.54081e-05 1.53711e-05 1.53932e-05
1.52964e-05 1.53376e-05 1.52897e-05 1.52396e-05 1.52538e-05 1.51629e-05
1.52182e-05 1.50957e-05 1.51177e-05 1.51097e-05 1.50368e-05 1.50477e-05
1.50399e-05 1.49629e-05 1.49619e-05 1.4934e-05 1.49109e-05 1.48107e-05
1.49298e-05 1.48269e-05 1.47474e-05 1.48734e-05 1.47248e-05 1.47904e-05
1.46943e-05 1.47132e-05 1.46267e-05 1.47303e-05 1.44649e-05 1.46803e-05
1.45807e-05 1.45165e-05 1.45321e-05 1.45863e-05 1.44389e-05 1.44883e-05
1.45138e-05 1.43366e-05 1.45488e-05 1.42999e-05 1.43532e-05 1.43481e-05
1.44012e-05 1.40856e-05 1.4473e-05 1.42298e-05 1.42492e-05 1.42315e-05
1.43224e-05 1.40978e-05 1.42317e-05 1.41411e-05 1.41222e-05 1.41452e-05
1.40687e-05 1.4097e-05 1.40772e-05 1.40533e-05 1.4062e-05 1.39999e-05
1.40167e-05 1.39786e-05 1.39683e-05 1.39479e-05 1.39503e-05 1.39196e-05
1.39185e-05 1.3891e-05 1.38968e-05 1.38385e-05 1.38591e-05 1.38226e-05
1.3823e-05 1.37987e-05 1.38058e-05 1.37687e-05 1.37731e-05 1.37467e-05
1.3741e-05 1.37012e-05 1.37238e-05 1.36772e-05 1.36989e-05 1.36648e-05
1.36677e-05 1.36383e-05 1.36465e-05 1.36082e-05 1.36107e-05 1.35828e-05
1.36001e-05 1.35517e-05 1.35862e-05 1.35436e-05 1.3545e-05 1.35258e-05
1.35259e-05 1.34894e-05 1.35036e-05 1.34777e-05 1.34856e-05 1.34502e-05
1.34863e-05 1.34282e-05 1.34469e-05 1.34125e-05 1.34237e-05 1.34026e-05
1.33887e-05 1.34055e-05 1.33624e-05 1.33684e-05 1.34108e-05 1.32959e-05
1.33875e-05 1.32811e-05 1.33619e-05 1.33219e-05 1.3276e-05 1.33497e-05
1.32483e-05 1.33257e-05 1.3305e-05 1.32275e-05 1.33069e-05 1.32249e-05
1.32866e-05 1.32339e-05 1.32487e-05 1.3251e-05 1.32172e-05 1.32353e-05
1.323e-05 1.31875e-05 1.32223e-05 1.319e-05 1.32038e-05 1.31846e-05
1.31983e-05 1.31761e-05 1.31802e-05 1.31635e-05 1.31737e-05 1.31439e-05
1.31682e-05 1.31427e-05 1.31617e-05 1.31332e-05 1.31547e-05 1.3133e-05
1.31335e-05 1.31252e-05 1.31203e-05 1.31178e-05 1.313e-05 1.31048e-05
1.31309e-05 1.30961e-05 1.31287e-05 1.30943e-05 1.31076e-05 1.3093e-05
1.30996e-05 1.30943e-05 1.3103e-05 1.30871e-05 1.31077e-05 1.30727e-05
1.31072e-05 1.30737e-05 1.3094e-05 1.30748e-05 1.30877e-05 1.30874e-05
1.30868e-05 1.30789e-05 1.30949e-05 1.30709e-05 1.30856e-05;
#X coords 0 1 511 0 200 140 1;
#X restore 125 121 graph;
#X restore 358 92 pd mag_spectrum;
#X obj 195 211 tabsend~ mag_spectrum;
#X obj 357 64 block~ 1024;
#X obj 197 301 xtract~ mfcc;
#X obj 196 274 tabreceive~ mag_spectrum;
#X obj 197 333 tabsend~ \$0-mfcc;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 2 0 0 1;
#X connect 3 0 5 0;
#X connect 7 0 9 0;
#X connect 8 0 7 0;
#X restore 32 167 pd spectrum;
#X connect 0 0 1 0;
#X connect 1 0 4 0;
#X connect 3 0 5 0;
#X connect 5 0 2 0;
#X connect 5 0 10 0;
#X connect 6 0 5 1;
#X connect 7 0 5 2;
#X connect 8 0 9 0;
#X connect 9 0 10 1;
#X restore 516 -222 pd guts;
#X obj 6 -225 cnv 15 500 200 empty empty MFCC 20 12 0 14 -261681 -66577
0;
#X obj 184 -202 cnv 15 250 150 empty empty empty 20 12 0 14 -262131
-66577 0;
#X obj 465 -187 vsl 10 100 0 127 0 0 \$0-master-lvl-stereo \$0-master-lvl-stereo
out -4 -8 0 8 -262131 -1 -1 0 1;
#X obj 465 -77 bng 10 250 50 0 \$0-master-lvl-mute empty mute -6 16
0 8 -262131 -1 -1;
#X obj 32 -114 hsl 128 15 20 150 0 0 \$0-cf empty centre_frequency
-2 -6 0 8 -225271 -1 -1 700 1;
#X obj 33 -153 hsl 128 15 80 2000 0 0 \$0-fund empty fundamental -2
-6 0 8 -225271 -1 -1 200 1;
#X text 19 7 Notes:;
#X text 20 87 [xtract~ mfcc] outputs a series 20 Mel-Frequency Cepstral
Coefficients. When it is instantiated \, an initialisation function
creates a bank of 20 mel-spaced filters \, between 80Hz and 1800Hz
on a linear scale. All filters have the same gain;
#X text 23 255 With LibXtract it is possible to change the number of
Mel filters as well as the range of frequencies over which they operate
\, and the filter scaling (equal area/equal gain). With this PD example
\, sensible defaults have been chosen to improve usability;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-mfcc 20 float 1;
#A 0 -226.816 39.0179 27.0649 13.3895 3.18296 -4.35309 -6.98078 -6.73432
-4.09373 -1.24401 0.693745 0.961352 0.393719 -0.854615 -1.49734 -1.75847
-1.32051 -0.652124 0.00802549 0.234184;
#X coords 0 50 19 -500 200 100 1;
#X restore 212 -178 graph;
#X text 28 -188 PAF synthesiser;
#X obj 34 -71 hsl 128 15 1 10 0 0 \$0-bw empty formant_bandwidth -2
-6 0 8 -225271 -1 -1 600 1;
#X text 20 36 In this patch [xtract~ spectrum] is first used to extract
the magnitude spectrum from an audio signal in overlapping blocks of
1024 samples.;
#X text 23 165 Whilst DSP is running the input vector (magnitude spectrum)
is filtered by this filterbank \, and the total energy output from
each filter is appended to a new vector. This new vector (mel-filtered
spectrum) is then subjected to a fast cosine transform. The output
can be visualised in the graph labelled \$0-mfcc.;
|