I’m using BabylonJS 8.41.1 with AudioEngineV2 and a custom audio wrapper (global AudioManager + many SoundPlayer instances).
I’m not calling setValueCurveAtTime directly anywhere in my code.
From time to time I see this error in the browser console, which is already being suppressed by Babylon’s AudioInitializer:
Uncaught NotSupportedError: Failed to execute 'setValueCurveAtTime' on 'AudioParam': setValueCurveAtTime(..., 1267.800816326531, 0.01) overlaps setValueCurveAtTime(..., 1267.800816326531, 0.01)
As I understand it, this means that two setValueCurveAtTime calls for the same AudioParam overlap in time (same startTime and duration), and the browser throws NotSupportedError.
In my game I have:
- many long looping environment sounds,
- frequent updates of audio listener orientation (camera moves/rotates a lot),
- and some volume fades on top of that.
Questions:
-
Is this error expected in Babylon 8.41.1 when multiple internal curves overlap (for example for listener orientation or other spatial parameters)?
-
Is there a recommended pattern to avoid these overlaps – e.g. cancelling previous automation, limiting update frequency, or some API I should prefer/avoid when doing fades and frequent audio updates? @docEdub
This type of error in Firefox (and the same in Chrome, but rarely):
Uncaught DOMException: AudioParam.setValueCurveAtTime: Can't add events during a curve event
setTargetValue https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:1049
set https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:1049
_updatePosition https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:20873
_updatePosition https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:16143
set https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:16143
setPosition https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:22973
_onRegisterAfterWorldMatrixUpdate https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:22973
_registerFunc https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:22973
notifyObservers https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:17931
computeWorldMatrix https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:1770
getWorldMatrix https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:20873
computeWorldMatrix https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:1770
isReady https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:22966
isReady https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:19493
start https://game.1kit.net/assets/index-ZH9WTQJI.js:184
_renderFrame https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:20199
_processFrame https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:20199
_renderLoop https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:18149
_boundRenderFunction https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:20197
babylon-core-D2M0Dc4X.js:1049:2685
setTargetValue https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:1049
set https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:1049
_updatePosition https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:20873
_updatePosition https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:16143
set https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:16143
setPosition https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:22973
_onRegisterAfterWorldMatrixUpdate https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:22973
_registerFunc https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:22973
notifyObservers https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:17931
computeWorldMatrix https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:1770
getWorldMatrix https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:20873
computeWorldMatrix https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:1770
isReady https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:22966
isReady https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:19493
start https://game.1kit.net/assets/index-ZH9WTQJI.js:184
_renderFrame https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:20199
_processFrame https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:20199
_renderLoop https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:18149
_boundRenderFunction https://game.1kit.net/assets/babylon-core-D2M0Dc4X.js:20197
Unfortunatelly I didn’t create PlayGround yet.
I still debug my code and trying to reproduce. Maybe you know where to look next? I can’t even pinpoint exactly when this started, somewhere around version 8.40.0 or later.







