7 ms·
Nearly all volume controls suck because by and large the software world is ignorant of the fact that loudness scales logarithmically. 99.9% of volume controls
by rectang 5y ago
Nearly all volume controls suck because by and large the software world is ignorant of the fact that loudness scales logarithmically. 99.9% of volume controls scale the output linearly.
- frosted-flakes 5y agoI used to own a BlackBerry 10 phone running BB10 OS. At the time, the dev team accepted suggestions on how to make the OS better, and I suggested they make the volume controls logarithmic instead of linear, and they did! I loved how quiet that phone would go while still remaining clear—I used to listen to audiobooks as I fell asleep at night, and rather than use headphones I would just set the volume to level 1 or 2 and put it on my pillow beside my ear. I haven't been able to do that with any other phone since because the volume doesn't go low enough, or if it does the audio is muddy.
- na85 5y agoI still have my old BB10 Passport. Weird form factor but that was an awesome device. It's too bad Blackberry really shit the bed with their OS and its lack of apps.
- AussieWog93 5y agoI still use my BB Classic as a daily driver. Really not looking forward to next April when 3G is switched off in Australia...
- frosted-flakes 5y agoThe Classic supports 4G, you know.
- AussieWog93 5y agoI know, mate. But no VoLTE. You still need 3g for voice.
- deleted 5y ago[deleted]
- mananaysiempre 5y agoIt’s weird how I nominally know this but never really thought about the implications... How does the hardware world do it? I’d expect the normal way to make a volume control would be to have an adjustable-gain amplifier using the standard opamp circuit somewhere, but those aren’t logarithmic in any resistance you could wire to a knob, are they? (Yes, I am deeply ignorant about electronics.)
- dbcurtis 5y agoProbably at least as far back as WW II we had linear taper pots and audio taper pots. Bam. Done.
- jeffbee 5y agoA lot of digital audio applications just do programmable gain in the digital domain. My main rig extends samples to 42 bits and attenuates in the digital domain, then dithers to 32 bits for the analog conversion.
- bigiain 5y agoLogarithmic potentiometers. https://learnabout-electronics.org/Resistors/resistors_09a.php https://learnabout-electronics.org/Resistors/resistors_09a.p...
- PeterisP 5y agoIt's exactly as you sugggest/doubt - in audio hardware you use potentiometers (the thing under the knob that has different resistance depending on the rotation) that are designed to have logarithmic scale.
- jiggawatts 5y agoThis is in the same category of error as most programmers thinking that sRGB uses a linear light model. They try to do arithmetic like blending or blurring on the raw image data this inevitably does the wrong thing. Similarly, most non-AAA game engines ignore the sRGB tone curve and treat all inputs and outputs as if they were linear, which results in unexpected brightness shifts in textures. Up until very recently, Blender used linear light internally, but output that as sRGB without converting it to the appropriate gamma curve. There's guide after guide online on how to fix Blender by using "filmic" mode, which should be renamed to "not broken" mode. Same thing as the colour picker in image editors like mspaint or Photoshop. They all have the same rainbow picker that has very visible discontinuities in the colour gradients, like a rippled curtain. It should be smooth, and it is, if using a perception-based colour model instead of linear light output straight to an sRGB monitor without any kind of colour correction. This kind of thing has been going on for decades, and will continue for decades more. Programming is still a growth industry, so the average developer is inexperienced and doesn't know about these subtleties.
- fomine3 5y agoCould you provide good documentation about such thing?
- boustrophedon 5y agoThere was a great post about gamma and sRGB from 2016 on HN a couple weeks ago[0] with some discussion[1] [0] http://blog.johnnovak.net/2016/09/21/what-every-coder-should-know-about-gamma/ http://blog.johnnovak.net/2016/09/21/what-every-coder-should... [1] https://news.ycombinator.com/item?id=27721094 https://news.ycombinator.com/item?id=27721094
- gabesk 5y agoCharles Poynton has good references on this. His website is very 90s, but his books (a la Digital Video and HD) are the best clearly explained introduction to color science and gamma vs linear light coding that I've ever read. https://www.poynton.ca/Poynton-color.html https://www.poynton.ca/Poynton-color.html
- Tempest1981 5y agoOn every iPad I've seen, only the lower 3-4 (of 16) steps are normal indoor range. Even the 1st step is too loud at night. I need half-steps. Is this due to linear vs logarithmic scaling? Or are people throwing wild parties where the iPad needs to fill a room with sound?
- kayodelycaon 5y ago> Or are people throwing wild parties where the iPad needs to fill a room with sound? I’ll often use my iPad as a portable media player and max volume is nice for things like music while showering or cooking in the kitchen.
- shinymark 5y agoI agree - when trying to watch something next to a sleeping partner even 1 step above muted is too loud. Annoying. I often watch Netflix muted and read subtitles because of this. I guess I need headphones. But I do really think a volume one half of the current lowest would be useful for me.
- mvolfik 5y agoHeadphones really are the solution. I used to have wired ones and these were quite uncomfortable to handle - cable messed up all the time, and even when you untangle them you have to avoid pulling it, so I used speaker most of the time anyway. I finally bought wireless buds a year ago and I really understood why so many people have these and talk about it - it's just too easy
- mike_pol 5y agoYou can go to the control centre or whatever it's called when you pull down from the battery side of the screen and tap and hold the volume widget, you can then drag your finger up/down to change the volume in small increments. I have the same issue as you when I'm listening to stuff at night.
- nyanpasu64 5y ago> 99.9% of volume controls scale the output linearly. Wrong. Windows's volume output is the percentage squared, and Linux PulseAudio's volume output is the percentage cubed. Nonetheless I would prefer that the volume output was exponential (2^(slider position / constant)). This way, pressing the "volume up" key 3 times always increases the volume by a constant factor, regardless if you're on loud or quiet speaker/headphones. Additionally, on loud headphones, you won't have to fine-tune the volume in the very bottom of the slider (eg. 1 is too quiet, 2 is a bit loud, 3 is painfully loud). On Windows, I hide the default volume control and instead use Volume2[1] set to exponential mode. On Linux, I haven't found a good solution for getting PulseAudio to use exponential volumes. [1]: https://irzyxa.blogspot.com/p/downloads.html https://irzyxa.blogspot.com/p/downloads.html
- javajosh 5y agoYou've given me an idea for a volume control - enter a function like x^2 or x^3, which is graphed (on a linear scale). Then pick an x. The y value will be your volume. (The component should reverse any platform specific non-linearity first.)
- nyanpasu64 5y agoHow would you compute the current volume level? You would have to either store the current x value (which could desync if you change the volume level using the OS volume control), or derive the nearest x from the current y value (which may be possible on PulseAudio, but I haven't checked if you're stuck to the nearest 1% or if you can get a more precise or dB level).
- javajosh 5y agoWell if the function you put in is continuous, single-valued , then you can invert it and compute x(y). At the end of the day if the volume is represented as a syscall with a float between 0 and 1 you can play arbitrary games with any bijective function to make setting that number arbitrarily complicated.
- 5y ago
- deleted 5y ago[deleted]
- onion2k 5y agoLiterally no one wants a logarithmic scale to interact with though. '50% volume' should definitely be in the middle of the slider. The OS should translate that in to decibels. The maths behind it has no place in the UI.
- kaba0 5y agoI think no one argues for having it visually. They argue for having the GUI linearity converted to appropriate perceptual linearity, which depends on the medium.
- christophilus 5y agoSame for brightness control, at least on my Linux computers. I vaguely remember it feeling right when I used a Mac.