Something overrides my setReverbProperty on Channel

Hello!

I’m using lowlevel FMOD api for my game and I came to one weird finding. I’m using general system reverb for most of the sounds except for specific ones like the main menu navigation.

Pseudo code:

Init() {
system->system->setReverbProperties( 0, FMOD_PRESET_HALLWAY );
}

PlaySound() {
if( useReverb == false ) channel->setReverbProperty( 0, 0.0f );
}

This worked totally find until recently, when I found that game menu sounds are using reverb while playing a specific map of the game.

Over further investigation with “getReverbProperty()” I found out in the update that the sound to which I set reverb to 0 has wet level 1.0. If I set it back to 0 in the update it will stay like that.

WHAT I DID SO FAR:

  • I triple checked that sounds are not stealing each other’s channels
  • There are enough free channels
  • I checked FMOD_RESULT when setting reverb property and it it’s OK!
  • After setting the reverb property to 0, I instantly called getReverbProperty for check and it’s properly set to 0.

QUESTIONS:

  1. Is it possible that I have some memory poisoning in my game code which will override FMOD’s memory?
  2. Am I approaching this properly?

Anything will help really, thank you!

A ChannelGroup reverb is optimal for the case where you want to send 1 mixed signal to the reverb, rather than a lot of individual channel reverb sends. But using with individual channels is still a valid option.

From what you have supplied I cannot see any reason why it wouldn’t work, is it possible that the wet level is being adjusted somewhere else?