Spatialised audio system in Godot with support for occlusion and propagation

A prototype for an audio propagation system I designed. This system deals with audio occlusion, indirect audio, and audio propagation through an environment. This is only a prototype, so there are still lots of improvements that could be made. Let me know what you think :smiley:

13 Likes

I like it, do you employ filters and delay/reverb in any case?

Impressive! Seems like a quite decent and consistent result you ended up with there. I particularly loved the bit where you listened through the outer wall. That was really pleasing. The occlusion of the small walls inside the room is too strong IMO, but you would have to probably adapt the algorithm to account for that in some interesting way. Overall, this is a really awesome prototype!

Are you doing any changes based on the facing direction of the listener? I couldn’t really tell (I’m in a noisy environment right now). But I’m just as curious if you’ve considered/implemented any filtering to account for this?

Thanks! Yeah, I’m just using the default Godot reverb and a lowpass for now.

I agree, the system still needs a lot of tweaking. This was purely a proof of concept, since I wasn’t sure if my ideas would even work, let alone the different parts needed and how they would fit together. Many many things can (and hopefully will) be improved. I’m rewriting it completely so things are more modular, streamlined and performant, which hopefully also means that it should be easier to fine-tune the entire system to deliver better results. There’s still some figuring out I have to do on that end though.

No, though that would be a great addition, it’s kind of beyond the scope and focus of this project. I feel that something like that should be implemented at a lower level. Besides, HRTF-type stuff is more about how a listener perceives sound, rather than how sound gets spatialised and propagates through an environment, which is what this project aims to do.

Glad to hear you enjoyed it!

1 Like

Thanks for the extra details. Yeah, I can see this is at the prototype stage, and it’s a very effective proof of concept. HRTF seems complicated, but even a small dB reduction and lowpass to reduce the highs when facing away from the source would be a simple listener addition that would help with the realism. Perhaps that’s a separate system though, as you suggest, which would make sense from a modular design perspective. Anyways, this is a great project, keep up the good work!

1 Like

I wanted to share an update with you guys :smiley:

Going further with my spatial audio project, this time focusing on completely dynamic spatial acoustics and stuff. This new update doesn’t have propagation support (yet).

There’s still a lot of work to be done on this, and a lot of room for improvement and fine-tuning, however, I’m pretty happy with these results so far!

8 Likes

Amazing state of the project. I’ve subscribed to this post in case you post new updates. This is super interesting.

Update time!

I revamped a lot of the system, doing more accurate and reliable acoustic calculations now. I implemented acoustic materials and built a little demo scene, partly as an excuse to try some graphics stuff, but mostly to test the system in a setting that’s more depictive of an actual game environment.

4 Likes

This really sounds nice! Great job.