From 447692106923167d3c0ddc308041bb79d4a944ca Mon Sep 17 00:00:00 2001 From: "Jade (Rose) Rowland" Date: Sat, 10 Jan 2026 16:46:11 -0500 Subject: [PATCH] use releasenode --- packages/superdough/superdough.mjs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index dea314ea2..41b5ce976 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -419,7 +419,7 @@ class Chain { return this; } releaseNodes() { - this.audioNodes.forEach((n) => (isPoolable(n) ? releaseNodeToPool(n) : n?.disconnect())); + this.audioNodes.forEach((n) => (isPoolable(n) ? releaseNodeToPool(n) : releaseAudioNode(n))); this.audioNodes = []; this.tails = []; } @@ -536,10 +536,17 @@ export const superdough = async (value, t, hapDuration, cps = 0.5, cycle = 0.5) nodes.main['source'] = [sourceNode]; } else if (getSound(s)) { const { onTrigger } = getSound(s); - const onEnded = () => { - chain.releaseNodes(); - activeSoundSources.delete(chainID); - }; + + const onEnded = () => + webAudioTimeout( + ac, + () => { + chain.releaseNodes(); + activeSoundSources.delete(chainID); + }, + 0, + endWithRelease, + ); const soundHandle = await onTrigger(t, value, onEnded, cps);