New Audio API Features: Directional Audio, AudioLimiter and More

in WHAT application do you need 300 active audio sources bro :sob::sob:

55 Likes

Train engine simulator :joy:. Each train modulates 15-25 sounds in real time

25 Likes

Any updates on if we will ever be able to spectrum analyze voice chat inputs?

12 Likes

would be cool if we could automate EQ with AngleAttenuation, could do pseudo HRTF effect with that

7 Likes

this is awesome stuff that you would never usually see with ROBLOX. keep it up!

8 Likes

Hey @cellork1; I replied to your original comment here

8 Likes

Is there any plans for a instance that generates a specified frequency? This would be useful for generating procedural engine or other forms of complex sounds without needing multiple different audioemiiters.

9 Likes

if it’s really needed, just handle all sounds on the client and only create & play instances that are within a specific radius of the player OR combine sounds that don’t need to be handled on their own. most game engines cap out at 32 sounds at once. the fact roblox is managing 300 alone should actually be complemented :sob:

18 Likes

I LOVE THE AUDIO API, these new features will be awesome for a lot of games, thank you roblox

8 Likes

Hey there,
Getting direct access to voice spectra isn’t on the roadmap. However, there are a number of associated functions that we do have on our Creator Roadmap, including Speech to Text.

4 Likes

Hey @gizzygazzy360; I think you can already sort of do this, but it involves some math and scripting; there’s a similar code snippet in the AudioEqualizer docs

If you can think of any APIs that would make this more straightforward, we’re all ears!

4 Likes

yea I’m aware this is possible with scripting (I’ve done something similar already), I bring it up because I’d imagine a built in solution would be more performant.

4 Likes

This is so cool!
Can we please also get an API for audio synthesis though?

I’ve always wanted to generate waveforms and make synthesizers in Roblox, it would be such a cool thing and is currently not really doable.

We got editable images and meshes, can sound be next please? :pray:

11 Likes

Now that’s very useful! Hopefully hoping for the equivalent of soundgroups but for the new audio API (or if there’s already one, please tell me, I wanna make a sound slider setting :sob:)

2 Likes

Would there be plans to reintroduce Volumetric Audio feature in the future?
This is really cool though, since there can be many use cases for angle attenuation.

2 Likes

Hey - SoundGroups are essentially just a chain of audio effects. You can accomplish the same things in the new API by wiring audio instances into each other one at a time.

For a sound slider setting, you can use an AudioFader, which has a Volume property. You can set up a chain like:

AudioPlayer -> various effects -> AudioFader -> AudioDeviceOutput
                                  ^
                                  your slider controls this

where each -> is a Wire instance.

Hope that helps!

6 Likes

I would love to see a sister method to SoundService:PlayLocalSound() that would take these new features and put them together to play a 3D sound without having to create a new sound instance each time, making sound replication a more performant and easier to do

3 Likes

Hey - one way you can do this currently is by wiring one audio source into multiple AudioEmitters, scattered around your desired volume. It involves a bit more scripting, but if you have an AudioPlayer, it might look something like:

for i = 1, numEmitters do
	local attachment = Instance.new("Attachment", volumePart)
	attachment.Position = getRandomPointInPart(volumePart)

	local emitter = Instance.new("AudioEmitter", attachment)
	local wire = Instance.new("Wire", emitter)
	wire.SourceInstance = audioPlayer
	wire.TargetInstance = emitter
end

We would definitely take into consideration if you need something simpler, though!

6 Likes

Hey @Nogalo, under the hood SoundService:PlayLocalSound behaves the same way as Sound.PlayOnRemove – both of these create & play hidden, internal copies of a sound, which don’t get surfaced to the DataModel – we don’t plan to add anything similar to the new audio API

Although the copied playbacks are engine-internal, they don’t offer many discernible perf benefits over playing a Sound from a LocalScript and :Destroying it once it has Ended – on the other hand, since the internal copies aren’t controlled by any instance, these APIs have been something of a supermagnet for bugs :sweat_smile:

6 Likes

Man Rohlox really be cooking with features.

This Right here is pretty epic and calls for alot of cool Effects.

This is what I love the most.

5 Likes