[pulseaudio-discuss] Disabling PulseAudio direct access to ALSA devices
sb56637 at gmail.com
Wed May 6 13:40:35 UTC 2020
Hi there, recently I've been running into major problems with Electron apps for the Linux desktop (Microsoft Teams and Riot.im) modifying my mic input levels. Also Chromium/Chrome do the same thing during WebRTC calls, they raise my mic level to 100%, thus completely saturating the audio and making it unusable. I drop it back down manually, but within a few seconds it creeps back up to 100% again. In my case it tries to max out the mic gain, but I've read lots of other user reports where it tries to lower the user's mic gain to an unusable level.
Sometimes this is the result of a "smart" VoIP program like Skype that has an option to allow the program to adjust the audio device levels. But my problem is that all my VoIP apps use WebRTC, which appears to include its own implementation of AGC as part of the protocol, and it's obviously buggy in anything based on Chromium (Chrome, electron apps, etc.), and there's no way to disable it. There have been bug reports to Chrome(ium) for years about this and they obviously don't care. Firefox doesn't exhibit this behavior, but unfortunately a lot of WebRTC apps are either Electron (based on Chromium) or else don't support Firefox very well. Ultimately, I think this behavior should be controllable via PulseAudio, since we can never assume all apps with have sane behavior.
In Windows there's an option to not allow programs to control a specific device. I think we also desperately need a PulseAudio option to disable direct access to the audio hardware. It appears this should be possible in `/usr/share/pulseaudio/alsa-mixer/paths/analog-input-internal-mic.conf` by changing `volume = merge` to `volume = off` or `volume = XX` according to what I've read. But since the profiles are under `/usr/share/` they're obviously not meant to be user configurable, which I think should be changed.
I'd really appreciate it if you could make this behavior user-configurable, possibly by looking for the profiles somewhere under `/etc/pulse` and/or `~/.config/pulse/`.
Thanks a lot!
More information about the pulseaudio-discuss