Roblox Audio API Exits Beta: Enhanced Sound Controls Now Available

Greetings Creators!

First, a huge thank you to everyone who explored the new Audio API, reported bugs, and provided valuable feedback through the DevForum and directly to the team! We’re thrilled to announce that the API has officially exited Studio Beta and is now available in Studio.

Please note: The New Audio API checkbox option will be removed from the Beta Features in the coming days.

We’ve been hard at work improving the Audio API, with a focus on improving natural audio simulation in your experiences, including:

  • Occlusion + Diffraction
  • Environment-based reverb
  • Directional attenuation for emitters and listeners
  • Intuitive, visual AudioCompressor editing

At the same time, we’ve prioritized addressing your top concerns about usability. Earlier, we introduced distance attenuation roll off curve editor for AudioEmitter and now we’re excited to share even more improvements:

  • A new .Volume property to AudioPlayer and AudioDeviceInput, allowing you to directly set the output volume of an asset or input stream—no need for an extra AudioFader.

  • A new .SpectrumEnabled property to AudioAnalyzer, allowing you to disable frequency analysis to improve performance if you only need volume metering.

  • A new AudioFilter instance, a lightweight frequency adjustment effect with one customizable band with multiple filter shapes.

You might notice that combining multiple AudioFilters can achieve similar effects to the existing AudioEqualizer. While AudioEqualizer provides three filter bands of a preset shape, AudioFilter provides just one band with a customizable FilterType, covering several common filter shapes. By combining AudioFilters in various ways, you can shape your audio exactly how you want.

Just like with roll-off curves, we’ve applied an intuitive visual editor in Studio for the AudioFilter. This editor provides a draggable interface of the frequency response curve (the level of gain applied across the entire frequency spectrum) and allows for direct manipulation of Frequency, Gain, and resonance (Q)

While we were at it, we also added the visual editor to AudioEqualizer to make it just as easy!

Lastly, we’ve also re-enabled AudioAnalyzer:GetSpectrum for all audio sources except AudioDeviceInput. We are exploring related functionalities, including performant and secure voice command and speech-to-text systems that will unlock new possibilities for voice-enabled experiences.


We’re excited to see how these updates elevate your creative process! Special thanks to cognitivetest_306, Doctor_Sonar, RandmNerdGeek, ReallyLongArms, and TheRealMotorbikematt for gathering your feedback and driving these important updates!

Please continue to share with us your latest creations and give us your feedback! Your comments help make our products better.

Sincerely,
The Roblox Audio Team

168 Likes

This topic was automatically opened after 11 minutes.

The visual editors are so awesome to see at last - I’ve been wanting a better equivalent to what I see in Ableton for a long time! Thanks for these new editing tools.

31 Likes

Great stuff as always, very excited for occlusion.

11 Likes

I am really disappointed that the spectrum analyzer is still not enabled for Voice Inputs; There are a lot of cool effects you can do with this that speech to text just doesn’t solve.

11 Likes

Wow, this is super cool!

I don’t know what sort of audio filter this is in the background but one super useful trick I learned with sound is that if you cut some frequencies below 30 hertz it can sometimes create more headroom which allows music and other sounds to become a bit louder and more audible.

Although I will assume that this isn’t some linear phase filter so doing it too much might cause artifacts.
But if you ever find music or sounds that just have wayyyy too much bass.

If you want to keep some punchy bass but still make other sounds more audible, cut around 30 hz, sometimes 20 hz already is enough, in extreme cases you might have to cut at 40 or 45 hz.

I don’t know how flexible Roblox audio filters are and how much you can do with it but remember this next time you’re adding a bunch of sounds and music to your game.

Sounds need breathing space, that’s why car engines and gun shots can soften your music sometimes, or the other way around.

You can also try cutting some sound above 18 or 19 khz since most humans can’t really hear that and it’s mostly harsh noise.

Though whether this will give sounds more breathing space or make audio sound worse might really depend on multiple factors so I suggest you just try that and decide for yourself whether that worked for you.

3 Likes

When will it be possible to muffle sounds that are behind the wall? (srry didn’t pay attention to that part)

4 Likes

Thank you for the Roblox Audio API, it really is amazing! Hopefully next you allow us to make Experiences VC Only (Require VC to join) [PLEASE consider doing this]

4 Likes

You already can, it’s literally just a lowpass filter.
Just cut away all high pitched sounds and everything sounds muffled and bassy.

3 Likes

Hey @LvieReal – sounds getting muffled when they are obstructed is what we meant by occlusion – diffraction is when sounds “bend around” obstacles.

We’re actively working on these as automatic simulation features – but in the meantime, if you want to implement this yourself (or something custom), you can use AudioFilter or AudioEqualizer to muffle things like @C_Corpze suggested

8 Likes

Good that this is fully releasing. The AudioFilters are most exciting to me. The more aspects of audio we can control on the platform rather than using hacky methods, the better.

2 Likes

I really love this :heart::heart::heart:. Btw, is this normal? Kinda scary :fearful::ghost::skull:

Example:
image

So, as you can see the “PitchShiftSoundEffect” has a bit strange sound than using Sound’s property called “PlaybackSpeed” using this is much better sound output than using the “PitchShiftSoundEffect” also I just want to pitch up the sound aside from speeding it up.

Hopefully, someday we can adjust the pitch and sound’s clearly. :slight_smile:
[/quote]

2 Likes

Wow, I never imagined it would look this good; great work, Roblox!

3 Likes

Really looking forward to this, the things you could do with this is insane!

2 Likes

Interesting idea! Will pass along!

2 Likes

Why not describe all the things you’d like to do; we’re listening!

4 Likes

PitchShiftSoundEffect seems to be lower quality than AudioPitchShifter. If you want to have a clearer result, you have to switch to using the new API or for the new API to be backwards compatible with the newer, or vice versa.
For now though, setting up an AudioPlayer, wiring it into a AudioPitchShifter, and wiring that into an AudioDeviceOutput gives you the highest quality sound.

4 Likes

The timing is great for this release! I’ve been keeping up with these changes for my plugin for these APIs exclusively, and so far they’ve been extremely intuitive to work with.

In terms of feedback, and after spending perhaps too long experimenting with different audio setups in my free time, I have some suggestions:

  • Could there be a method to get the current loudness at a given frequency for AudioAnalyzer? Something like AudioAnalyzer:GetLoudnessAtFrequency(frequency: number) where frequency is a number between 20 and 24,000.

  • Is there a chance that more control over AudioDistortion will be added? At the moment it’s just the Level property, but I imagine more control such as what’s seen in Logic Pro’s factory distortion could be added. I’m really missing that warm, fuzzy overdrive.

  • A pan property! I imagine this property could be a multiplier of the current balance before it’s applied to 3D space. I feel like this option is missing and could make for some cool knocking-behind-your-head effects regardless of where the player is looking.

And less of a suggestion but more of a “hey wouldn’t this be cool:” Bitcrusher effects?

3 Likes

I imagine this would come with fewer use cases, but an LFO would be a fantastic addition to the lineup of audio tools in studio—this would allow users to visualize the envelopes they draw out and then plug those values into specific audio effect properties to modulate them over time

2 Likes

Hey @DaDude_89 – this is so cool; great work on the plugin!

Could there be a method to get the current loudness at a given frequency for AudioAnalyzer?

I’m not sure if this can be implemented in such a way that’s dramatically more efficient or accurate than searching for the frequency of interest within the spectrum; we’d probably end up doing that, just in C++ instead of Luau :sweat_smile:

Is there a chance that more control over AudioDistortion will be added? At the moment it’s just the Level property, but I imagine more control such as what’s seen in Logic Pro’s factory distortion could be added

I think warmth/fuzz can be modeled by applying a filter or EQ before the distortion – but we can look into making that more intuitive!

A pan property! I imagine this property could be a multiplier of the current balance before it’s applied to 3D space. I feel like this option is missing and could make for some cool knocking-behind-your-head effects regardless of where the player is looking.

Are you envisioning a 2d left/right pan property, or a 3d/vector? With a 3d pan, it starts to step on AudioEmitter’s/AudioListener’s toes a bit

3 Likes