Remix.run Logo
taneq 2 days ago

Ever have a cheap set of external speakers that got super loud in the first quarter turn of the volume knob but were pretty much the same loudness after that? Yeah, linear pot for the volume knob.

No need for an encoder and software, though, logarithmic pots are readily available for precisely this reason. :)

godsinhisheaven 2 days ago | parent | next [-]

This doesn't make any sense to me. Isn't this completely backwards? Wouldn't this behavior be expected from a logarithmic knob, and not a linear knob? I know what a logarithmic curve looks like, it rises quickly and then it tapers off, exactly the behavior you describe. But then you attribute that to a lineae knob! The parent comment confuses the hell out of me too, I am just really not putting 2 and 2 together here.

msandford 2 days ago | parent | next [-]

You're missing a critical piece of information. Human hearing (and vision) are logarithmic sensors.

Ears can register sounds from maybe 20-30 dB upwards of 120ish which isn't a factor of 4-6 in terms of power but rather a factor of 120-30=90 decibels or 9 bels or 10^9 or one billion.

Because your ears have absolutely enormous range you need the potentiometer (pot) to have a logarithmic taper to it. The amplifier has an essentially fixed amount of amplification so that's a fixed sound dB output. Your ears can hear a vast range. A linear pot essentially locks the entire output into the same 10 decibels as the amplifier maximum output through its linearity. Once you've turned it to 10% of the range it has precisely 10 decibels worth of range left. If you want to turn the volume down by 40 decibels you have to do that within the 0-10% part of the pot's range.

A logarithmic pot will give you maybe 40-60 decibels worth of adjustment by dividing things up differently. Every 20% of the range increases the output not by 20% but by a factor of 10 let's say. That gives you a pot with a range of 50 decibels which is enough that it roughly matches the absolutely miraculous range of the ear.

hansvm 2 days ago | parent | prev | next [-]

"logarithmic" here refers to the number on the scale being logarithmic in the sound pressure level. Restated, power is exponential in the knob value, which roughly matches human perception of a linear increase. An actual linear function is far too slow.

godsinhisheaven 2 days ago | parent [-]

Got it, so the sound pressure is logarithmic, but the sound power is exponential, and you can control both at once with one knob, and they, align, quite well I guess.

brazzy 2 days ago | parent | prev [-]

The point is that sound perception is logarithmic. You perceive a 10 times stronger air vibration as twice as loud. So if you have a knob that increases the power that produces the vibrations linearly, you hear a logarithmic increase.

You need a knob that increases power exponentially to hear a linear increase in loudness.

rusk 2 days ago | parent | prev [-]

No I’ve never had one of those LOL

Pots do log and lin scales but they only have a limited angular range.

mattmanser 2 days ago | parent [-]

I've actually noticed this two days ago with some bluetooth headphones and my phone.

The volume control on my android phone was acting just like this when my headphones were connected. When changing the volume with the phone only a small section of the bottom quarter of the volume control actually made a difference, but the volume controls on the headphone themselves were acting "normally".

Usually the phone volume is fine, it only screws up on bluetooth devices (my speakers + my headphones). I have to use the volume control on the device itself to have any good control.

This explains the weird behaviour, the phone volume changes are being sent linearly, but the headphone/speaker settings are correct and being set logarithmically.

i.e. somewhere a developer working on the bluetooth integration didn't understand the difference, screwed up and never tested it. That it's happening to both my Edifier speakers and my cheapo headphones probably means it's on the stock Android end (it's a pixel phone).

Severian 2 days ago | parent [-]

I've had the same issues as you, and here are some things I've done or tried as a remedy.

Try going into Android "Developer options" and enable the option "Disable Absolute Volume". Some devices cannot handle the way Android maps the "master" volume of the system to Bluetooth. With the option enabled you will have a separate slider to adjust the Bluetooth volume, and the volume buttons will instead only control the "Media" volume.

An alternate thing to do is under the same Developer Options is instead of disabling Absolute control is to change the Bluetooth AVRCP version to at least v1.5. v1.5 AVRCP introduces the Absolute Volume control functionality.

But, it could also be what you may have are Bluetooth devices that do not support Absolute Volume, or lack AVRCP v1.5 compatibility. If none of this works, I suggest purchasing the "Precise Volume 2.0 + Equalizer" app. I use this as it gives you more fine-grained control over the number of steps in the volume slider (for example, I now have 100 steps). It also allows you to calibrate the number of steps to a specific device, so you can literally change how many steps from quiet to loud. It's worth all of the $10 it costs, and has other nice quality of life features as well.