So, I’ve been trying to learn the new audio API, mainly to make use of the really cool audio acoustics. I understand it, for the most part, but the current problem I’m having is that I cannot figure out how to do volume control for 3D sounds (parts played under sounds) in a way thats as simple as it used to be. Before, you’d just make a soundgroup, then you could set the soundgroup property of any sound to that soundgroup, and the volume property of that group would affect the volume of the sound when played, no matter if the sound was playing globally or on a part. Now, with the new API, I cannot at all comprehend how to replicate something like that. I have a hierarchy of audiofaders under the SoundService, with specific names, wired to the AudioDeviceOutput. If I then have a part with an audioemitter under it, and an audioplayer too, when I try to wire the audioplayer into a specific audiofader, then wire the main audiofader to the emitter, It’ll just play the sound from the audioplayer on every single audioemitter. I literally cannot figure out a simple way around this, and im surely not going to clone every single audiofader for every single emitter. How in the world do I do this?
Heres how I currently have it set up:
I would prefer if you separated parts of your issue into different paragraphs, it’s a little hard to understand, but I think I got it.
You’re supposed to connect your AudioPlayer to the AudioEmitter. The AudioEmitter is detected/listened to by an AudioListener; that is what you should be connecting to your AudioFader, if you’re meaning to turn down all sounds within the world. Otherwise, just hook the AudioFader to the AudioEmitter.
This is because the AudioListener is what listens for sounds emitted in the Workspace, and it’s what should be propagated to your AudioFaders/ultimately the AudioDeviceOutput.
So basically, for each audioemitter id have to give it its own audiofader. That really sucks in comparison to how soundgroups worked. How disappointing.
On second thought, I suppose I could just use the audiointeractiongroup property, and make a listener for each group. Then use audiofaders for each one for volume control.