What is the proper way to apply reverb to individual (or grouped) sounds?

I have attempted every single possible method of playing sounds with ReverbSoundEffect attached and it seems that nothing does proper justice for one simple reason: Something will always cut the reverb off at some point even when attached to a SoundGroup.

The Good
SoundGroups and all of the SoundEffects are powerful tools that I think could bring a lot more life to Roblox. Unfortunately, they’re never utilized and recently I think I’ve figured out why. Or maybe I’m just doing it completely wrong.

The Bad
Step 1: Apply the ReverbSoundEffect as a child to the sound you’re attempting to manipulate.
RobloxStudioBeta_2018-08-10_01-16-26
The result? Rather unpleasant. The second the sound stops playing, whether by being paused or by simply ending, the reverb suddenly cuts out. Particularly jarring.

Step 2: Create a SoundGroup inside of SoundService and apply the ReverbSoundEffect as a child to the SoundGroup.
RobloxStudioBeta_2018-08-10_01-18-54
Peachy, right? We should be all set to go and things should be smooth. Now, we just play the sound and, oh! There we go, the reverb stays! Until we do some testing.
When applying this method of reverb, playing another sound will cut out the previous sound’s reverb.

Imagine this plausible scenario: A user is firing a gun down a long hallway rapidly. As they’re firing, they’re walking, which plays a very soft footstep sound compared to the loud gunfire. The footstep sound completely cuts the gunfire’s reverb out.
Here’s that scenario played out:
https://youtu.be/KaMEamxonMc
In that same video, I demonstrate Step 1’s issue as well, after the first part.

Well, this isn’t working out…

The Downright Ugly
So, I wasn’t ready to be defeated. I tried multiple other methods of applying Reverb, mostly consisting of the different ways to actually play a sound. None of which heeded proper results, all of which were more or less the same. This sucked because I was a bit hyped about actually realizing that SoundGroups could be utilized brilliantly.

But there was one thing.
Creating a SoundGroup for every single sound that plays.

Most of you might think, oh, that works! Well, when you’re like me, you play as many sounds at any given time as humanly possible. Ever played Phantom Forces? Yeah. That was me. I went kinda overbored. Turn on ‘HQ Sounds’ and the game starts playing almost triple the amount of sounds than normal, too.

The major issue here is the fact that now I’m creating double the amount of objects that I was creating previously, and I’m keeping track of double the amount of objects. For a game like Phantom Forces, that’s catastraphic levels of performance issues. I can’t be doing that.

So, smart developers of Roblox… am I doing something utterly wrong, or is there an issue in the engine that should get fixed? I’ve been trying to implement reverb systems into games like Phantom Forces and it’s just not quite working.

9 Likes

This sounds like something that should be fixed on the engine side of things, particularly step 1 that you tried as I see no way in which that would be useful to someone.

If you want all ambient sounds in your game to have reverb you could try using the SoundService AmbientReverb property.

3 Likes

If you change AmbientReverb in a local script, then you could change it to “Hallway” when the local player enters a hallway and change it to something like “Plain” when they step outside, giving different areas of the map different reverbs.

Of course, this will change the reverb for all sounds, so if the local player is outside and someone in a hallway fires a gun, then the local player will hear that gun sound with the outside reverb applied to it, even though that sound should have a hallway reverb. However, this might not be a huge issue as the player should be focused on the game too much to notice that the reverbs aren’t perfect. They’re much more likely to be impressed that all reverbs change when their location changes than to notice that not all of them should.

It would be nice, though, to eventually be able to make a more realistic reverb system.

Using AmbientReverb is a solution, but it’s not a perfect one. The fact that it plays the reverb on every single sound played can sometimes be noticeable depending on what you’re playing. For example, louder interface sounds or music. Another issue of that is just that you have very limited choice with that.

I guess if someone wanted a quick and dirty on it, that would be their go-to for now, but I’d hope to see at least one of the issues in the original post fixed. These are some pretty powerful tools, and at least one of them - arguably the most useful and the one with the most impact - is being limited pretty hard.

A good fix for AmbientReverb to be more useful is to maybe make it ignore any sound played in playergui? That’s where I send any music, ambience, and interface sounds.

I’ve realized that this is an old thread but I am having issues adding effects onto multiple sound instances (as stated before). The game I am developing is based on virtual piano and the community would generally like to be able to edit the effects that can be used to make the pianos sound how they want it to sound. Has there been any workaround for this sound effect issue or any suggestions anyone can provide?
Game link for refrence: https://www.roblox.com/games/5593470048/Virtual-Piano-Visualizations-2-0

really roblox? 3 years later .

1 Like

yOuR pOsT hAs BeEn FlAgGeD bY tHe CoMmUnItY fOr nOt cOnTrIbUtInG

3 Likes

I’m interested in this becoming a SoundGroup-level feature rather than set globally. In my case, I want the sounds in the world to be echo-y, like when a player drives through a tunnel, but when they’re in their car, I don’t want the sounds inside to be echo-y, like the gear shifter or blinker sound.

wow can’t believe im having the same easily fixable (on Roblox’s part) issue 6 YEARS LATER