Trying to use the reverb system

Hi, I’m trying to use the reverb system as described here, but I think I don’t use it correctly as it seems to have no effect.
Here’s how I handled it:

Factory.System_Create(out FMOD.System sys);
sys.setReverbProperties(reverbDSP, ref reverbProperties);

From what the documentation says, this should be enough to create the reverb DSP, so next I’m simply setting the reverb level on an already playing instance like so:

eventInstance.setReverbLevel(reverbDSP, 1.0f);

But the sound just keeps playing the exact same way, no reverb applied.
If I then try to get the instance’s reverb level (using eventInstance.getReverbLevel(reverbDSP, out level)), I get the correct value so I guess it means the reverb DSP is indeed created and setup correctly on FMOD’s side.

 

Side question: I just saw the 3D Reverb page, which from my understanding wouldn’t work with events but only with channels?

Thanks !

Hi,

Your issue seems to be that you’re creating your own Core System with Factory.System_Create(). FMOD’s Unity integration creates and manages a Core System for you, which you can access with FMODUnity.RuntimeManager.CoreSystem - if you’re using StudioEventEmitter or StudioListener components, they are handled by this system. As such, you can simply adjust your existing code to use the existing system instead of creating your own.

Your reverb code using FMODUnity.RuntimeManager.CoreSystem might look something like this:

FMODUnity.RuntimeManager.CoreSystem.setReverbProperties(reverbDSP, ref reverbProperties);
yourStudioEventEmitter.EventInstance.setReverbLevel(reverbDSP, 1.0f);

Hope that helps!

That worked just fine, thanks a lot !

1 Like