-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathshowcqt-ref.mjs
342 lines (333 loc) · 22.9 KB
/
showcqt-ref.mjs
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
/*
* Copyright (c) 2020 Muhammad Faiz <[email protected]>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/* Audio visualization based on showcqt mpv/ffmpeg audio visualization */
/* See https://github.com/FFmpeg/FFmpeg/blob/master/libavfilter/avf_showcqt.c */
/* The output frequency range is fixed between E0 - 50 cents and E10 - 50 cents. */
/*
* Reference for numeric testing.
*/
{
//wasm_embedded_base64
const wasm_embedded_base64 = "" +
"AGFzbQEAAAABKghgAXwBfGABfwF/YAABf2AGf39/fX1/AX9gAABgAX8AYAJ/fwBgAn19AAIpBANl" +
"bnYDbG9nAAADZW52A2NvcwAAA2VudgNzaW4AAANlbnYDZXhwAAADFRQBAgIDBAUFBQUGBQcFBQUF" +
"BQUFBQQFAXABAQEFAwEAdgYJAX8BQbC41AMLB5IBCgZtZW1vcnkCAA9nZXRfaW5wdXRfYXJyYXkA" +
"BBBnZXRfb3V0cHV0X2FycmF5AAUPZ2V0X2NvbG9yX2FycmF5AAYEaW5pdAAHBGNhbGMACBFyZW5k" +
"ZXJfbGluZV9hbHBoYQANEnJlbmRlcl9saW5lX29wYXF1ZQAOCnNldF92b2x1bWUADwpzZXRfaGVp" +
"Z2h0ABAKmWcUEQAgAEEAR0ERdEGAiICAAGoLCABBgIiQgAALCABBgIi4gAAL5A0EAX8CfAN/CXxB" +
"ACEGAkAgAUF/akH/O0sNACACQX9qQd8hSw0AQQAhBkEAIAE2Aoi40IMAQQAgAjYChLjQgwBBACAB" +
"NgKAuNCDAEEAQwAAyEIgA0MAAIA/IANDAACAP14bIANDAADIQl4bOAKcuNCDAEEAQwAAyEIgBEMA" +
"AIA/IARDAACAP14bIARDAADIQl4bOAKYuNCDACAAQcBBakHgzgVLDQACQAJAIAC3IgdEH4XrUbge" +
"1T+iEICAgIAARO85+v5CLuY/o5siCJlEAAAAAAAA4EFjRQ0AIAiqIQEMAQtBgICAgHghAQsgAUF2" +
"akEKSw0AQQAhBkEAQQEgAXQiCTYCjLjQgwAgCUGAgAJKDQBBIiABayEAQQEgAUF+aiIBdCEKQX8g" +
"AXRB//8DcyELQQAhBkGA8CUhAQNAIAFBgIiAgABqIAFBgJBaakGq1arVenEgBkEBdkHVqtWqAXFy" +
"IgJBAnRBzJmz5nxxIAJBAnZBs+bMmQJxciICQQR0QfDhw4d/cSACQQR2QY+evPAAcXIiAkEIdEGA" +
"/oN4cSACQQh2Qf+B+AdxckEQdyAAdiALcTsBACABQQJqIQEgBkEBaiIGIApIDQALAkAgCUEDSA0A" +
"QQIhAANAAkAgAEUNACAAQQF2IQZEGC1EVPshGUAgALciDKMhDSAAQQN0QYT4kYAAaiEBQQAhAkQA" +
"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" +
"KgIAIhwgBiADlCAFIAeUkyIDkyIFIAsgDJQgCiANlJIiBiAXIBiUIBUgGZSSIgeTIgqTOAIAIBQg" +
"AiAIkiICIAYgB5IiBpM4AgAgEyAcIAOSIgMgDiAakiIHkzgCACASIAkgG5M4AgAgESAFIAqSOAIA" +
"IBAgAiAGkjgCACAEIAMgB5I4AgAgAUEIaiIBQfj/AEcNAAsL6QQIAX8CfQF/Cn0GfwF9AX8GfSAA" +
"EJGAgIAAIABBgBBqEJGAgIAAIABBgCBqEJGAgIAAIABBgDBqEJGAgIAAIABBhDBqIgEqAgAhAiAB" +
"IAAqAgQiAyAAQYQQaiIEKgIAIgWTIgYgACoCgCAiByAAKgKAMCIIkyIJkjgCACAAIAAqAgAiCiAA" +
"KgKAECILkyIMIABBhCBqIgEqAgAiDSACkyIOkzgCgDAgASADIAWSIgMgDSACkiICkzgCACAAIAog" +
"C5IiBSAHIAiSIgeTOAKAICAEIAYgCZM4AgAgACAMIA6SOAKAECAAIAMgApI4AgQgACAFIAeSOAIA" +
"QQAhAQNAIAAgAWoiBEGMMGoiDyAEQQxqIhAqAgAiAiAEQYgQaiIRKgIAIgMgAUGMmJKAAGoqAgAi" +
"BZQgAUGImJKAAGoqAgAiBiAEQYwQaiISKgIAIgeUkiIIkyIJIAFBiLiSgABqKgIAIgogBEGIIGoi" +
"EyoCACILlCABQYy4koAAaioCACIMIARBjCBqIhQqAgAiDZSTIg4gAUGIqJKAAGoqAgAiFSAEQYgw" +
"aiIWKgIAIheUIAFBjKiSgABqKgIAIhggDyoCACIZlJMiGpMiG5I4AgAgFiAEQQhqIgQqAgAiHCAG" +
"IAOUIAUgB5STIgOTIgUgCyAMlCAKIA2UkiIGIBcgGJQgFSAZlJIiB5MiCpM4AgAgFCACIAiSIgIg" +
"BiAHkiIGkzgCACATIBwgA5IiAyAOIBqSIgeTOAIAIBIgCSAbkzgCACARIAUgCpI4AgAgECACIAaS" +
"OAIAIAQgAyAHkjgCACABQQhqIgFB+A9HDQALC/EECAF/An0Bfwp9Bn8BfQF/Bn0gABCSgICAACAA" +
"QYAgahCSgICAACAAQYDAAGoQkoCAgAAgAEGA4ABqEJKAgIAAIABBhOAAaiIBKgIAIQIgASAAKgIE" +
"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" +
"kYAAaioCACIFlCABQYj8kYAAaioCACIGIARBjAJqIhIqAgAiB5SSIgiTIgkgAUGIgJKAAGoqAgAi" +
"CiAEQYgEaiITKgIAIguUIAFBjICSgABqKgIAIgwgBEGMBGoiFCoCACINlJMiDiABQYj+kYAAaioC" +
"ACIVIARBiAZqIhYqAgAiF5QgAUGM/pGAAGoqAgAiGCAPKgIAIhmUkyIakyIbkjgCACAWIARBCGoi" +
"BCoCACIcIAYgA5QgBSAHlJMiA5MiBSALIAyUIAogDZSSIgYgFyAYlCAVIBmUkiIHkyIKkzgCACAU" +
"IAIgCJIiAiAGIAeSIgaTOAIAIBMgHCADkiIDIA4gGpIiB5M4AgAgEiAJIBuTOAIAIBEgBSAKkjgC" +
"ACAQIAIgBpI4AgAgBCADIAeSOAIAIAFBCGoiAUH4AUcNAAsL5gQIAX8CfQF/Cn0GfwF9AX8GfSAA" +
"EJeAgIAAIABBwABqEJeAgIAAIABBgAFqEJeAgIAAIABBwAFqEJeAgIAAIABBxAFqIgEqAgAhAiAB" +
"IAAqAgQiAyAAQcQAaiIEKgIAIgWTIgYgACoCgAEiByAAKgLAASIIkyIJkjgCACAAIAAqAgAiCiAA" +
"KgJAIguTIgwgAEGEAWoiASoCACINIAKTIg6TOALAASABIAMgBZIiAyANIAKSIgKTOAIAIAAgCiAL" +
"kiIFIAcgCJIiB5M4AoABIAQgBiAJkzgCACAAIAwgDpI4AkAgACADIAKSOAIEIAAgBSAHkjgCAEEA" +
"IQEDQCAAIAFqIgRBzAFqIg8gBEEMaiIQKgIAIgIgBEHIAGoiESoCACIDIAFBjPmRgABqKgIAIgWU" +
"IAFBiPmRgABqKgIAIgYgBEHMAGoiEioCACIHlJIiCJMiCSABQYj6kYAAaioCACIKIARBiAFqIhMq" +
"AgAiC5QgAUGM+pGAAGoqAgAiDCAEQYwBaiIUKgIAIg2UkyIOIAFByPmRgABqKgIAIhUgBEHIAWoi" +
"FioCACIXlCABQcz5kYAAaioCACIYIA8qAgAiGZSTIhqTIhuSOAIAIBYgBEEIaiIEKgIAIhwgBiAD" +
"lCAFIAeUkyIDkyIFIAsgDJQgCiANlJIiBiAXIBiUIBUgGZSSIgeTIgqTOAIAIBQgAiAIkiICIAYg" +
"B5IiBpM4AgAgEyAcIAOSIgMgDiAakiIHkzgCACASIAkgG5M4AgAgESAFIAqSOAIAIBAgAiAGkjgC" +
"ACAEIAMgB5I4AgAgAUEIaiIBQThHDQALC9EECwN9AX8NfQF/AX0BfwF9AX8BfQF/A30gACAAKgIA" +
"IgEgACoCCCICkyIDOAIIIABBDGoiBCAAKgIEIgUgBCoCACIGkyIHOAIAIAAgASACkiIBIAAqAhAi" +
"AiAAKgIYIgiSIgmSIgogACoCICILIAAqAigiDJIiDSAAKgIwIg4gACoCOCIPkiIQkiIRkjgCACAA" +
"IAogEZM4AiAgAEEUaiISIAUgBpIiBSASKgIAIgYgAEEcaiISKgIAIgqSIhGTIhMgDSAQkyINkzgC" +
"ACAAQSRqIhQgBSARkiIFIBQqAgAiECAAQSxqIhQqAgAiEZIiFSAAQTRqIhYqAgAiFyAAQTxqIhgq" +
"AgAiGZIiGpIiG5M4AgAgACABIAmTIgEgFSAakyIJkzgCMCAWIBMgDZI4AgAgACABIAmSOAIQIAAg" +
"BSAbkjgCBCAYIAcgAiAIkyIBQQAqAqz4kYAAIgKUQQAqAqj4kYAAIgUgBiAKkyIGlJIiCJMiCUEA" +
"KgLI+JGAACIKIAsgDJMiC5RBACoCzPiRgAAiDCAQIBGTIg2UkyIQQQAqArj4kYAAIhEgDiAPkyIO" +
"lEEAKgK8+JGAACIPIBcgGZMiE5STIhWTIheSOAIAIAAgAyAFIAGUIAIgBpSTIgGTIgIgCyAMlCAK" +
"IA2UkiIFIA4gD5QgESATlJIiBpMiCpM4AjggFCAHIAiSIgcgBSAGkiIFkzgCACAAIAMgAZIiAyAQ" +
"IBWSIgGTOAIoIBIgCSAXkzgCACAAIAIgCpI4AhggBCAHIAWSOAIAIAAgAyABkjgCCAsAtQIEbmFt" +
"ZQGtAhgAA2xvZwEDY29zAgNzaW4DA2V4cAQPZ2V0X2lucHV0X2FycmF5BRBnZXRfb3V0cHV0X2Fy" +
"cmF5Bg9nZXRfY29sb3JfYXJyYXkHBGluaXQIBGNhbGMJDWZmdF9jYWxjXzQwOTYKDWZmdF9jYWxj" +
"XzgxOTILDWZmdF9jYWxjXzEwMjQMDWZmdF9jYWxjXzIwNDgNEXJlbmRlcl9saW5lX2FscGhhDhJy" +
"ZW5kZXJfbGluZV9vcGFxdWUPCnNldF92b2x1bWUQCnNldF9oZWlnaHQRDGZmdF9jYWxjXzI1NhIM" +
"ZmZ0X2NhbGNfNTEyEwtmZnRfY2FsY182NBQLZmZ0X2NhbGNfMTYVDGZmdF9jYWxjXzEyOBYLZmZ0" +
"X2NhbGNfMzIXCmZmdF9jYWxjXzgAPQlwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQEFY2xhbmcdMTAu" +
"MC4wIChGZWRvcmEgMTAuMC4wLTEuZmMzMik=";
let decode64 = function(b64) {
var str = atob(b64);
var buf = new Uint8Array(str.length);
for (var k = 0; k < str.length; k++)
buf[k] = str.charCodeAt(k);
return buf;
}
let wasm_module_promise = WebAssembly.compile(decode64(wasm_embedded_base64));
let wasm_imports = {
env: {
cos: Math.cos,
sin: Math.sin,
log: Math.log,
exp: Math.exp
}
};
let invalid_func = function() {
throw new Error("ShowCQT is not initialized");
}
let cqt_uninit = function(cqt) {
cqt.fft_size = 0;
cqt.width = 0;
cqt.inputs = null;
cqt.output = null;
cqt.color = null;
cqt.calc = invalid_func;
cqt.render_line_alpha = invalid_func;
cqt.render_line_opaque = invalid_func;
cqt.set_height = invalid_func;
cqt.set_volume = invalid_func;
}
var ShowCQTRef = {
instantiate: async function() {
var instance = await WebAssembly.instantiate(await wasm_module_promise, wasm_imports);
var exports = instance.exports;
var buffer = exports.memory.buffer;
var retval = {
init: function(rate, width, height, bar_v, sono_v, supersampling) {
cqt_uninit(this);
this.fft_size = exports.init(rate, width, height, bar_v, sono_v, supersampling);
if (!this.fft_size)
throw new Error("ShowCQT init: cannot initialize ShowCQT");
this.width = width;
this.inputs = [
new Float32Array(buffer, exports.get_input_array(0), this.fft_size),
new Float32Array(buffer, exports.get_input_array(1), this.fft_size)
];
this.color = new Float32Array(buffer, exports.get_color_array(), this.width * 4);
this.output = new Uint8ClampedArray(buffer, exports.get_output_array(), this.width * 4);
this.calc = exports.calc;
this.render_line_alpha = exports.render_line_alpha;
this.render_line_opaque = exports.render_line_opaque;
this.set_height = exports.set_height;
this.set_volume = exports.set_volume;
}
};
cqt_uninit(retval);
return retval;
}
};
}
export default ShowCQTRef;
export {ShowCQTRef};