[wip] Audio 3D position/panning changes (add panning, both panning and position off by default)#1557
Draft
justin-espedal wants to merge 2 commits into
Draft
[wip] Audio 3D position/panning changes (add panning, both panning and position off by default)#1557justin-espedal wants to merge 2 commits into
justin-espedal wants to merge 2 commits into
Conversation
Position shouldn't be applied by default, since it's extra code running that may not be needed, and in some cases can significantly alter the sound quality. Specifically, spatializing sounds on HTML5 can make sounds more muffled. This change caches the position in AudioSource, and all getPosition functions in the AudioSource backends are replaced with accessing the cached position value.
- Panning and position aren't designed to be used together, so their exclusivity of each other is now enforced by AudioSource. - Like position, panning can cause extra code to run, so it's null by default. - Panning is supported natively on Flash, and uses Howler stereo for HTML5, but relies on an approximation using 3D spatial sounds for targets that use OpenAL.
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
There are a few issues with sound position that this PR aims to improve.
3D position is used to simulate panning on non-Flash targets. This is ok for native, where we use OpenAL and there's no alternative for panning. On HTML5, however, howler has a stereo mode for playing sounds. That gives a better result than using the awkwardly simulated panning based on 3D audio.
Using 3D audio at all on HTML5 can lead to serious degradation of audio quality ("muffled" sounds).
Stencyl Issue Tracker: Muffled Sounds On HTML5
Using 3D audio positioning at all can lead to extra audio processing code being run, even if the position is (0, 0, 0), so it should be avoided if not desired.
This makes position a nullable value, null by default, which is a change to the AudioSource API.