diff --git a/app/static/js/worklets/fluidsynth-bridge.js b/app/static/js/worklets/fluidsynth-bridge.js index d854394..9cb24fe 100644 --- a/app/static/js/worklets/fluidsynth-bridge.js +++ b/app/static/js/worklets/fluidsynth-bridge.js @@ -16,16 +16,18 @@ class FluidSynthBridge extends AudioWorkletProcessor { const out = outputs[0]; if (!out) return true; const len = out[0].length; - const l = this.leftQ; - const r = this.rightQ; - let ri = 0; + const qL = this.leftQ; + const qR = this.rightQ; + let fi = 0; + let si = 0; for (let i = 0; i < len; i++) { - if (ri >= l.length) { out[0][i] = 0; out[1][i] = 0; continue; } - out[0][i] = l[ri]; - out[1][i] = r[ri]; - ri++; + if (fi >= qL.length) { out[0][i] = 0; out[1][i] = 0; continue; } + out[0][i] = qL[fi][si]; + out[1][i] = qR[fi][si]; + si++; + if (si >= qL[fi].length) { fi++; si = 0; } } - if (ri > 0) { this.leftQ.splice(0, ri); this.rightQ.splice(0, ri); } + if (fi > 0) { this.leftQ.splice(0, fi); this.rightQ.splice(0, fi); } return true; } }