ProblemSo today I got to enjoy some seriously awful pain from the developers of PulseAudio. Now I kind of like PulseAudio, when it works. Which hasn't always been consistent.
When using Fedora, I used my scroll wheel over the Amarok icon to increase the volume. This not only raised the volume of Amarok, but it also raised the master volume for my ENTIRE SYSTEM.
If one application requests it's volume level be increased, PulseAudio raises that programs volume and the Master volume... and leaves them at that level.
Now every new sound made by any other applications, which all fall under the Master Volume, are at potentially high levels.
There is also the situation where you manually cannot LOWER the volume if some other application is requesting it be higher. I found myself in that position today where I madly scrolled down over the Kmix icon, only to watch the volume flicker between 93-94% maximum.
Apparently this is not bug, it's working as designed. But I can personally attest that it is designed WRONG! https://bugs.kde.org/show_bug.cgi?id=288594
SolutionThe solution is simple. Edit (or create) the following file.
Make sure the following setting is enabled:
flat-volumes = noSave that file and reboot. (I don't know if you have to reboot or if there is an easier way.) If you need help knowing how to edit a file under Linux, here is my simple guide.
Ranting on the SideYes, I'm angry. This is awful and this is exactly the type of bullshit that gives people real reasons to legitimately criticize Linux. I shouldn't have my computer system suddenly explode with overwhelmingly high sound and STAY that way without my control.
My speakers are physically set to a very high volume because they are mounted around my room in stereo and not easy to access physically. I've controlled them digitally for over a decade. I will not have the freedom and power to control them with the flick of a keyboard button stolen from me because of this ineptly implemented feature.
I'm not saying you can't have a different paradigm for how audio should work, but god-damn-it you should not break (let alone shatter) the existing world to experiment. And that's exactly what this is: an experiment gone wrong. I honestly cannot see a situation where this could even possible work (as it is currently) for a user like me and thus the case for 90% of the rest of the world.