Sidechain level in the mixer doesn't work in game

I have a mixer group for general fire sounds (burning loops), and for fire reignitions (whooshes as fires start up). A sidechain on the latter goes into a compressor on the former, to duck the fire loops when a new fire starts up. This works as expected in FMOD Studio 2.02.20, including when I test both events in a sandbox. Turning the level of the sidechain down to 0 means nothing goes into the compressor’s sidechain input. However, in game, this doesn’t work, and I’ve had to resort to using gain plugins before and after the sidechain to turn the group down and back up again, in order to set the correct sidechain level.

Any idea why this is?

The level of a sidechain is the amount of grain applied to the signal it sends. In a decibel scale, 0 dB represents no gain, positive decibels represents an increase in volvume, and negative decibels represents a reduction in volume. Setting it to 0 dB therefore means the signal is sent to the compressor at full strength, without being altered. If you want the sidechain effect to send a silent signal to the compressor, you should instead set the sidechain effect’s level to -oo dB.

Hey Joseph,

Sorry - I can’t believe I explained that so badly. I didn’t mean I set the level to 0dB, but I turned the level knob all the way down to the minimum setting,to -oo dB. Even with the level knob down to minimum, the signal still goes through it to the linked compressor’s side chain input.

In the screenshot I attached, I have added gain plugins before and after the sidechain so that the signal sent through it is reduced by 20dB, and then the level is raised again afterwards so there is no change to the output of the group. Setting the side chain level itself to -20dB does nothing - the level sent is always as if the knob is at 0dB.

Sorry for the confusion!

That definitely sounds strange. Are you able to upload a copy of your project to your profile page, so that we can inspect it in detail? Being able to see the project will make it easier for us to identify possible causes for this behavior.

Well this is embarrassing - now it works after opening the project again. Perhaps it just needed to be saved and closed for all the different routing changes I’d made to the mixer to work properly, but more likely I just made a mistake. I could have sworn though that I haven’t changed anything since then, and it definitely wasn’t working properly before. Oh well.

Sorry! I’ll keep an eye on it though, in case it happens (I mess up) again

I’m glad to hear you were able to get it working. If you do encounter it again, please let us know - if there’s a reproducible bug, we want to fix it.

I knew I wasn’t going mad – it seems to have come up again. Playing a static fire sound and ducking it with a player jump sound works just fine in the sandbox, but the sidechain always sends 0dB to the fire group compressor when playing in editor. Boosting or lowering the sidechain level makes no difference, as does bypassing the sidechain. Only deleting the sidechain makes the signal stop arriving at the compressor.

I have tried deleting and rebuilding the banks, and closing/reopening both the unreal and fmod projects, but nothing seems to do the trick. I haven’t yet tested a build of the game, but playing in editor is what I need to be able to mix properly.

I’ll try to add the project to my profile page as well.

Sorry the videos I’ve added showing the problem are a bit glitchy – they get better as they go on for some reason.

Using FMOD 2.03.05 and UE5.4.0.

Still me, just on a different account! The game is registered to this account, and so I’ll upload the project on this one. Thanks!

Thanks for sending in your project.

Unfortunately, I’ve not been able to reproduce the behavior you describe: When I audition the events here, the level of the sidechain on the movement bus affects the compression applied by the compressor effect on the Standard_Bed bus as expected.

I do notice that in your second video, the “live update syncing” indicator at the bottom of the window is flashing constantly. This indicates that the content of the FMOD Studio project open in FMOD Studio differs from the content of the banks being used by your game, and that FMOD Studio is in the process of building mini-banks containing the updates and sending them over the network. WIth a few exceptions, the in-game behaviour shouldn’t actually change until this process is complete (i.e.: the mini-banks are fully transferred and loaded by your game).

I therefore suspect that the built banks used by your game may not have been updated in some time. Re-building your banks and copying the rebuilt bank files into whatever location your game expected them to be in - or simply waiting for the “live update syncing” indicator to stop flashing before you try adjusting the sidechain’s property value - may solve your problem.

If it doesn’t, let me know.

Hi Joseph, and thanks for the response.

I was sure I had tried all that before, but to be safe, this is what I have just done:

  • from the file explorer, deleted all banks in the Unreal project’s Content>FMOD folder
  • Tested the project to make sure no sound is now audible
  • Closed the project
  • Ensured Live Update is off in FMOD
  • Tested the problem using multiple playing events in different tabs, and the sandbox to ensure it works as expected (the sidechain does not get fed into the compressor when at minimum level)

At this point, I notice that sometimes the sidechain triggers the compressor, and sometimes it does not. On first opening the FMOD project, playing the fire sound in one tab, and the jump sound in another, the sidechain is triggered. Checking the mixer, the sidechain is turned down to its minimum value. After bypassing and unbypassing the sidechain, it started working as expected. This leads me to believe there’s some kind of bug with the sidechain having a default value on opening the project, which is not overridden by the desired value. On another test, the problem is also resolved if I tweak the value and then put it back to minimum - not only bypassing and unbypassing the sidechain.

I then:

  • Rebuilt the banks
  • Reopened the Unreal project
  • Played in editor. Here, I notice the problem again - jumping near a fire causes ducking.
  • The problem does not currently happen in FMOD, after having bypassed and unbypassed the sidechain. I turn on Live Update to see if this “fix” is passed to the game engine.
  • The problem persists while playing in engine.
  • Bypassing and unbypassing the sidechain while playing the game and in Live Update does nothing.

I’m not sure what else I can do to help, but I’d be happy to send more things over if need be - I haven’t changed the project from what I sent over before though.

Also, tweaking the sidechain (either changing its value or bypassing/unbypassing) will temporarily “fix” the problem in FMOD Studio, but it makes no difference during gameplay with Live Update enabled. I haven’t found a way so far to make the sidechain compression work as it should during gameplay in editor.

The same is true for playing the build. Nothing makes the sidechain send work correctly, and the only way to have the sidechain not work on the compressor is by totally removing it. Bypassing or turning down the sidechain send level does not work, either using Live Update or not.

If you open the preferences dialog and navigate to the “interface” tab, is the “synchronize changes upon connecting to game” checkbox checked? I ask because, in theory, this checkbox determines whether the state of effects in your game are updated to match those in your FMOD Studio project when you connect to your game using live update. Knowing how this property affects behavior might help shed some light on this issue.

Yes, that checkbox is checked. I don’t think I’ve ever touched it, and certainly in this project and for the duration of this problem it has always been checked.

Have you tried locking the buses by using UFMODSettings::bLockAllBuses? Doing so will slightly increase the resource footprint of the mixer, but I’ve a sneaking suspicion that the automatic destruction and recreation of the jump bus may somehow be interfering with the sidechain effect’s connection to the compressor effect, and locking the buses should theoretically prevent that.