Adaptive 3D Spatial Audio for Godot 4
- Fully dynamic 3d audio with 13 presets
Adaptive audio is an audio player that will adapt to it's surroundings. It will apply effects accordingly to make the sounds more immersive. Like if it's played in an open area it will apply an echo or if it's played in a room it will apply a reverb. It also approximately calculates the room size to determine the reverberation size. It will also dampens the audio if it's blocked.
The addon is free to use for all purposes. I would appreciate proper credit!
- Move adaptive-audio-player-main into your project files
- Set aaplayout.tres to be your default bus layout
- Create an autoload for player_autoload.gd and name it PlayerAutoload*
- Set PlayerAutoload.player to your player node*
- Reload your project
- Add an AdaptiveAudioPlayer node and give it a sound file
- Play the sound using play_sfx()*
Adaption Range
This is basically the length of the raycasts. 25 seems to be an okay value but you might need to increase it for your own project.
AAP AutoPlay
Use this instead of default Autoplay if you want the audio to adapt it's surroundings.
Debug
This will print info about the room size and current preset. You might need it to adjust the threshold values.
Continuous Adapt
Enabling ContinuousAdapt will make sure adaptation happens everyframe if not enabled it will only adapt once. If your audio source is dynamic make sure to enable ContinuousAdapt
Thresholds
You can adjust thresholds for each preset to your liking. Although I recommend leaving it as is since I find this settings to work best for most situations.
You can edit each preset to your liking as well.
Check out the demo here: https://berryberryniceu.itch.io/adaptive-audio-for-godot-demo
*Using play() will play the audio but won't adapt so use play_sfx() instead
*Steps 3 and 4 is optional but recommended