@grame/faustwasm 0.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +181 -0
  2. package/assets/standalone/faust-ui/index.css +414 -0
  3. package/assets/standalone/faust-ui/index.css.map +1 -0
  4. package/assets/standalone/faust-ui/index.d.ts +1 -0
  5. package/assets/standalone/faust-ui/index.js +3478 -0
  6. package/assets/standalone/faust-ui/index.js.map +1 -0
  7. package/assets/standalone/faustwasm/index.d.ts +1252 -0
  8. package/assets/standalone/faustwasm/index.js +3772 -0
  9. package/assets/standalone/faustwasm/index.js.map +7 -0
  10. package/assets/standalone/index.html +73 -0
  11. package/assets/standalone/index.js +198 -0
  12. package/assets/standalone/types.d.ts +9 -0
  13. package/dist/cjs/index.d.ts +1252 -0
  14. package/dist/cjs/index.js +3752 -0
  15. package/dist/cjs/index.js.map +7 -0
  16. package/dist/cjs-bundle/index.d.ts +1259 -0
  17. package/dist/cjs-bundle/index.js +11507 -0
  18. package/dist/cjs-bundle/index.js.map +7 -0
  19. package/dist/esm/index.d.ts +1252 -0
  20. package/dist/esm/index.js +3772 -0
  21. package/dist/esm/index.js.map +7 -0
  22. package/dist/esm-bundle/index.d.ts +1259 -0
  23. package/dist/esm-bundle/index.js +11495 -0
  24. package/dist/esm-bundle/index.js.map +7 -0
  25. package/fileutils.js +40 -0
  26. package/libfaust-wasm/libfaust-wasm.d.cts +3 -0
  27. package/libfaust-wasm/libfaust-wasm.d.ts +3 -0
  28. package/libfaust-wasm/libfaust-wasm.data +0 -0
  29. package/libfaust-wasm/libfaust-wasm.data.d.ts +2 -0
  30. package/libfaust-wasm/libfaust-wasm.js +21 -0
  31. package/libfaust-wasm/libfaust-wasm.wasm +0 -0
  32. package/libfaust-wasm/libfaust-wasm.wasm.d.ts +2 -0
  33. package/library.md +91 -0
  34. package/package.json +43 -0
  35. package/postbuild-bundled.js +11 -0
  36. package/postbuild.js +63 -0
  37. package/prebuild-bundled.js +11 -0
  38. package/rsrc/overview.png +0 -0
  39. package/rsrc/overview.xlsx +0 -0
  40. package/scripts/faust2sndfile.js +43 -0
  41. package/scripts/faust2svg.js +17 -0
  42. package/scripts/faust2wasm.js +29 -0
  43. package/src/FaustAudioWorkletNode.ts +264 -0
  44. package/src/FaustAudioWorkletProcessor.ts +273 -0
  45. package/src/FaustCompiler.ts +252 -0
  46. package/src/FaustDspGenerator.ts +498 -0
  47. package/src/FaustDspInstance.ts +141 -0
  48. package/src/FaustFFTAudioWorkletProcessor.ts +554 -0
  49. package/src/FaustOfflineProcessor.ts +141 -0
  50. package/src/FaustScriptProcessorNode.ts +80 -0
  51. package/src/FaustSvgDiagrams.ts +37 -0
  52. package/src/FaustWasmInstantiator.ts +202 -0
  53. package/src/FaustWebAudioDsp.ts +1060 -0
  54. package/src/LibFaust.ts +57 -0
  55. package/src/WavDecoder.ts +207 -0
  56. package/src/WavEncoder.ts +204 -0
  57. package/src/copyWebStandaloneAssets.d.ts +3 -0
  58. package/src/copyWebStandaloneAssets.js +20 -0
  59. package/src/exports-bundle.ts +5 -0
  60. package/src/exports.ts +24 -0
  61. package/src/faust2svgFiles.d.ts +3 -0
  62. package/src/faust2svgFiles.js +43 -0
  63. package/src/faust2wasmFiles.d.ts +5 -0
  64. package/src/faust2wasmFiles.js +93 -0
  65. package/src/faust2wavFiles.d.ts +3 -0
  66. package/src/faust2wavFiles.js +58 -0
  67. package/src/index-bundle-iife.ts +7 -0
  68. package/src/index-bundle.ts +5 -0
  69. package/src/index.ts +5 -0
  70. package/src/instantiateFaustModule.ts +32 -0
  71. package/src/instantiateFaustModuleFromFile.ts +57 -0
  72. package/src/types.ts +234 -0
  73. package/test/clarinet.dsp +1 -0
  74. package/test/faustlive-wasm/faust-ui/index.css +414 -0
  75. package/test/faustlive-wasm/faust-ui/index.css.map +1 -0
  76. package/test/faustlive-wasm/faust-ui/index.d.ts +1 -0
  77. package/test/faustlive-wasm/faust-ui/index.js +3478 -0
  78. package/test/faustlive-wasm/faust-ui/index.js.map +1 -0
  79. package/test/faustlive-wasm/faustwasm/index.d.ts +1252 -0
  80. package/test/faustlive-wasm/faustwasm/index.js +3772 -0
  81. package/test/faustlive-wasm/faustwasm/index.js.map +7 -0
  82. package/test/faustlive-wasm/index.css +97 -0
  83. package/test/faustlive-wasm/index.html +130 -0
  84. package/test/faustlive-wasm/index.js +638 -0
  85. package/test/guitar.dsp +1 -0
  86. package/test/guitar1.dsp +2 -0
  87. package/test/libfaust-in-worklet/index.html +13 -0
  88. package/test/libfaust-in-worklet/index.js +40 -0
  89. package/test/mono.dsp +8 -0
  90. package/test/node/test.js +17 -0
  91. package/test/noise.dsp +3 -0
  92. package/test/organ.dsp +5 -0
  93. package/test/organ1.dsp +6 -0
  94. package/test/osc.dsp +4 -0
  95. package/test/osc2.dsp +5 -0
  96. package/test/osc3.dsp +4 -0
  97. package/test/p-dj.dsp +4 -0
  98. package/test/poly.dsp +13 -0
  99. package/test/rev.dsp +2 -0
  100. package/test/t1.dsp +1 -0
  101. package/test/web/fft.html +87 -0
  102. package/test/web/fft1.html +88 -0
  103. package/test/web/fft2.html +114 -0
  104. package/test/web/fftw.js +1907 -0
  105. package/test/web/index.html +12 -0
  106. package/test/web/index.js +235 -0
  107. package/test/web/kissfft.js +904 -0
  108. package/test/web/mono.html +46 -0
  109. package/test/web/poly-key.html +62 -0
  110. package/test/web/poly.html +59 -0
  111. package/tsconfig.json +22 -0
@@ -0,0 +1,904 @@
1
+ (() => {
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
9
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
10
+ }) : x)(function(x) {
11
+ if (typeof require !== "undefined")
12
+ return require.apply(this, arguments);
13
+ throw new Error('Dynamic require of "' + x + '" is not supported');
14
+ });
15
+ var __commonJS = (cb, mod) => function __require2() {
16
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
17
+ };
18
+ var __export = (target, all) => {
19
+ for (var name in all)
20
+ __defProp(target, name, { get: all[name], enumerable: true });
21
+ };
22
+ var __copyProps = (to, from, except, desc) => {
23
+ if (from && typeof from === "object" || typeof from === "function") {
24
+ for (let key of __getOwnPropNames(from))
25
+ if (!__hasOwnProp.call(to, key) && key !== except)
26
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
27
+ }
28
+ return to;
29
+ };
30
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
31
+ // If the importer is in node compatibility mode or this is not an ESM
32
+ // file that has been converted to a CommonJS file using a Babel-
33
+ // compatible transform (i.e. "__esModule" has not been set), then set
34
+ // "default" to the CommonJS "module.exports" for node compatibility.
35
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
36
+ mod
37
+ ));
38
+ var __toBinary = /* @__PURE__ */ (() => {
39
+ var table = new Uint8Array(128);
40
+ for (var i = 0; i < 64; i++)
41
+ table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;
42
+ return (base64) => {
43
+ var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);
44
+ for (var i2 = 0, j = 0; i2 < n; ) {
45
+ var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];
46
+ var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];
47
+ bytes[j++] = c0 << 2 | c1 >> 4;
48
+ bytes[j++] = c1 << 4 | c2 >> 2;
49
+ bytes[j++] = c2 << 6 | c3;
50
+ }
51
+ return bytes;
52
+ };
53
+ })();
54
+
55
+ // libkissfft-wasm/libkissfft.cjs
56
+ var require_libkissfft = __commonJS({
57
+ "libkissfft-wasm/libkissfft.cjs"(exports, module) {
58
+ var KissFFTModule = (() => {
59
+ var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0;
60
+ if (typeof __filename !== "undefined")
61
+ _scriptDir = _scriptDir || __filename;
62
+ return function(KissFFTModule2) {
63
+ KissFFTModule2 = KissFFTModule2 || {};
64
+ var Module = typeof KissFFTModule2 != "undefined" ? KissFFTModule2 : {};
65
+ var readyPromiseResolve, readyPromiseReject;
66
+ Module["ready"] = new Promise(function(resolve, reject) {
67
+ readyPromiseResolve = resolve;
68
+ readyPromiseReject = reject;
69
+ });
70
+ var moduleOverrides = Object.assign({}, Module);
71
+ var arguments_ = [];
72
+ var thisProgram = "./this.program";
73
+ var quit_ = (status, toThrow) => {
74
+ throw toThrow;
75
+ };
76
+ var ENVIRONMENT_IS_WEB = typeof window == "object";
77
+ var ENVIRONMENT_IS_WORKER = typeof importScripts == "function";
78
+ var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string";
79
+ var scriptDirectory = "";
80
+ function locateFile(path) {
81
+ if (Module["locateFile"]) {
82
+ return Module["locateFile"](path, scriptDirectory);
83
+ }
84
+ return scriptDirectory + path;
85
+ }
86
+ var read_, readAsync, readBinary, setWindowTitle;
87
+ function logExceptionOnExit(e) {
88
+ if (e instanceof ExitStatus)
89
+ return;
90
+ let toLog = e;
91
+ err("exiting due to exception: " + toLog);
92
+ }
93
+ if (ENVIRONMENT_IS_NODE) {
94
+ var fs = __require("fs");
95
+ var nodePath = __require("path");
96
+ if (ENVIRONMENT_IS_WORKER) {
97
+ scriptDirectory = nodePath.dirname(scriptDirectory) + "/";
98
+ } else {
99
+ scriptDirectory = __dirname + "/";
100
+ }
101
+ read_ = (filename, binary) => {
102
+ filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename);
103
+ return fs.readFileSync(filename, binary ? void 0 : "utf8");
104
+ };
105
+ readBinary = (filename) => {
106
+ var ret = read_(filename, true);
107
+ if (!ret.buffer) {
108
+ ret = new Uint8Array(ret);
109
+ }
110
+ return ret;
111
+ };
112
+ readAsync = (filename, onload, onerror) => {
113
+ filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename);
114
+ fs.readFile(filename, function(err2, data) {
115
+ if (err2)
116
+ onerror(err2);
117
+ else
118
+ onload(data.buffer);
119
+ });
120
+ };
121
+ if (process["argv"].length > 1) {
122
+ thisProgram = process["argv"][1].replace(/\\/g, "/");
123
+ }
124
+ arguments_ = process["argv"].slice(2);
125
+ process["on"]("uncaughtException", function(ex) {
126
+ if (!(ex instanceof ExitStatus)) {
127
+ throw ex;
128
+ }
129
+ });
130
+ process["on"]("unhandledRejection", function(reason) {
131
+ throw reason;
132
+ });
133
+ quit_ = (status, toThrow) => {
134
+ if (keepRuntimeAlive()) {
135
+ process["exitCode"] = status;
136
+ throw toThrow;
137
+ }
138
+ logExceptionOnExit(toThrow);
139
+ process["exit"](status);
140
+ };
141
+ Module["inspect"] = function() {
142
+ return "[Emscripten Module object]";
143
+ };
144
+ } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
145
+ if (ENVIRONMENT_IS_WORKER) {
146
+ scriptDirectory = self.location.href;
147
+ } else if (typeof document != "undefined" && document.currentScript) {
148
+ scriptDirectory = document.currentScript.src;
149
+ }
150
+ if (_scriptDir) {
151
+ scriptDirectory = _scriptDir;
152
+ }
153
+ if (scriptDirectory.indexOf("blob:") !== 0) {
154
+ scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1);
155
+ } else {
156
+ scriptDirectory = "";
157
+ }
158
+ {
159
+ read_ = (url) => {
160
+ var xhr = new XMLHttpRequest();
161
+ xhr.open("GET", url, false);
162
+ xhr.send(null);
163
+ return xhr.responseText;
164
+ };
165
+ if (ENVIRONMENT_IS_WORKER) {
166
+ readBinary = (url) => {
167
+ var xhr = new XMLHttpRequest();
168
+ xhr.open("GET", url, false);
169
+ xhr.responseType = "arraybuffer";
170
+ xhr.send(null);
171
+ return new Uint8Array(xhr.response);
172
+ };
173
+ }
174
+ readAsync = (url, onload, onerror) => {
175
+ var xhr = new XMLHttpRequest();
176
+ xhr.open("GET", url, true);
177
+ xhr.responseType = "arraybuffer";
178
+ xhr.onload = () => {
179
+ if (xhr.status == 200 || xhr.status == 0 && xhr.response) {
180
+ onload(xhr.response);
181
+ return;
182
+ }
183
+ onerror();
184
+ };
185
+ xhr.onerror = onerror;
186
+ xhr.send(null);
187
+ };
188
+ }
189
+ setWindowTitle = (title) => document.title = title;
190
+ } else {
191
+ }
192
+ var out = Module["print"] || console.log.bind(console);
193
+ var err = Module["printErr"] || console.warn.bind(console);
194
+ Object.assign(Module, moduleOverrides);
195
+ moduleOverrides = null;
196
+ if (Module["arguments"])
197
+ arguments_ = Module["arguments"];
198
+ if (Module["thisProgram"])
199
+ thisProgram = Module["thisProgram"];
200
+ if (Module["quit"])
201
+ quit_ = Module["quit"];
202
+ var wasmBinary;
203
+ if (Module["wasmBinary"])
204
+ wasmBinary = Module["wasmBinary"];
205
+ var noExitRuntime = Module["noExitRuntime"] || true;
206
+ if (typeof WebAssembly != "object") {
207
+ abort("no native wasm support detected");
208
+ }
209
+ var wasmMemory;
210
+ var ABORT = false;
211
+ var EXITSTATUS;
212
+ var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0;
213
+ function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) {
214
+ var endIdx = idx + maxBytesToRead;
215
+ var endPtr = idx;
216
+ while (heapOrArray[endPtr] && !(endPtr >= endIdx))
217
+ ++endPtr;
218
+ if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
219
+ return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));
220
+ }
221
+ var str = "";
222
+ while (idx < endPtr) {
223
+ var u0 = heapOrArray[idx++];
224
+ if (!(u0 & 128)) {
225
+ str += String.fromCharCode(u0);
226
+ continue;
227
+ }
228
+ var u1 = heapOrArray[idx++] & 63;
229
+ if ((u0 & 224) == 192) {
230
+ str += String.fromCharCode((u0 & 31) << 6 | u1);
231
+ continue;
232
+ }
233
+ var u2 = heapOrArray[idx++] & 63;
234
+ if ((u0 & 240) == 224) {
235
+ u0 = (u0 & 15) << 12 | u1 << 6 | u2;
236
+ } else {
237
+ u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;
238
+ }
239
+ if (u0 < 65536) {
240
+ str += String.fromCharCode(u0);
241
+ } else {
242
+ var ch = u0 - 65536;
243
+ str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
244
+ }
245
+ }
246
+ return str;
247
+ }
248
+ function UTF8ToString(ptr, maxBytesToRead) {
249
+ return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
250
+ }
251
+ function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {
252
+ if (!(maxBytesToWrite > 0))
253
+ return 0;
254
+ var startIdx = outIdx;
255
+ var endIdx = outIdx + maxBytesToWrite - 1;
256
+ for (var i = 0; i < str.length; ++i) {
257
+ var u = str.charCodeAt(i);
258
+ if (u >= 55296 && u <= 57343) {
259
+ var u1 = str.charCodeAt(++i);
260
+ u = 65536 + ((u & 1023) << 10) | u1 & 1023;
261
+ }
262
+ if (u <= 127) {
263
+ if (outIdx >= endIdx)
264
+ break;
265
+ heap[outIdx++] = u;
266
+ } else if (u <= 2047) {
267
+ if (outIdx + 1 >= endIdx)
268
+ break;
269
+ heap[outIdx++] = 192 | u >> 6;
270
+ heap[outIdx++] = 128 | u & 63;
271
+ } else if (u <= 65535) {
272
+ if (outIdx + 2 >= endIdx)
273
+ break;
274
+ heap[outIdx++] = 224 | u >> 12;
275
+ heap[outIdx++] = 128 | u >> 6 & 63;
276
+ heap[outIdx++] = 128 | u & 63;
277
+ } else {
278
+ if (outIdx + 3 >= endIdx)
279
+ break;
280
+ heap[outIdx++] = 240 | u >> 18;
281
+ heap[outIdx++] = 128 | u >> 12 & 63;
282
+ heap[outIdx++] = 128 | u >> 6 & 63;
283
+ heap[outIdx++] = 128 | u & 63;
284
+ }
285
+ }
286
+ heap[outIdx] = 0;
287
+ return outIdx - startIdx;
288
+ }
289
+ function stringToUTF8(str, outPtr, maxBytesToWrite) {
290
+ return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
291
+ }
292
+ var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
293
+ function updateGlobalBufferAndViews(buf) {
294
+ buffer = buf;
295
+ Module["HEAP8"] = HEAP8 = new Int8Array(buf);
296
+ Module["HEAP16"] = HEAP16 = new Int16Array(buf);
297
+ Module["HEAP32"] = HEAP32 = new Int32Array(buf);
298
+ Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf);
299
+ Module["HEAPU16"] = HEAPU16 = new Uint16Array(buf);
300
+ Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf);
301
+ Module["HEAPF32"] = HEAPF32 = new Float32Array(buf);
302
+ Module["HEAPF64"] = HEAPF64 = new Float64Array(buf);
303
+ }
304
+ var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216;
305
+ var wasmTable;
306
+ var __ATPRERUN__ = [];
307
+ var __ATINIT__ = [];
308
+ var __ATPOSTRUN__ = [];
309
+ var runtimeInitialized = false;
310
+ function keepRuntimeAlive() {
311
+ return noExitRuntime;
312
+ }
313
+ function preRun() {
314
+ if (Module["preRun"]) {
315
+ if (typeof Module["preRun"] == "function")
316
+ Module["preRun"] = [Module["preRun"]];
317
+ while (Module["preRun"].length) {
318
+ addOnPreRun(Module["preRun"].shift());
319
+ }
320
+ }
321
+ callRuntimeCallbacks(__ATPRERUN__);
322
+ }
323
+ function initRuntime() {
324
+ runtimeInitialized = true;
325
+ callRuntimeCallbacks(__ATINIT__);
326
+ }
327
+ function postRun() {
328
+ if (Module["postRun"]) {
329
+ if (typeof Module["postRun"] == "function")
330
+ Module["postRun"] = [Module["postRun"]];
331
+ while (Module["postRun"].length) {
332
+ addOnPostRun(Module["postRun"].shift());
333
+ }
334
+ }
335
+ callRuntimeCallbacks(__ATPOSTRUN__);
336
+ }
337
+ function addOnPreRun(cb) {
338
+ __ATPRERUN__.unshift(cb);
339
+ }
340
+ function addOnInit(cb) {
341
+ __ATINIT__.unshift(cb);
342
+ }
343
+ function addOnPostRun(cb) {
344
+ __ATPOSTRUN__.unshift(cb);
345
+ }
346
+ var runDependencies = 0;
347
+ var runDependencyWatcher = null;
348
+ var dependenciesFulfilled = null;
349
+ function addRunDependency(id) {
350
+ runDependencies++;
351
+ if (Module["monitorRunDependencies"]) {
352
+ Module["monitorRunDependencies"](runDependencies);
353
+ }
354
+ }
355
+ function removeRunDependency(id) {
356
+ runDependencies--;
357
+ if (Module["monitorRunDependencies"]) {
358
+ Module["monitorRunDependencies"](runDependencies);
359
+ }
360
+ if (runDependencies == 0) {
361
+ if (runDependencyWatcher !== null) {
362
+ clearInterval(runDependencyWatcher);
363
+ runDependencyWatcher = null;
364
+ }
365
+ if (dependenciesFulfilled) {
366
+ var callback = dependenciesFulfilled;
367
+ dependenciesFulfilled = null;
368
+ callback();
369
+ }
370
+ }
371
+ }
372
+ function abort(what) {
373
+ if (Module["onAbort"]) {
374
+ Module["onAbort"](what);
375
+ }
376
+ what = "Aborted(" + what + ")";
377
+ err(what);
378
+ ABORT = true;
379
+ EXITSTATUS = 1;
380
+ what += ". Build with -sASSERTIONS for more info.";
381
+ var e = new WebAssembly.RuntimeError(what);
382
+ readyPromiseReject(e);
383
+ throw e;
384
+ }
385
+ var dataURIPrefix = "data:application/octet-stream;base64,";
386
+ function isDataURI(filename) {
387
+ return filename.startsWith(dataURIPrefix);
388
+ }
389
+ function isFileURI(filename) {
390
+ return filename.startsWith("file://");
391
+ }
392
+ var wasmBinaryFile;
393
+ wasmBinaryFile = "libkissfft.wasm";
394
+ if (!isDataURI(wasmBinaryFile)) {
395
+ wasmBinaryFile = locateFile(wasmBinaryFile);
396
+ }
397
+ function getBinary(file) {
398
+ try {
399
+ if (file == wasmBinaryFile && wasmBinary) {
400
+ return new Uint8Array(wasmBinary);
401
+ }
402
+ if (readBinary) {
403
+ return readBinary(file);
404
+ }
405
+ throw "both async and sync fetching of the wasm failed";
406
+ } catch (err2) {
407
+ abort(err2);
408
+ }
409
+ }
410
+ function getBinaryPromise() {
411
+ if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {
412
+ if (typeof fetch == "function" && !isFileURI(wasmBinaryFile)) {
413
+ return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) {
414
+ if (!response["ok"]) {
415
+ throw "failed to load wasm binary file at '" + wasmBinaryFile + "'";
416
+ }
417
+ return response["arrayBuffer"]();
418
+ }).catch(function() {
419
+ return getBinary(wasmBinaryFile);
420
+ });
421
+ } else {
422
+ if (readAsync) {
423
+ return new Promise(function(resolve, reject) {
424
+ readAsync(wasmBinaryFile, function(response) {
425
+ resolve(new Uint8Array(response));
426
+ }, reject);
427
+ });
428
+ }
429
+ }
430
+ }
431
+ return Promise.resolve().then(function() {
432
+ return getBinary(wasmBinaryFile);
433
+ });
434
+ }
435
+ function createWasm() {
436
+ var info = { "a": asmLibraryArg };
437
+ function receiveInstance(instance, module2) {
438
+ var exports3 = instance.exports;
439
+ Module["asm"] = exports3;
440
+ wasmMemory = Module["asm"]["f"];
441
+ updateGlobalBufferAndViews(wasmMemory.buffer);
442
+ wasmTable = Module["asm"]["p"];
443
+ addOnInit(Module["asm"]["g"]);
444
+ removeRunDependency("wasm-instantiate");
445
+ }
446
+ addRunDependency("wasm-instantiate");
447
+ function receiveInstantiationResult(result) {
448
+ receiveInstance(result["instance"]);
449
+ }
450
+ function instantiateArrayBuffer(receiver) {
451
+ return getBinaryPromise().then(function(binary) {
452
+ return WebAssembly.instantiate(binary, info);
453
+ }).then(function(instance) {
454
+ return instance;
455
+ }).then(receiver, function(reason) {
456
+ err("failed to asynchronously prepare wasm: " + reason);
457
+ abort(reason);
458
+ });
459
+ }
460
+ function instantiateAsync() {
461
+ if (!wasmBinary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(wasmBinaryFile) && !isFileURI(wasmBinaryFile) && !ENVIRONMENT_IS_NODE && typeof fetch == "function") {
462
+ return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) {
463
+ var result = WebAssembly.instantiateStreaming(response, info);
464
+ return result.then(receiveInstantiationResult, function(reason) {
465
+ err("wasm streaming compile failed: " + reason);
466
+ err("falling back to ArrayBuffer instantiation");
467
+ return instantiateArrayBuffer(receiveInstantiationResult);
468
+ });
469
+ });
470
+ } else {
471
+ return instantiateArrayBuffer(receiveInstantiationResult);
472
+ }
473
+ }
474
+ if (Module["instantiateWasm"]) {
475
+ try {
476
+ var exports2 = Module["instantiateWasm"](info, receiveInstance);
477
+ return exports2;
478
+ } catch (e) {
479
+ err("Module.instantiateWasm callback failed with error: " + e);
480
+ readyPromiseReject(e);
481
+ }
482
+ }
483
+ instantiateAsync().catch(readyPromiseReject);
484
+ return {};
485
+ }
486
+ function ExitStatus(status) {
487
+ this.name = "ExitStatus";
488
+ this.message = "Program terminated with exit(" + status + ")";
489
+ this.status = status;
490
+ }
491
+ function callRuntimeCallbacks(callbacks) {
492
+ while (callbacks.length > 0) {
493
+ callbacks.shift()(Module);
494
+ }
495
+ }
496
+ function _emscripten_memcpy_big(dest, src, num) {
497
+ HEAPU8.copyWithin(dest, src, src + num);
498
+ }
499
+ function abortOnCannotGrowMemory(requestedSize) {
500
+ abort("OOM");
501
+ }
502
+ function _emscripten_resize_heap(requestedSize) {
503
+ var oldSize = HEAPU8.length;
504
+ requestedSize = requestedSize >>> 0;
505
+ abortOnCannotGrowMemory(requestedSize);
506
+ }
507
+ var SYSCALLS = { varargs: void 0, get: function() {
508
+ SYSCALLS.varargs += 4;
509
+ var ret = HEAP32[SYSCALLS.varargs - 4 >> 2];
510
+ return ret;
511
+ }, getStr: function(ptr) {
512
+ var ret = UTF8ToString(ptr);
513
+ return ret;
514
+ } };
515
+ function _fd_close(fd) {
516
+ return 52;
517
+ }
518
+ function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
519
+ return 70;
520
+ }
521
+ var printCharBuffers = [null, [], []];
522
+ function printChar(stream, curr) {
523
+ var buffer2 = printCharBuffers[stream];
524
+ if (curr === 0 || curr === 10) {
525
+ (stream === 1 ? out : err)(UTF8ArrayToString(buffer2, 0));
526
+ buffer2.length = 0;
527
+ } else {
528
+ buffer2.push(curr);
529
+ }
530
+ }
531
+ function _fd_write(fd, iov, iovcnt, pnum) {
532
+ var num = 0;
533
+ for (var i = 0; i < iovcnt; i++) {
534
+ var ptr = HEAPU32[iov >> 2];
535
+ var len = HEAPU32[iov + 4 >> 2];
536
+ iov += 8;
537
+ for (var j = 0; j < len; j++) {
538
+ printChar(fd, HEAPU8[ptr + j]);
539
+ }
540
+ num += len;
541
+ }
542
+ HEAPU32[pnum >> 2] = num;
543
+ return 0;
544
+ }
545
+ function getCFunc(ident) {
546
+ var func = Module["_" + ident];
547
+ return func;
548
+ }
549
+ function writeArrayToMemory(array, buffer2) {
550
+ HEAP8.set(array, buffer2);
551
+ }
552
+ function ccall(ident, returnType, argTypes, args, opts) {
553
+ var toC = { "string": (str) => {
554
+ var ret2 = 0;
555
+ if (str !== null && str !== void 0 && str !== 0) {
556
+ var len = (str.length << 2) + 1;
557
+ ret2 = stackAlloc(len);
558
+ stringToUTF8(str, ret2, len);
559
+ }
560
+ return ret2;
561
+ }, "array": (arr) => {
562
+ var ret2 = stackAlloc(arr.length);
563
+ writeArrayToMemory(arr, ret2);
564
+ return ret2;
565
+ } };
566
+ function convertReturnValue(ret2) {
567
+ if (returnType === "string") {
568
+ return UTF8ToString(ret2);
569
+ }
570
+ if (returnType === "boolean")
571
+ return Boolean(ret2);
572
+ return ret2;
573
+ }
574
+ var func = getCFunc(ident);
575
+ var cArgs = [];
576
+ var stack = 0;
577
+ if (args) {
578
+ for (var i = 0; i < args.length; i++) {
579
+ var converter = toC[argTypes[i]];
580
+ if (converter) {
581
+ if (stack === 0)
582
+ stack = stackSave();
583
+ cArgs[i] = converter(args[i]);
584
+ } else {
585
+ cArgs[i] = args[i];
586
+ }
587
+ }
588
+ }
589
+ var ret = func.apply(null, cArgs);
590
+ function onDone(ret2) {
591
+ if (stack !== 0)
592
+ stackRestore(stack);
593
+ return convertReturnValue(ret2);
594
+ }
595
+ ret = onDone(ret);
596
+ return ret;
597
+ }
598
+ function cwrap(ident, returnType, argTypes, opts) {
599
+ argTypes = argTypes || [];
600
+ var numericArgs = argTypes.every((type) => type === "number" || type === "boolean");
601
+ var numericRet = returnType !== "string";
602
+ if (numericRet && numericArgs && !opts) {
603
+ return getCFunc(ident);
604
+ }
605
+ return function() {
606
+ return ccall(ident, returnType, argTypes, arguments, opts);
607
+ };
608
+ }
609
+ var asmLibraryArg = { "e": _emscripten_memcpy_big, "c": _emscripten_resize_heap, "d": _fd_close, "b": _fd_seek, "a": _fd_write };
610
+ var asm = createWasm();
611
+ var ___wasm_call_ctors = Module["___wasm_call_ctors"] = function() {
612
+ return (___wasm_call_ctors = Module["___wasm_call_ctors"] = Module["asm"]["g"]).apply(null, arguments);
613
+ };
614
+ var _kiss_fft_alloc = Module["_kiss_fft_alloc"] = function() {
615
+ return (_kiss_fft_alloc = Module["_kiss_fft_alloc"] = Module["asm"]["h"]).apply(null, arguments);
616
+ };
617
+ var _malloc = Module["_malloc"] = function() {
618
+ return (_malloc = Module["_malloc"] = Module["asm"]["i"]).apply(null, arguments);
619
+ };
620
+ var _free = Module["_free"] = function() {
621
+ return (_free = Module["_free"] = Module["asm"]["j"]).apply(null, arguments);
622
+ };
623
+ var _kiss_fft = Module["_kiss_fft"] = function() {
624
+ return (_kiss_fft = Module["_kiss_fft"] = Module["asm"]["k"]).apply(null, arguments);
625
+ };
626
+ var _kiss_fft_cleanup = Module["_kiss_fft_cleanup"] = function() {
627
+ return (_kiss_fft_cleanup = Module["_kiss_fft_cleanup"] = Module["asm"]["l"]).apply(null, arguments);
628
+ };
629
+ var _kiss_fftr_alloc = Module["_kiss_fftr_alloc"] = function() {
630
+ return (_kiss_fftr_alloc = Module["_kiss_fftr_alloc"] = Module["asm"]["m"]).apply(null, arguments);
631
+ };
632
+ var _kiss_fftr = Module["_kiss_fftr"] = function() {
633
+ return (_kiss_fftr = Module["_kiss_fftr"] = Module["asm"]["n"]).apply(null, arguments);
634
+ };
635
+ var _kiss_fftri = Module["_kiss_fftri"] = function() {
636
+ return (_kiss_fftri = Module["_kiss_fftri"] = Module["asm"]["o"]).apply(null, arguments);
637
+ };
638
+ var stackSave = Module["stackSave"] = function() {
639
+ return (stackSave = Module["stackSave"] = Module["asm"]["q"]).apply(null, arguments);
640
+ };
641
+ var stackRestore = Module["stackRestore"] = function() {
642
+ return (stackRestore = Module["stackRestore"] = Module["asm"]["r"]).apply(null, arguments);
643
+ };
644
+ var stackAlloc = Module["stackAlloc"] = function() {
645
+ return (stackAlloc = Module["stackAlloc"] = Module["asm"]["s"]).apply(null, arguments);
646
+ };
647
+ Module["ccall"] = ccall;
648
+ Module["cwrap"] = cwrap;
649
+ var calledRun;
650
+ dependenciesFulfilled = function runCaller() {
651
+ if (!calledRun)
652
+ run();
653
+ if (!calledRun)
654
+ dependenciesFulfilled = runCaller;
655
+ };
656
+ function run(args) {
657
+ args = args || arguments_;
658
+ if (runDependencies > 0) {
659
+ return;
660
+ }
661
+ preRun();
662
+ if (runDependencies > 0) {
663
+ return;
664
+ }
665
+ function doRun() {
666
+ if (calledRun)
667
+ return;
668
+ calledRun = true;
669
+ Module["calledRun"] = true;
670
+ if (ABORT)
671
+ return;
672
+ initRuntime();
673
+ readyPromiseResolve(Module);
674
+ if (Module["onRuntimeInitialized"])
675
+ Module["onRuntimeInitialized"]();
676
+ postRun();
677
+ }
678
+ if (Module["setStatus"]) {
679
+ Module["setStatus"]("Running...");
680
+ setTimeout(function() {
681
+ setTimeout(function() {
682
+ Module["setStatus"]("");
683
+ }, 1);
684
+ doRun();
685
+ }, 1);
686
+ } else {
687
+ doRun();
688
+ }
689
+ }
690
+ if (Module["preInit"]) {
691
+ if (typeof Module["preInit"] == "function")
692
+ Module["preInit"] = [Module["preInit"]];
693
+ while (Module["preInit"].length > 0) {
694
+ Module["preInit"].pop()();
695
+ }
696
+ }
697
+ run();
698
+ return KissFFTModule2.ready;
699
+ };
700
+ })();
701
+ if (typeof exports === "object" && typeof module === "object")
702
+ module.exports = KissFFTModule;
703
+ else if (typeof define === "function" && define["amd"])
704
+ define([], function() {
705
+ return KissFFTModule;
706
+ });
707
+ else if (typeof exports === "object")
708
+ exports["KissFFTModule"] = KissFFTModule;
709
+ }
710
+ });
711
+
712
+ // src/exports-bundle.ts
713
+ var exports_bundle_exports = {};
714
+ __export(exports_bundle_exports, {
715
+ KissFFT: () => KissFFT_default,
716
+ KissFFTModuleFactoryFn: () => KissFFTModuleFactoryFn,
717
+ KissFFTModuleFactoryWasm: () => KissFFTModuleFactoryWasm,
718
+ instantiateKissFFTModule: () => instantiateKissFFTModule_default,
719
+ instantiateKissFFTModuleFromFile: () => instantiateKissFFTModuleFromFile_default
720
+ });
721
+
722
+ // src/instantiateKissFFTModule.ts
723
+ var import_libkissfft = __toESM(require_libkissfft(), 1);
724
+
725
+ // libkissfft-wasm/libkissfft.wasm
726
+ var libkissfft_exports = {};
727
+ __export(libkissfft_exports, {
728
+ default: () => libkissfft_default
729
+ });
730
+ var libkissfft_default = __toBinary("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");
731
+
732
+ // src/instantiateKissFFTModule.ts
733
+ var KissFFTModuleFactoryFn = import_libkissfft.default;
734
+ var KissFFTModuleFactoryWasm = libkissfft_default;
735
+ var instantiateKissFFTModule = async (ModuleFactoryIn = import_libkissfft.default, wasmBinaryIn = libkissfft_default) => {
736
+ const g = globalThis;
737
+ if (g.AudioWorkletGlobalScope) {
738
+ g.importScripts = () => {
739
+ };
740
+ g.self = { location: { href: "" } };
741
+ }
742
+ const module = await ModuleFactoryIn({
743
+ wasmBinary: wasmBinaryIn
744
+ /*,
745
+ getPreloadedPackage: (remotePackageName: string, remotePackageSize: number) => {
746
+ if (remotePackageName === "libfaust-wasm.data") return dataBinaryIn.buffer;
747
+ return new ArrayBuffer(0);
748
+ }*/
749
+ });
750
+ if (g.AudioWorkletGlobalScope) {
751
+ delete g.importScripts;
752
+ delete g.self;
753
+ }
754
+ return module;
755
+ };
756
+ var instantiateKissFFTModule_default = instantiateKissFFTModule;
757
+
758
+ // src/instantiateKissFFTModuleFromFile.ts
759
+ var instantiateKissFFTModuleFromFile = async (jsFile, wasmFile = jsFile.replace(/c?js$/, "wasm"), dataFile = jsFile.replace(/c?js$/, "data")) => {
760
+ var _a, _b;
761
+ let Module;
762
+ let wasmBinary;
763
+ const jsCodeHead = /var (.+) = \(\(\) => \{/;
764
+ if (typeof globalThis.fetch === "function") {
765
+ let jsCode = await (await fetch(jsFile)).text();
766
+ jsCode = `${jsCode}
767
+ export default ${(_a = jsCode.match(jsCodeHead)) == null ? void 0 : _a[1]};
768
+ `;
769
+ const jsFileMod = URL.createObjectURL(new Blob([jsCode], { type: "text/javascript" }));
770
+ Module = (await import(
771
+ /* webpackIgnore: true */
772
+ jsFileMod
773
+ )).default;
774
+ wasmBinary = new Uint8Array(await (await fetch(wasmFile)).arrayBuffer());
775
+ } else {
776
+ const { promises: fs } = await import("fs");
777
+ const { pathToFileURL } = await import("url");
778
+ let jsCode = await fs.readFile(jsFile, { encoding: "utf-8" });
779
+ jsCode = `
780
+ import process from "process";
781
+ import * as path from "path";
782
+ import { createRequire } from "module";
783
+ import { fileURLToPath } from "url";
784
+
785
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
786
+ const __filename = fileURLToPath(import.meta.url);
787
+ const require = createRequire(import.meta.url);
788
+
789
+ ${jsCode}
790
+
791
+ export default ${(_b = jsCode.match(jsCodeHead)) == null ? void 0 : _b[1]};
792
+ `;
793
+ const jsFileMod = jsFile.replace(/c?js$/, "mjs");
794
+ await fs.writeFile(jsFileMod, jsCode);
795
+ Module = (await import(
796
+ /* webpackIgnore: true */
797
+ pathToFileURL(jsFileMod).href
798
+ )).default;
799
+ await fs.unlink(jsFileMod);
800
+ wasmBinary = (await fs.readFile(wasmFile)).buffer;
801
+ }
802
+ const module = await Module({
803
+ wasmBinary
804
+ /*,
805
+ getPreloadedPackage: (remotePackageName: string, remotePackageSize: number) => {
806
+ if (remotePackageName === "libfaust-wasm.data") return dataBinary;
807
+ return new ArrayBuffer(0);
808
+ }*/
809
+ });
810
+ return module;
811
+ };
812
+ var instantiateKissFFTModuleFromFile_default = instantiateKissFFTModuleFromFile;
813
+
814
+ // src/KissFFT.ts
815
+ var KissFFT = class {
816
+ constructor(kissFFTModule) {
817
+ const {
818
+ _kiss_fftr_alloc,
819
+ _kiss_fftr,
820
+ _kiss_fftri,
821
+ _kiss_fft,
822
+ _kiss_fft_alloc,
823
+ _kiss_fft_cleanup,
824
+ _free,
825
+ _malloc
826
+ } = kissFFTModule;
827
+ class FFT {
828
+ constructor(size) {
829
+ this.size = size;
830
+ this.fcfg = _kiss_fft_alloc(size, false);
831
+ this.icfg = _kiss_fft_alloc(size, true);
832
+ this.inptr = kissFFTModule._malloc(size * 8 + size * 8);
833
+ this.outptr = this.inptr + size * 8;
834
+ this.cin = new Float32Array(kissFFTModule.HEAPU8.buffer, this.inptr, size * 2);
835
+ this.cout = new Float32Array(kissFFTModule.HEAPU8.buffer, this.outptr, size * 2);
836
+ }
837
+ forward(cin) {
838
+ if (typeof cin === "function")
839
+ cin(this.cin);
840
+ else
841
+ this.cin.set(cin);
842
+ _kiss_fft(this.fcfg, this.inptr, this.outptr);
843
+ return this.cout;
844
+ }
845
+ inverse(cpx) {
846
+ if (typeof cpx === "function")
847
+ cpx(this.cin);
848
+ else
849
+ this.cin.set(cpx);
850
+ _kiss_fft(this.icfg, this.inptr, this.outptr);
851
+ return this.cout;
852
+ }
853
+ dispose() {
854
+ _free(this.inptr);
855
+ _kiss_fft_cleanup();
856
+ }
857
+ }
858
+ class FFTR {
859
+ constructor(size) {
860
+ this.size = size;
861
+ this.fcfg = _kiss_fftr_alloc(size, false);
862
+ this.icfg = _kiss_fftr_alloc(size, true);
863
+ this.rptr = _malloc(size * 4 + (size + 2) * 4);
864
+ this.cptr = this.rptr + size * 4;
865
+ this.ri = new Float32Array(kissFFTModule.HEAPU8.buffer, this.rptr, size);
866
+ this.ci = new Float32Array(kissFFTModule.HEAPU8.buffer, this.cptr, size + 2);
867
+ }
868
+ forward(real) {
869
+ if (typeof real === "function")
870
+ real(this.ri);
871
+ else
872
+ this.ri.set(real);
873
+ _kiss_fftr(this.fcfg, this.rptr, this.cptr);
874
+ return this.ci;
875
+ }
876
+ inverse(cpx) {
877
+ if (typeof cpx === "function")
878
+ cpx(this.ci);
879
+ else
880
+ this.ci.set(cpx);
881
+ _kiss_fftri(this.icfg, this.cptr, this.rptr);
882
+ return this.ri;
883
+ }
884
+ dispose() {
885
+ _free(this.rptr);
886
+ _kiss_fft_cleanup();
887
+ }
888
+ }
889
+ this._FFT = FFT;
890
+ this._FFTR = FFTR;
891
+ }
892
+ get FFT() {
893
+ return this._FFT;
894
+ }
895
+ get FFTR() {
896
+ return this._FFTR;
897
+ }
898
+ };
899
+ var KissFFT_default = KissFFT;
900
+
901
+ // src/index-bundle-iife.ts
902
+ globalThis.kissfftwasm = exports_bundle_exports;
903
+ })();
904
+ //# sourceMappingURL=index.js.map