> Today I had a scary experience with the audio of my computer.
> I was listening to music with Amarok, using my headphones... The KMix volume
> level was ~ 35%. When I logged into a video conference application, the
> volume suddenly reached the 100%. I was shocked, having the maximum audio
> level shooted in your ears is a painful experience.
> The conference application that triggered PulseAudio pushing volume to
> maximum level probably should have never asked the system for a 100% audio
> level, but on the other hand, PulseAudio should never allow an application
> to make such sudden changes.
> To avoid that, you have to set
> flat-volumes = no
> in /etc/pulse/daemon.conf

I disable flat volumes on every computer that I own. In my experience there are 
too many applications that interact with it improperly, and having the master 
volume raised suddenly can be extremely unpleasant. It's naive to think that 
all apps will behave and will not contain any bugs. The system should not allow 
the apps to physically hurt the user just because of bugs or improper 
implementation. Flat volumes allow exactly that.

A colleague of mine experienced music volume bursts every time Pidgin played a 
notification. No amount of fiddling with Pidgin settings seemed to be able to 
fix that. I recommended him to disable flat volumes and the problem was of 
course gone. And this is Pidgin, one of the most prominent IM apps in the Linux 
world. What about third-party apps, how can we expect them to behave?

The problem is not related just to increasing the volume suddenly. There are 
other confusing and annoying use cases. If you have a game without a volume 
slider (think of something along the lines of Extreme Tux Racer) and you want 
to temporarily increase other volume source (let's say a youtube video, or a 
skype), if you raise the volume, it makes it at the expense of the other apps. 
So your game is now at e.g. 30% of the master volume (that value is remembered 
and applied for future app executions as well). The end result is that after 
you finish e.g. calling with someone and switch back to the game, it's suddenly 
way too silent, no matter how much you turn the knob of the master volume (and 
if you crank it fully up, sounds from other apps might pierce your ear drums). 
Closing and starting the game again doesn't help. The only way to fix this is 
to go to deeply buried sound settings in gnome control center and adjust your 
app's slider. Hardly discoverable for a standard user. And you need to do this 
every time such a use case happens. If GNOME implemented a slider for every 
playing application in the user menu [1], this wouldn't be so bad, but it 
doesn't.

Another confusing use case is when you have temporarily increase the volume too 
much and quickly drag it down (let's say you have rhythmbox playing and you 
increase the volume to 100% percent by accident, then lower it down 
immediately). When you turned the app volume up, the master volume went up 
(let's say it's 100% now). When you turned it down, only the app volume went 
down, the master volume stayed at 100%. So when you run a different app and it 
emits some sounds, it's going to blast your ears off, without warning.

Overall I think the flat volumes idea might be appealing in theory, but breaks 
hard in a number of not-so-edge cases, which unfortunately are not that rare as 
they might have seemed to PA developers. Also, these cases either result in an 
annoyance ("the volume is too low and I don't see how to fix it") or even a 
physical attack (if an OS allows to blast 100% volume into my headphones even 
for regular, non-malicious apps, just because of "missing implementation", I 
won't be using that OS for long). The impact of these "bugs" is simply too 
high. I'd love to see flat volumes disabled by default.

[1] https://extensions.gnome.org/extension/858/volume-mixer/
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Reply via email to