-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add audio engine v2 #15839
base: master
Are you sure you want to change the base?
Add audio engine v2 #15839
Conversation
This change adds the initial audio engine v2 implementation and introduces the API for sound and streaming sound creation and playback.
Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s). |
This change gets the CI's `Test UMD build` step to pass.
Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s). |
Am I remembering correctly from previous conversations that the new audio engine will implement the existing interfaces, or no? |
Snapshot stored with reference name: Test environment: To test a playground add it to the URL, for example: https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15839/merge/index.html#WGZLGJ#4600 Links to test babylon tools with this snapshot: https://playground.babylonjs.com/?snapshot=refs/pull/15839/merge To test the snapshot in the playground with a playground ID add it after the snapshot query string: https://playground.babylonjs.com/?snapshot=refs/pull/15839/merge#BCU1XR#0 |
Visualization tests for WebGPU (Experimental) |
WebGL2 visualization test reporter: |
Yes, this is something we discussed as a possibility. |
If not given, the `engine` defaults to the last created engine.
A document body is required for the underlying HTMLMediaElement used in `WebAudioStreaminSoundInstance`.
When a streaming instance is paused before it transitions from `Starting` to `Started`, the start offset is being set incorrectly when resumed. This change fixes the issue by setting the related timing variables correctly and initializing the start time to `Infinity` to indicate that the instance has not actually started, yet.
Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at If tests were successful afterwards, this report might not be available anymore. |
This change makes the playground intellisense list the valid types instead of hiding them behind a single custom type.
c558cd4
to
a8e734a
Compare
WebGL2 visualization test reporter: |
Visualization tests for WebGPU (Experimental) |
It is not needed. The sound plays without adding it to the document body.
This is particularly important for Vision Pro because it suspends/interrupts the audio context when exiting immersive mode.
The WebAudio-based streaming sound class's underlying `HTMLMediaElement` play and stop functions don't have `waitTime` parameters like the static sound class's `AudioBufferSourceNode` does. I tried implementing them in the streaming sound class using `setTimeout`, but the timing is too flaky, so this change removes the parameter completely. Note that the `waitTime` parameter for the static sound classes remains, but it is moved to the end of the parameter list so the streaming and static sound class play signatures are consistent with each other.
Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at If tests were successful afterwards, this report might not be available anymore. |
This change adds the initial audio engine v2 implementation and introduces the API for sound and streaming sound creation and playback.