5.1 sound not working when reverbs are active


in our racing game we create some 3D reverbs in code, using the API, in correspondence of certain architectural features of tracks (like bridges and so on). However, we and out users have noticed that 5.1 surround sound doesn’t work when we do this, i.e. sound comes only from the front channels. It works as intented without the reverbs. Is this a bug or is there something we’re doing wrong?


The reverb effect would be too expensive to run separately over all six channels, so it down-mixes the signal to a single channel before, and up-mixes after.

You need to mix the reverb wet signal back with the original dry signal. A 100% reverb wet signal won’t have the surround component of the original.

I don’t think this really describes the problem we’re having. First of all, it’s like the up-mixing is just broken in that the back channels come completely silent, and I can’t see why that should happen even with the reverb process you describe since it’s a mono or stereo sample played through an event in the 3D world, so I would expect positional sound to work as intented.

Secondly, we’re not talking about per-event reverb but 3D reverbs added programmatically from code using the low-level API. Once we place these reverb spheres in the track, we hear the 5.1 go nuts even in positions outside any single sphere.

3D reverbs are connected to the input signal pre-panner, so it’s not a surround signal yet.

If you have a look at the following capture from fmod_profiler.exe, I have a Studio event instance positioned behind the listener, you can see the panner is placing all the signal into channels 5 & 6. The 3D reverb I created is hooked directly to the input channels, and spreads the signal equally across all channel when mixed back into main signal.

If you use the FMOD profiler tool on your game, you should be able to tell where the surround signal is becoming broken.

DSP profiler capture

1 Like