From a2d5d39ec4aef1260b38b822ac915e9018d266be Mon Sep 17 00:00:00 2001 From: anticore Date: Mon, 8 Apr 2024 15:29:55 +0100 Subject: [PATCH] PR improvements --- examples/code/wasm/index.html | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/examples/code/wasm/index.html b/examples/code/wasm/index.html index 76b6bc6..9429b3e 100644 --- a/examples/code/wasm/index.html +++ b/examples/code/wasm/index.html @@ -17,31 +17,25 @@ .then((response) => response.arrayBuffer()) .then((bytes) => WebAssembly.instantiate(bytes, { m: Math })) .then(({ instance }) => { - const context = new AudioContext(); + const context = new AudioContext({ sampleRate: 44100 }); - let wasmBuffer = instance.exports.t.value - ? new Int16Array( - instance.exports.m.buffer, - instance.exports.s.value, - instance.exports.l.value / 2 - ) - : new Float32Array( - instance.exports.m.buffer, - instance.exports.s.value, - instance.exports.l.value / 4 - ); + let frames = instance.exports.t.value + ? instance.exports.l.value / 4 + : instance.exports.l.value / 8; - const buffer = context.createBuffer( - 2, - context.sampleRate * 2, - context.sampleRate + let wasmBuffer = new Float32Array( + instance.exports.m.buffer, + instance.exports.s.value, + frames * 2 ); + const buffer = context.createBuffer(2, frames, context.sampleRate); + // convert wasm buffer to audio buffer for (let channel = 0; channel < 2; channel++) { const buffering = buffer.getChannelData(channel); - for (let i = 0; i < context.sampleRate * 2; i++) { - buffering[i] = wasmBuffer[i]; + for (let i = 0; i < frames; i++) { + buffering[i] = wasmBuffer[i * 2 + channel]; } }