Increase granularity, range and curvature of the volume control slider

11

3

There is a common problem for USB speakers (such as Logitech SBS-150 in my case, for which Logitech provides no solution) and headphones- they are too loud. When you use the Windows volume control slider to put them to 1, they are still too loud (and there is really not much difference between 1 and 100), and of course 0 makes no sound, so you are stuck choosing either loud or no sound at all.

The above seems to indicate that the logarithm is applied twice to the linear 1-100 values from the slider, once by Windows and once by the speakers, which results in a curve that quickly reaches saturation. Windows 7 of course offers no way to adjust whether the logarithm is applied.

Another problem is when the user wants to increase the volume above 100. (Yes, yes, it may damage your speakers, blah blah. Irrelevant.)

It seems that it would solve a lot of problems if I could just set what values each point on the volume slider is supposed to correspond to, instead of Windows applying a log function itself. (At that point it doesn't matter if the log is applied, as you can insert an exponent function yourself to negate the log.)

The closest thing I have found is this page, which describes precisely what I want, but unfortunately it works only on Windows XP and not Windows 7; I was not able to locate the registry key in Windows 7 (I may have simply not looked hard enough, though).

Also helpful is Volumouse which lets you specify the step size for volume- this easily allows you to set the volume to a point between 1 and 0. This does accomplish the task of at least letting you decrease the volume, but 99% of the range is still essentially useless. Moreover, increasing or decreasing the spacing of steps is not how you deal with a logarithmic/exponential response curve.

So the question is, how can I do in Windows 7 what the registry method above does in Windows XP? Where is the registry key? Alternatively, how does Volumouse set volume to arbitrary values?

Superbest

Posted 2012-02-15T19:54:19.850

Reputation: 1 739

In addition to volumouse, you could also use 'volstep', if you would like to just have a 'drop-in' improvement to using the default volume hardware keys on a keyboard for instance, instead of having to get used to the new 'interface/use' that volumouse brings. https://sourceforge.net/projects/volstep/

– Vinícius M – 2018-09-05T13:48:27.270

Answers

4

If you can stand a command line, NirCmd from NirSoft offers a solution to specify volume by decibel:

 nircmd.exe setsubunitvolumedb "Speakers" "Wave" -20

See Nir's blog on the subject.


Also this command will adjust your main system volume

 nircmd.exe setsysvolume <0-65535>

And this one adjusts it up or down by steps you define:

 nircmd.exe changesysvolume [-]<0-65535>

Jeremy W

Posted 2012-02-15T19:54:19.850

Reputation: 3 529

NirCmd has a bunch of other useful functions as well. Really nice to have on Windows, coming from a Linux environment where basically anything is possible from the command line. – Trevor Jex – 2018-08-17T19:18:09.577

Nirsoft is an amazing software repo full of useful things, nircmd included. However this doesn't solve the user's issue. It's a problem of cheap USB sound cards making the Windows volume slider operating more like a linear slider than a logarithmic, which it should be, since it's dealing with audio. Using 'setsysvolme' or pretty much any option on nircmd won't fix it, since it's still setting the system volume to <something>, and anything above 0 will be already too loud. Mateen Ulhaq's answer is probably the user's best bet, although still not ideal, it works. – Vinícius M – 2018-09-05T13:39:22.260

Also, those 65535 steps are meaningless, unfortunately. The system doesn't provide that level of granularity, so in practice, it's just a less intuitive way of changing volume. For instance, I just tested on a couple of systems here, and all the way from nircmd.exe setsysvolume "0" until "502" means 100% mute, while 503 actually changes the system volume to 1%, which is fine on my desktop sound card, but - already too loud on a cheap USB sound card. =P And above 503, until 1005, no change at all in volume. – Vinícius M – 2018-09-05T13:42:25.207

2

I don't have any solution for register tweaking under Windows 7, but if you want to boost the sound volume above 100% you might find this tool interesting. There is a free version available there which should work with most common Windows applications, including iTunes and YouTube.

Alexander Galkin

Posted 2012-02-15T19:54:19.850

Reputation: 998

2

The easiest solution I've found is running sound output through EqualizerAPO and simply setting the pre-amp to -20dB.

Peace GUI will help you if you don't know how to edit the config file manually.

enter image description here

If you have problems running Equalizer APO, you probably need to uninstall your sound drivers and reinstall the Microsoft Windows default sound drivers.

Mateen Ulhaq

Posted 2012-02-15T19:54:19.850

Reputation: 3 207

1

When you use the Windows volume control slider to put them 1, they are still too loud (and there is really not much difference between 1 and 100), and of course 0 makes no sound, so you are stuck choosing either loud or no sound at all.

The above seems to indicate that the logarithm is applied twice to the linear 1-100 values from the slider, once by Windows and once by the speakers, which results in a curve that quickly reaches saturation.

I've noticed this in the past and have suffered the problem since I started using windows 7 -- that is, until tonight, when I obsessively started playing with options within the 'Volume Control Options' available in the right click 'Speakers' menu. In there, I had unchecked the option "All devices playing sound" and applied it and voila! My volume was restored to the way it should behave... Oddly enough, however, re-checking that option doesn't duplicate the aforementioned problem, so I have no idea if this problem will return after a reboot.

Anyhow, it seems to have done the trick, at least once. Hopefully, it'll never happen again. I thank you for inspiring me to again, obsessively, search for a resolution to this because this has been one maddeningly aggravating frustration that I had resolved to loathe about 7 for the rest of my days. In my quest to learn something new everyday, it seems I've achieved my goal, if only for today. YAY me.

Dr001M0nK3y

Posted 2012-02-15T19:54:19.850

Reputation: 11