Reverb Still Using CPU Outside Max Distance

Hello,

I have a Niagara effect where water droplets fall inside a cave, and I’ve attached a water drop sound to the particle system.

The Min & Max Distance are set to 20–25, and I inserted a Reverb effect after the Spatializer.
(Normally I only use send reverbs, but this water drop sound is a special case.)

While profiling, I was surprised to see that this reverb is still consuming about 2–3% CPU, even when the player is far away from the cave.

Since the sound should be outside the audible range, I assumed the volume would be muted and that no reverb processing would occur, but that doesn’t seem to be the case.

As a workaround, I added distance-based automation to the reverb wet level, which solved the issue.
However, I’m wondering:

  • Is it expected behavior that the reverb continues to process even after the sound exceeds its max distance?
  • Or could this be a bug?

Thank you as always for your help.

Best regards,

I unfortunately haven’t been able to reproduce the issue - when my event instance moves far away enough to become completely attenuated by the spatializer, the reverb effect plays out its tail and then becomes idle, consuming practically 0% CPU. Can I get you to confirm a couple of details?

  • What version of FMOD Studio, UE, and the FMOD Unreal plugin are you using?
  • Where are you testing/reproducing this issue? i.e. is this happening in the Studio sandbox, in UE in the Niagara editor, during PIE/at runtime, etc.?

Just following up on this - can I get you to answer the questions in my previous reply?

Phew, I just got through a busy stretch. Thanks, Leah.

To answer your question: my Unreal and FMOD are both on the latest version, of course. I just tested in a sandbox, and while there’s a difference in CPU Usage, the symptom is the same.

Attaching a screenshot of the event in question.

Profiling results from the sandbox.

Profiling results during actual gameplay (PIE). 6% Cpu Usage.

Please take a look.

I can upload the profiling session to my profile if needed.

PS. For reference, I solved this issue through a reverb send. It’s not happening anymore now, but I reproduced the reverb insert for verification.

Happy to hear that you managed to solve the issue!

To clarify, is this 2.03.14, or 2.02.35?

Uploading packaged profiler session from both Unreal’s PIE and the sandbox would be great!

The FMOD version is 2.03.14, and Unreal is 5.7.4. I’ve uploaded the profiler session package to my profile. The scenario is as follows: the SFX reverb stays bypassed for a short while, then is unbypassed, after which I move progressively away from the water drip and exit beyond the maximum distance.

Thanks for the profiler session!

I’ve done some additional testing with your profiler session, and with UE on my end, and I unfortunately still haven’t been able to reproduce the issue. In PIE and in the Sandbox, event instances with a SFX or convolution reverb stop using CPU once they’re outside the max event range such that they’re completely attenuated by the spatializer, and the reverb tail has completely finished playing.

The only things I can think of that may be causing this behavior would be:

  • Some combination of settings on the spatializer causing it not to be completely attenuated by the point it would be expected to be
  • The min/max event distance being overridden in UE
  • The reverb tail is playing for longer than expected for some reason
  • Vol0VirtualLevel has been modified in the FMOD Studio UE settings, causing voices to not go virtual and stop processing at the expected volume level

That said, you have a functional workaround, so there’s not too much point worrying about it at present. If you run into any further issues, please let us know!