Jitsi: Turning off Automatic Gain Control

Mar 2, 2021 09:23 · 565 words · 3 minute read

TL;DR

Operating systems let you customize the sensitivity of the microphone allowing you to suppress environmental noise such as keyboard strokes. Video conferences software unfortunately tends to override such settings using autogain making your customization void. While some video conferencing tools let you control autogain via the settings, Jitsi does not have such an option.

However, you can use https://your.jitsi.server/someroom#config.disableAGC=true when joining your Jitsi meetings to disable autogain and have more control over your microphone.

The slightly longer version

One of the main annoyances in video conferences is getting side-tracked by unwanted noise from someones microphone, for example keyboard strokes, especially from mechanical keyboards. Using the correct sensitivity settings for your microphone (for me this is 45% according to pavucontrol on linux) you can prevent others from hearing you typing.

Unfortunately, video conferencing software has make it a habit to overwrite such settings by using autogain control (AGC) resetting your microphones sensitivity to 100%. Discord recently added an option to disable it. Other tools like Jitsi or BigBlueButton (BBB) have no UI to control this behavior, yet. Jitsi has an open issue for it though. So does BBB.

The Jitsi issue mentioned above suggests a workaround for the time being: https://<your.jitsi.server>/<some room>#config.disableAGC=true (replace <your.jitsi.server> and <some room> with the respective settings)

In practice this means that you need to append “#config.disableAGC=true” to the link you use to join a Jistsi conference. This is a non-permanent session setting and needs to repeated for every Jitsi meeting or when re-joining a session.

However, this requires you to set a correct microphone sensitivity yourself.

Setting the Microphone Sensitivity

To do this, you need to be able to listen to yourself with headphones. This can be achieved by by using the loopback feature in mumble or listening to the monitor device of your microphone. The how depends on your sysstem.

To set the microphone sensitivity, run a sound mixer like pavucontrol on linux, search for the input devices and choose the microphone you are using for video conferencing. Talk into the microphone. Adjust the microphone sensitivity in a way that you can hear yourself talking well. Also speak louder like you would in a heated discussion to see how loud you will get with the new settings. Testing talking quietly is also good so you see how audible you would still be. This is where autogain might have helped you in the past. Next try the same while typing on the keyboard and see how much less you hear yourself now compared to the 100% setting from before.

Once you have found the correct setting turn off autogain in Jitsi as described above.

Disabling AGC in other tools

This handy stackoverflow link has all the javascript details you need right now. It also mentions a chrome extension which allows you to set this per site. This might be helpful for apps where you do not have an UI option or a nice URL hack like for jitsi.

Browser support

This has been tested with Chromium, so all browsers based on it (Brave, Vivaldi, Edge … you name it) should also work. Some versions of Firefox have autogain, so I assume it should work there as well.

Acknowledgments

A big thank you to Frank Sundermeyer for a lot of valuable feedback how to make the post more understandable. In case you wonder … He is leading the SUSE Documentation Team.