diff --git a/app/static/js/services/soundfontPlayer.js b/app/static/js/services/soundfontPlayer.js index b44d2ad..d6e8f6d 100644 --- a/app/static/js/services/soundfontPlayer.js +++ b/app/static/js/services/soundfontPlayer.js @@ -163,14 +163,11 @@ stopNote: function (channel, pitch) { if (channel < 0 || channel > 15) return; - console.log("[SonicSF] stopNote ch=" + channel + " pitch=" + pitch + " init=" + _initialized); if (_initialized && _synthInstance) { - try { _synthInstance.noteOff(channel, pitch); } catch (e) { - console.warn("[SonicSF] noteOff threw:", e); - } - } else { - // Oscillator fallback: stop is handled by the 60000ms timeout - // Nothing to do — oscillator auto-stops after durationMs + try { _synthInstance.noteOff(channel, pitch); } catch (e) {} + try { _synthInstance.controllerChange(channel, 64, 0); } catch (e) {} + // Also send noteOff with velocity=0 for safety + try { _synthInstance.noteOff(channel, pitch, 0); } catch (e) {} } },