Extremely niche content warning!
I had a problem with the Zoom videoconferencing software (that is mostly excellent and I use it all the time talking to clients): whenever I joined a call, it would reset my system volume to 100% which would then deafen me with the “bingbong!” noise that announces you’ve joined a conference.
I’m using Zoom on Linux. Ubuntu 16.04.4 LTS in fact, but with PulseAudio bridged to Jackd because I use a bunch of audio stuff and wanted the more robust controls of Jack for source-to-sink mapping. This makes my bug really niche.
Googling had failed me for ages until I chanced upon this article that talks about PulseAudio and something called flat volumes.
Flat Volumes Is The Culprit
$ pacmd list-sinks 1 sink(s) available. * index: 0 name: <jack_out> driver: <module-jack-sink.c> flags: DECIBEL_VOLUME LATENCY FLAT_VOLUME state: RUNNING
FLAT_VOLUME is enabled. We need to fix that.
The culprit was Cadence/Claudia that I use to control Jack. It was creating a
~/.pulse/daemon.conf file that didn’t contain a line saying
flat_volumes = no
which is present in the system-wide /etc/pulse/daemon.conf.
A per-user config file for PulseAudio overrides any system-wide file completely so PulseAudio wasn’t picking up the
flat_volumes=no setting from the main config file. Argh!
Super simple. Just add
~/.pulse/daemon.conf and restart PulseAudio:
$ pulseaudio -k
And if your PulseAudio isn’t set to auto-respawn, use
$ pulseaudio --start
or start it from Cadence.