@mimium/mimium-webaudio 4.0.1 → 4.0.3

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.
package/Readme.md CHANGED
@@ -59,7 +59,7 @@ setupMimiumAudioWorklet(
59
59
  ): Promise<MimiumProcessorNode>
60
60
  ```
61
61
 
62
- - `libBaseUrl`: Base URL for standard mimium libraries (default: `https://raw.githubusercontent.com/mimium-org/mimium-rs/dev/lib/`).
62
+ - `libBaseUrl`: Base URL for standard mimium libraries (default: `https://raw.githubusercontent.com/mimium-org/mimium-rs/main/lib/`).
63
63
  - `moduleBaseUrl`: Base URL for user modules resolved by `mod` / `include` (default: current page base URL).
64
64
 
65
65
  For code that uses standard library modules (`use osc::sinwave`, etc.), calling `preloadMimiumLibCache` before `setupMimiumAudioWorklet` is recommended.
@@ -2,7 +2,7 @@ var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
4
  import "./textencoder-B0AgIAQT.js";
5
- import { initSync as g, Config as f, Context as y } from "./mimium_web-DPSIpWn3.js";
5
+ import { initSync as g, Config as f, Context as w } from "./mimium_web-45qAhlDr.js";
6
6
  const d = [
7
7
  "core.mmm",
8
8
  "delay.mmm",
@@ -14,12 +14,12 @@ const d = [
14
14
  "reactive.mmm",
15
15
  "reverb.mmm"
16
16
  ];
17
- function _(n) {
18
- return n.replace(/\\/g, "/").replace(/^\.\//, "").replace(/^\//, "");
17
+ function _(l) {
18
+ return l.replace(/\\/g, "/").replace(/^\.\//, "").replace(/^\//, "");
19
19
  }
20
- function w(n) {
21
- const s = _(n).replace(/^lib\//, "");
22
- return [.../* @__PURE__ */ new Set([n, s, `./${s}`, `lib/${s}`, `/lib/${s}`])];
20
+ function y(l) {
21
+ const s = _(l).replace(/^lib\//, "");
22
+ return [.../* @__PURE__ */ new Set([l, s, `./${s}`, `lib/${s}`, `/lib/${s}`])];
23
23
  }
24
24
  class b extends AudioWorkletProcessor {
25
25
  constructor() {
@@ -56,11 +56,11 @@ class b extends AudioWorkletProcessor {
56
56
  break;
57
57
  }
58
58
  }
59
- async compile(e, s, r, m = "", p = "https://raw.githubusercontent.com/mimium-org/mimium-rs/dev/lib/", c = []) {
59
+ async compile(e, s, r, m = "", p = "https://raw.githubusercontent.com/mimium-org/mimium-rs/main/lib/", c = []) {
60
60
  this.isCompiled = false, this.context = null, this.interleaved_input = new Float32Array(), this.interleaved_output = new Float32Array();
61
- let l = f.new();
62
- l.sample_rate = e, l.buffer_size = s;
63
- const t = new y(l);
61
+ let n = f.new();
62
+ n.sample_rate = e, n.buffer_size = s;
63
+ const t = new w(n);
64
64
  let a = {
65
65
  type: "compile_error",
66
66
  data: { message: "compile did not complete." }
@@ -79,10 +79,10 @@ class b extends AudioWorkletProcessor {
79
79
  );
80
80
  }
81
81
  c.forEach((o) => {
82
- w(o.path).forEach((u) => {
82
+ y(o.path).forEach((u) => {
83
83
  t.put_virtual_file_cache(u, o.content);
84
84
  });
85
- }), t.compile_direct(r);
85
+ }), await t.compile(r);
86
86
  const h = t.get_output_channels() || 0;
87
87
  if (h <= 0) {
88
88
  this.context = null, this.isCompiled = false, this.interleaved_input = new Float32Array(), this.interleaved_output = new Float32Array(), a = {
@@ -113,8 +113,8 @@ class b extends AudioWorkletProcessor {
113
113
  process(e, s, r) {
114
114
  var _a, _b2;
115
115
  if (this.context && this.isCompiled) {
116
- const m = this.context.get_input_channels(), p = this.context.get_output_channels(), c = e[0], l = s[0];
117
- if (this.interleaved_input.length !== (((_a = c == null ? void 0 : c[0]) == null ? void 0 : _a.length) ?? 0) * m || this.interleaved_output.length !== (((_b2 = l == null ? void 0 : l[0]) == null ? void 0 : _b2.length) ?? 0) * p)
116
+ const m = this.context.get_input_channels(), p = this.context.get_output_channels(), c = e[0], n = s[0];
117
+ if (this.interleaved_input.length !== (((_a = c == null ? void 0 : c[0]) == null ? void 0 : _a.length) ?? 0) * m || this.interleaved_output.length !== (((_b2 = n == null ? void 0 : n[0]) == null ? void 0 : _b2.length) ?? 0) * p)
118
118
  return true;
119
119
  c.forEach((t, a) => {
120
120
  for (let i = 0; i < t.length; i++)
@@ -128,7 +128,7 @@ class b extends AudioWorkletProcessor {
128
128
  data: { message: t instanceof Error ? t.message : String(t) }
129
129
  }), true;
130
130
  }
131
- l.forEach((t, a) => {
131
+ n.forEach((t, a) => {
132
132
  for (let i = 0; i < t.length; i++)
133
133
  t[i] = this.interleaved_output[p * i + a];
134
134
  });
@@ -1 +1 @@
1
- {"version":3,"file":"audioprocessor.mjs","sources":["../src/audioprocessor.mts"],"sourcesContent":["import \"./textencoder.mjs\";\nimport { initSync, Context, Config } from \"mimium-web\";\n\nconst STANDARD_LIB_FILES = [\n \"core.mmm\",\n \"delay.mmm\",\n \"env.mmm\",\n \"filter.mmm\",\n \"math.mmm\",\n \"noise.mmm\",\n \"osc.mmm\",\n \"reactive.mmm\",\n \"reverb.mmm\",\n];\n\nfunction normalizeVirtualPath(path: string): string {\n return path.replace(/\\\\/g, \"/\").replace(/^\\.\\//, \"\").replace(/^\\//, \"\");\n}\n\nfunction expandVirtualPathAliases(path: string): string[] {\n const normalized = normalizeVirtualPath(path);\n const strippedLib = normalized.replace(/^lib\\//, \"\");\n return [...new Set([path, strippedLib, `./${strippedLib}`, `lib/${strippedLib}`, `/lib/${strippedLib}`])];\n}\n\nexport class MimiumProcessor extends AudioWorkletProcessor {\n context: Context | null;\n isCompiled: boolean;\n interleaved_input: Float32Array = new Float32Array();\n interleaved_output: Float32Array = new Float32Array();\n\n constructor() {\n super();\n this.context = null;\n this.isCompiled = false;\n this.port.onmessage = (event) => {\n this.onmessage(event.data);\n };\n }\n onmessage(event: MessageEvent<any>) {\n console.log(\"onmessage \", event);\n switch (event.type) {\n case \"send-wasm-module\": {\n console.log(\"start_loading\");\n const wasmBinary = event.data as ArrayBuffer; //this is invalid conversion for workaround.\n WebAssembly.compile(wasmBinary)\n .then((wasm) => {\n initSync({ module: wasm });\n console.log(\"wasm module loaded,sending message\");\n this.port.postMessage({ type: \"wasm-module-loaded\" });\n })\n .catch((e) => {\n console.error(\"wasm module load error, \", e);\n this.port.postMessage({ type: \"error_wasm_load\", data: e });\n });\n\n break;\n }\n case \"compile\":\n void this.compile(\n event.data.samplerate,\n event.data.buffersize,\n event.data.src,\n event.data.moduleBaseUrl,\n event.data.libBaseUrl,\n event.data.virtualFiles\n );\n break;\n }\n }\n public async compile(\n samplerate: number,\n buffersize: number,\n src: string,\n moduleBaseUrl: string = \"\",\n libBaseUrl: string = \"https://raw.githubusercontent.com/mimium-org/mimium-rs/dev/lib/\",\n virtualFiles: Array<{ path: string; content: string }> = []\n ) {\n this.isCompiled = false;\n this.context = null;\n this.interleaved_input = new Float32Array();\n this.interleaved_output = new Float32Array();\n\n let config = Config.new();\n config.sample_rate = samplerate;\n config.buffer_size = buffersize;\n const nextContext = new Context(config); //io channel is written in context.vonfig\n\n let compileMessage: {\n type: \"compile_finished\" | \"compile_error\";\n data: { output_channels?: number; message?: string };\n } = {\n type: \"compile_error\",\n data: { message: \"compile did not complete.\" },\n };\n\n try {\n if (moduleBaseUrl) {\n nextContext.set_module_base_url(moduleBaseUrl);\n }\n const virtualFileNames = new Set(\n virtualFiles.map((file) => normalizeVirtualPath(file.path).replace(/^lib\\//, \"\"))\n );\n const hasStdLibVirtualFiles = STANDARD_LIB_FILES.every((libFile) =>\n virtualFileNames.has(libFile)\n );\n\n if (!hasStdLibVirtualFiles) {\n const missing = STANDARD_LIB_FILES.filter((libFile) => !virtualFileNames.has(libFile));\n throw new Error(\n `virtual lib cache is incomplete. missing=[${missing.join(\", \")}]. worklet does not fetch libs; preload on main thread is required. baseUrl=${libBaseUrl}`\n );\n }\n\n virtualFiles.forEach((file) => {\n expandVirtualPathAliases(file.path).forEach((alias) => {\n nextContext.put_virtual_file_cache(alias, file.content);\n });\n });\n nextContext.compile_direct(src);\n\n const outputChannels = nextContext.get_output_channels() || 0;\n if (outputChannels <= 0) {\n this.context = null;\n this.isCompiled = false;\n this.interleaved_input = new Float32Array();\n this.interleaved_output = new Float32Array();\n compileMessage = {\n type: \"compile_error\",\n data: { message: \"compile failed: compile finished with zero output channels.\" },\n };\n return;\n }\n\n this.interleaved_input = new Float32Array(\n buffersize * nextContext.get_input_channels()\n );\n this.interleaved_output = new Float32Array(\n buffersize * outputChannels\n );\n this.context = nextContext;\n this.isCompiled = true;\n\n compileMessage = {\n type: \"compile_finished\",\n data: { output_channels: outputChannels },\n };\n } catch (e) {\n this.context = null;\n this.isCompiled = false;\n this.interleaved_input = new Float32Array();\n this.interleaved_output = new Float32Array();\n\n compileMessage = {\n type: \"compile_error\",\n data: {\n message: `compile failed: ${e instanceof Error ? e.message : String(e)}`,\n },\n };\n } finally {\n this.port.postMessage(compileMessage);\n }\n }\n public process(\n inputs: Float32Array[][],\n outputs: Float32Array[][],\n parameter: Record<string, Float32Array>\n ) {\n if (this.context && this.isCompiled) {\n const ichannels = this.context.get_input_channels();\n const ochannels = this.context.get_output_channels();\n const input = inputs[0];\n const output = outputs[0];\n if (\n this.interleaved_input.length !== (input?.[0]?.length ?? 0) * ichannels ||\n this.interleaved_output.length !== (output?.[0]?.length ?? 0) * ochannels\n ) {\n return true;\n }\n input.forEach((input, ich) => {\n for (let i = 0; i < input.length; i++) {\n this.interleaved_input[ichannels * i + ich] = input[i];\n }\n });\n this.interleaved_output.fill(0);\n try {\n this.context.process(this.interleaved_input, this.interleaved_output);\n } catch (e) {\n this.context = null;\n this.isCompiled = false;\n this.port.postMessage({\n type: \"runtime_error\",\n data: { message: e instanceof Error ? e.message : String(e) },\n });\n return true;\n }\n output.forEach((output, och) => {\n for (let i = 0; i < output.length; i++) {\n output[i] = this.interleaved_output[ochannels * i + och];\n }\n });\n }\n return true;\n }\n}\n\nregisterProcessor(\"MimiumProcessor\", MimiumProcessor);\n"],"names":["STANDARD_LIB_FILES","normalizeVirtualPath","path","expandVirtualPathAliases","strippedLib","MimiumProcessor","event","wasmBinary","wasm","initSync","e","samplerate","buffersize","src","moduleBaseUrl","libBaseUrl","virtualFiles","config","Config","nextContext","Context","compileMessage","virtualFileNames","file","libFile","missing","alias","outputChannels","inputs","outputs","parameter","ichannels","ochannels","input","output","ich","och"],"mappings":"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"}
1
+ {"version":3,"file":"audioprocessor.mjs","sources":["../src/audioprocessor.mts"],"sourcesContent":["import \"./textencoder.mjs\";\nimport { initSync, Context, Config } from \"mimium-web\";\n\nconst STANDARD_LIB_FILES = [\n \"core.mmm\",\n \"delay.mmm\",\n \"env.mmm\",\n \"filter.mmm\",\n \"math.mmm\",\n \"noise.mmm\",\n \"osc.mmm\",\n \"reactive.mmm\",\n \"reverb.mmm\",\n];\n\nfunction normalizeVirtualPath(path: string): string {\n return path.replace(/\\\\/g, \"/\").replace(/^\\.\\//, \"\").replace(/^\\//, \"\");\n}\n\nfunction expandVirtualPathAliases(path: string): string[] {\n const normalized = normalizeVirtualPath(path);\n const strippedLib = normalized.replace(/^lib\\//, \"\");\n return [...new Set([path, strippedLib, `./${strippedLib}`, `lib/${strippedLib}`, `/lib/${strippedLib}`])];\n}\n\nexport class MimiumProcessor extends AudioWorkletProcessor {\n context: Context | null;\n isCompiled: boolean;\n interleaved_input: Float32Array = new Float32Array();\n interleaved_output: Float32Array = new Float32Array();\n\n constructor() {\n super();\n this.context = null;\n this.isCompiled = false;\n this.port.onmessage = (event) => {\n this.onmessage(event.data);\n };\n }\n onmessage(event: MessageEvent<any>) {\n console.log(\"onmessage \", event);\n switch (event.type) {\n case \"send-wasm-module\": {\n console.log(\"start_loading\");\n const wasmBinary = event.data as ArrayBuffer; //this is invalid conversion for workaround.\n WebAssembly.compile(wasmBinary)\n .then((wasm) => {\n initSync({ module: wasm });\n console.log(\"wasm module loaded,sending message\");\n this.port.postMessage({ type: \"wasm-module-loaded\" });\n })\n .catch((e) => {\n console.error(\"wasm module load error, \", e);\n this.port.postMessage({ type: \"error_wasm_load\", data: e });\n });\n\n break;\n }\n case \"compile\":\n void this.compile(\n event.data.samplerate,\n event.data.buffersize,\n event.data.src,\n event.data.moduleBaseUrl,\n event.data.libBaseUrl,\n event.data.virtualFiles\n );\n break;\n }\n }\n public async compile(\n samplerate: number,\n buffersize: number,\n src: string,\n moduleBaseUrl: string = \"\",\n libBaseUrl: string = \"https://raw.githubusercontent.com/mimium-org/mimium-rs/main/lib/\",\n virtualFiles: Array<{ path: string; content: string }> = []\n ) {\n this.isCompiled = false;\n this.context = null;\n this.interleaved_input = new Float32Array();\n this.interleaved_output = new Float32Array();\n\n let config = Config.new();\n config.sample_rate = samplerate;\n config.buffer_size = buffersize;\n const nextContext = new Context(config); //io channel is written in context.vonfig\n\n let compileMessage: {\n type: \"compile_finished\" | \"compile_error\";\n data: { output_channels?: number; message?: string };\n } = {\n type: \"compile_error\",\n data: { message: \"compile did not complete.\" },\n };\n\n try {\n if (moduleBaseUrl) {\n nextContext.set_module_base_url(moduleBaseUrl);\n }\n const virtualFileNames = new Set(\n virtualFiles.map((file) => normalizeVirtualPath(file.path).replace(/^lib\\//, \"\"))\n );\n const hasStdLibVirtualFiles = STANDARD_LIB_FILES.every((libFile) =>\n virtualFileNames.has(libFile)\n );\n\n if (!hasStdLibVirtualFiles) {\n const missing = STANDARD_LIB_FILES.filter((libFile) => !virtualFileNames.has(libFile));\n throw new Error(\n `virtual lib cache is incomplete. missing=[${missing.join(\", \")}]. worklet does not fetch libs; preload on main thread is required. baseUrl=${libBaseUrl}`\n );\n }\n\n virtualFiles.forEach((file) => {\n expandVirtualPathAliases(file.path).forEach((alias) => {\n nextContext.put_virtual_file_cache(alias, file.content);\n });\n });\n await nextContext.compile(src);\n\n const outputChannels = nextContext.get_output_channels() || 0;\n if (outputChannels <= 0) {\n this.context = null;\n this.isCompiled = false;\n this.interleaved_input = new Float32Array();\n this.interleaved_output = new Float32Array();\n compileMessage = {\n type: \"compile_error\",\n data: { message: \"compile failed: compile finished with zero output channels.\" },\n };\n return;\n }\n\n this.interleaved_input = new Float32Array(\n buffersize * nextContext.get_input_channels()\n );\n this.interleaved_output = new Float32Array(\n buffersize * outputChannels\n );\n this.context = nextContext;\n this.isCompiled = true;\n\n compileMessage = {\n type: \"compile_finished\",\n data: { output_channels: outputChannels },\n };\n } catch (e) {\n this.context = null;\n this.isCompiled = false;\n this.interleaved_input = new Float32Array();\n this.interleaved_output = new Float32Array();\n\n compileMessage = {\n type: \"compile_error\",\n data: {\n message: `compile failed: ${e instanceof Error ? e.message : String(e)}`,\n },\n };\n } finally {\n this.port.postMessage(compileMessage);\n }\n }\n public process(\n inputs: Float32Array[][],\n outputs: Float32Array[][],\n parameter: Record<string, Float32Array>\n ) {\n if (this.context && this.isCompiled) {\n const ichannels = this.context.get_input_channels();\n const ochannels = this.context.get_output_channels();\n const input = inputs[0];\n const output = outputs[0];\n if (\n this.interleaved_input.length !== (input?.[0]?.length ?? 0) * ichannels ||\n this.interleaved_output.length !== (output?.[0]?.length ?? 0) * ochannels\n ) {\n return true;\n }\n input.forEach((input, ich) => {\n for (let i = 0; i < input.length; i++) {\n this.interleaved_input[ichannels * i + ich] = input[i];\n }\n });\n this.interleaved_output.fill(0);\n try {\n this.context.process(this.interleaved_input, this.interleaved_output);\n } catch (e) {\n this.context = null;\n this.isCompiled = false;\n this.port.postMessage({\n type: \"runtime_error\",\n data: { message: e instanceof Error ? e.message : String(e) },\n });\n return true;\n }\n output.forEach((output, och) => {\n for (let i = 0; i < output.length; i++) {\n output[i] = this.interleaved_output[ochannels * i + och];\n }\n });\n }\n return true;\n }\n}\n\nregisterProcessor(\"MimiumProcessor\", MimiumProcessor);\n"],"names":["STANDARD_LIB_FILES","normalizeVirtualPath","path","expandVirtualPathAliases","strippedLib","MimiumProcessor","event","wasmBinary","wasm","initSync","e","samplerate","buffersize","src","moduleBaseUrl","libBaseUrl","virtualFiles","config","Config","nextContext","Context","compileMessage","virtualFileNames","file","libFile","missing","alias","outputChannels","inputs","outputs","parameter","ichannels","ochannels","input","output","ich","och"],"mappings":"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"}