Ich versuche Volume-Hüllkurven zu implementieren, die zu einem bestimmten Zeitpunkt neu gestartet werden können, auch wenn es sich gerade in der Mitte einer Param-Bewegung befindet Finden Sie heraus, wie Sie dies ohne Klicks in den resultierenden Audiodaten tun können (die in Bezug auf den Zeitpunkt, an dem sie auftreten, etwas unregelmäßig zu sein scheinen).Wie kann ich ein sich derzeit änderndes AudioParam in der Web Audio API korrekt löschen?
Ist das überhaupt möglich? Ich sehe, dass AudioParam.cancelScheduledValues()
"alle geplanten zukünftigen Änderungen an der AudioParam" bricht, aber ich bin mir nicht sicher, was passiert bei einer Änderung, die gerade läuft.
Dies ist der Code, den ich verwende, um die Lautstärke-Hüllkurve zu starten/neu zu starten.
var now = context.currentTime;
var currentVol = gain.gain.value;
gain.gain.cancelScheduledValues(now);
gain.gain.setValueAtTime(currentVol, now);
gain.gain.exponentialRampToValueAtTime(1, now + volAttack);
gain.gain.exponentialRampToValueAtTime(0.000001, now + volAttack + volDecay);
Ich habe genau das gleiche Problem, habe meine Haare seit Tagen gezogen. Das Problem ist, dass wenn Sie die nächste Note einplanen, geplante Werte gelöscht werden, so dass die Rampe der vorherigen Note vollständig aufgehoben wird, wenn der Decay lang genug ist. –