[Beta] Acoustic Simulation

Hello creators! :wave:

We’re excited to announce Acoustic Simulation as a new Studio beta feature! With this feature enabled, audio playback will automatically adapt to its environment. Specifically, any 3D audio emitted using the newer Audio Wiring API (including audio assets, voice chat, and/or character sounds) will now behave similarly to the real world. You’ll hear these sounds being muffled by structures, as well as bending around and reflecting off of parts and terrain.

The best part? This is all automatic—no scripting is required. Sculpt a large stone cave that echoes emitted sounds within and throughout. Create a room that blocks noise when you close the door. Make a winding hallway where users can hear foes from around the corner.

Keep in mind, this will currently only work within Studio and not published places. This will be able to be used in published experiences in the near future!

How do I use it?

You can find a toggle to enable the feature under File → Beta Features → Acoustic Simulation in Roblox Studio.

With Acoustic Simulation, you’ll have access to the following APIs:

Acoustic Simulation is also affected by:

  • PhysicalProperties.Density: Also determines how strongly a material occludes sound
    • Parts which are thicker and have higher density will result in more sound muffling

For more information on using the Roblox Audio API, you can also reference this API overview and our tutorials on adding 3D Audio and Voice Chat.

Known Issues

Click here to read more

The simulation is not perfect, and you may observe that:

  • When AudioEmitters diffract (bend around corners), only the single, shortest path will be simulated. This can result in scenarios where the apparent direction of a sound changes dramatically with small amounts of movement.
  • Reverb/Reflections are only computed around AudioListeners, so in some situations, AudioEmitters positioned in a different location can sound more or less reverberated than expected.
    • For example, if an AudioEmitter is inside a stone cave but an AudioListener is outside, the sound will be unmodified even though the cave should cause there to be more reverb.
  • Solid walls currently filter sound a little bit less than we would like.
  • Sometimes AudioEmitters are more reverberant than expected for a few moments after creation.

These and any other specific sound characteristics of acoustic simulation are subject to change as we improve on the feature through beta.

We are still tuning the algorithms for performance, especially for lower-end devices. Please note that even after public release, acoustic simulation may work differently (or be completely disabled, in some cases) on some lower-end devices in order to maintain performance and stability.

If you encounter anything else or otherwise have any feedback for us, we’d love to hear about it!

A big thanks to @cognitivetest_306, @DinoCoderMom, @Doctor_Sonar, @PeacefulSquirrel, @ReallyLongArms, @phri, and @therealmotorbikematt for making this possible.

279 Likes

This topic was automatically opened after 10 minutes.

This honestly seems like a great update! Can’t wait to try it out

11 Likes

I can’t wait to try this, it’s amazing! This will definitely change the Roblox experiences.

We really need updates like this, thanks!

6 Likes

Roblox horror games about to get 100% better!

26 Likes

what about the speed of sound and doppler effect? will those eventually be simulated too?

10 Likes

This is concerning. While I understand there is a healthy focus on performance on low-end devices, we already have lots of features that act drastically different on different platforms or downright don’t even work (i.e. highlights, future lighting).

These functionality differences tend to compromise the fairness of multiplayer games. For example, a player on a device that doesn’t support acoustic simulation could be able to hear gameplay-critical sounds through walls while others cannot.

I already have to jump through some visual hoops to make darkly lit placed stay dark on lower graphics. I don’t want to forgo this awesome feature for the same reason.

13 Likes

A VERY good question! Is there such thing as a sound barrier on Roblox? We already have aerodynamic physics and wind speed. Could acoustics API simulate a sonic boom if something moves fast enough?

8 Likes

Hey @Imperiector – simulating the doppler effect involves changing the pitch of an audio stream based on relative velocities – this is extremely doable

With AudioPlayers and AudioEmitters it’s a little bit tricky, because one file can be emitted from multiple distinct 3d positions at once – that is, each emitter might experience doppler differently, and it’s not enough to just change the pitch of the source file.

The best way to approach doppler is probably using AudioEcho’s RampTime property, but we probably won’t make this happen by-default since it uses a fair bit of memory

10 Likes

Great feature, but as I’ve mentioned before — this feature needs to be ported to Sounds.

I understand this is no easy feat, but frankly I am not going to clutter my game with multiple instances that I can replace with a single Sound instance, just to support the new wiring API.

21 Likes

Can the sound pathfinding data be made accessible from Luau? Seems like incredibly useful data to have access to :slight_smile:

Really interesting feature. I’m curious what kind of overhead this all brings. Something like this certainly can’t be cheap considering the pathfinding aspect of it.

What sort of distance limitations does it have?

6 Likes

Had my own systems for this for years now and I’m glad to see there’s an official solution, hopefully it’s as performant so I can switch

4 Likes

Okay, cool stuff.

Considering this, what are the current performance costs for this new feature? Is it really a good idea to have it enabled by default?

5 Likes

Great update! I remember trying to figure out how the sound properties worked and trying to look for one that doesn’t allow going through walls. Glad it is being added now for more immersive experiences!

1 Like

:partying_face:

Ever since I saw this in the old hack week from I think 5 or so years ago now, I was like “Wow! That’ll be cool!”, and now beta is here!

3 Likes

unfortunately I’m enrolled in another channel for feature testing, so I can’t try this out, so I’d like to ask–given that the thread doesn’t showcase this, how well does it work in “fully-reflective” environments, e.g. in a glass/marble cathedral, where you would expect lots of echo and reverb?
I made a project similar to this three years ago, which is what I had in mind:

3 Likes

Ironically a little audio degradation/compression happened between recording and uploading the clip, but I’ve already played around with some different materials. My favorite is snow with how it softens and singles out the emitter.

External Media

We don’t want the compromises we make for performance to drastically affect quality or fairness either.

Rest assured we will try all other options before turning the feature off – including, but not limited to, giving y’all more APIs (hints) to tell us which emitters/listeners are more important to simulate accurately.

We aim to make the engine your tool, not something you have to work around – so if you try it out and find it wanting, please let us know!

8 Likes

The amount of reverb in the simulation is influenced by the size of the space and the AudioAbsorption of the walls - so for a big space with low-absorption surfaces like Marble, you can expect there to be quite a bit of reverb!

3 Likes

Roblox audio team, i love you

15 Likes