Speaking in a voice channel/voice call in the Linux desktop app causes the volume of my mic to lower by itself

(#344) Bug Awaiting confirmation desktop voice

Summary

When I speak in a voice channel unmuted in the Linux desktop app, the volume of my microphone lowers by itself DE-wide without my input. I expect it to not lower. This only happens in the desktop app, not the web version.

Steps to reproduce

  1. Unmute your microphone, if it is muted.
  2. Enter a voice channel or voice call.
  3. Make noises for a bit.

Environment (optional)

  • OS: Pop!_OS 24.04 LTS
  • Desktop Environment: COSMIC
  • Browser (when I use the web version): Zen Browser

Logs or screenshots (optional)

556563774-d6962f6e-df64-43af-89c0-f14ead8af017.mp4
556563774-d6962f6e-df64-43af-89c0-f14ead8af017.mp4 | 1.2 MB

8 comments

Sign in with Fluxer to comment and vote.
Comment by Rex
RexSystem 1 vote
Status changed from Fixed to Awaiting confirmation
This was closed in a bulk cleanup before Fluxer V2 without being checked or fixed. It may work now, so it is waiting for someone to confirm whether the bug still happens.
Comment by @powerofthe69
RexSystem 1 vote originally by @powerofthe69 on GitHub
Isn't this exactly how auto-gain works? I always turn that off in Vesktop, Discord, and even in Fluxer because auto-gain is trash. At least on Linux.
Comment by @lexifuzzpup
RexSystem 1 vote originally by @lexifuzzpup on GitHub
This feature bothers me so much. I've never found a way to disable it; for me, gain control options do nothing. I've had to write a cron job to set all microphone levels back to 80% every 30 seconds so it doesn't creep down to inaudible levels.
Comment by @powerofthe69
RexSystem 1 vote originally by @powerofthe69 on GitHub
This feature bothers me so much. I've never found a way to disable it; for me, gain control options do nothing. I've had to write a cron job to set all microphone levels back to 80% every 30 seconds so it doesn't creep down to inaudible levels.
Assuming it's not been deprecated, Electron should have a launch flag like --disable-features=WebRtcAllowInputVolumeAdjustment to disable it that you could try
Comment by @AuTune
RexSystem 1 vote originally by @AuTune on GitHub
I have auto gain disabled in Fluxer settings, works fine for me. Both on web and desktop. Using CachyOS.
Comment by @nlutterman
RexSystem 1 vote originally by @nlutterman on GitHub
Isn't this exactly how auto-gain works? I always turn that off in Vesktop, Discord, and even in Fluxer because auto-gain is trash. At least on Linux.
Most other voice applications I've used handle autogain internally, like as an effect applied on a copy of the audio source. In my personal opinion, the application should not have an effect on a system-level configuration. If it's a setting available inside of Fluxer, I would expect it to only affect Fluxer.
Comment by @powerofthe69
RexSystem 1 vote originally by @powerofthe69 on GitHub
Most other voice applications I've used handle autogain internally, like as an effect applied on a copy of the audio source.
If these other applications that you're thinking of are not using WebRTC, then that would be why. As I mentioned, this is a known behavior for WebRTC applications like Discord and Fluxer when using automatic gain control. It automatically lowers the microphone volume at the system-level on both Windows and Linux. I don't have a Mac, but I'd assume it acts the same unless Mac doesn't allow access to its system audio API in this way. https://wiki.robotz.com/index.php?title=WebRTC_Automatic_Gain_Control Edit: formatting
Comment by @R3alCl0ud
RexSystem 1 vote originally by @R3alCl0ud on GitHub
Another solution for this since a lot of chromium/electron apps like to do this is to set the permissions to read only on the pipewire side.

Steps:

  1. navigate to ~/.config/wireplumber
  2. if not present create a directory named wireplumber.conf.d
  3. create a new file in the wireplumber.conf.d directory no-fluxer-auto-gain.conf and paste the following:
    access.rules = [
        {
            matches = [
                { application.process.binary = "fluxer" }, # add more lines for every app you want to have read only permissions
            ]
            actions = {
                update-props = {
                    default_permissions = "rx"
                }
            }
        }
    ]
  1. Log out and log back into to your DE or restart your PC.