spectral-freeze-wam
v0.2.2
Published
Headless Web Audio Module build of Spectral Freeze
Maintainers
Readme
spectral-freeze-wam
Headless Web Audio Module build of Spectral Freeze.
This package ships:
dist/spectral_freeze_wam.wasm— Rust DSP compiled towasm32-unknown-unknowndist/SpectralFreezeWamProcessor.js— AudioWorklet processor that loads the wasm directlydist/SpectralFreezeWamNode.js— main-thread node wrapperdist/index.js— package entry point
The WAM is intentionally headless: hosts should call getParameterInfo() and render controls themselves. There is no createGui().
Usage
import SpectralFreezeWam from "spectral-freeze-wam";
const audioContext = new AudioContext();
const node = await SpectralFreezeWam.create(audioContext);
source.connect(node).connect(audioContext.destination);
node.setParameterValue("freeze", 1);
node.setParameterValue("organic", 0.5);
console.log(node.getParameterInfo());If your bundler needs explicit asset URLs:
const node = await SpectralFreezeWam.create(audioContext, {
wasmUrl: new URL("spectral-freeze-wam/dist/spectral_freeze_wam.wasm", import.meta.url),
processorUrl: new URL("spectral-freeze-wam/dist/SpectralFreezeWamProcessor.js", import.meta.url),
});SharedArrayBuffer requirement
Parameter updates use a SharedArrayBuffer ring buffer, not postMessage, so browser pages generally need cross-origin isolation headers:
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp