Changing the size of the audio volume increment of the "volume up" / "volume down" keys

Same as this question but for Windows: How can I adjust by how much the sound volume changes every time I press the volume change keys?

I'm on a Windows 7 laptop. It has "volume up" and "volume down" keys on the keyboard. Pressing them changes the volume by a tiny amount. Is there a setting or registry key or something to change that amount, or will I have to install third-party software to do it?


Solution 1:

Yes a third-party app seems to be the best solution.

Microsoft's response to the problem is this;

The keypresses are sent to the OS as APPCOMMAND_VOLUME_UP and APPCOMMAND_VOLUME_DOWN HID messages. These are then translated to calls to IAudioEndpointVolume::VolumeStepUp() or IAudioEndpointVolume::VolumeStepDown(); this is hardcoded to 51 steps.

Possible mitigations are to toy with the keyboard refresh rate in the Control Panel or to write an app that listens for the APPCOMMAND_VOLUME_UP HID messages and does its own thing.

Some laptop manufacturers provide a third-party application that captures special keypresses and provides OSD etc, and this might be customizable.

Otherwise I'd also recommend 3RVX as per your comments.

Solution 2:

In contrary to the OP my aim was to reduce the increment from 2% to 1% for my in-ear-phones. My workaround without having to install 3rd party software was to reduce the volume of the source (e.g. media player) to 50%. Since final volume = source volume * taskbar volume the 2%-steps are now effectively 1%-steps (I never need more than 20% of the max volume)

Solution 3:

You can use the open source 3RVX program:

  1. Settings

  2. Hotkeys

  3. +

  4. Keys

  5. Action: Increase Volume

  6. Amount: 10 Percent

Note that 3RVX also has skins beyond what comes with the release. For example, I am using the “Windows Default” skin. What is also useful is that you can customize these skins by modifying the skin.xml file. I changed mine to increase the font size.

Solution 4:

The must satisfying way I found is to use an AutoHotKey script. As you might know, AutoHotKey can intercept keyboard event and do a lot of things. The script I use is the following:

~Volume_Up::SoundSet, +8
~Volume_Down::SoundSet, -8

In my case, the default volume increment is 2. I want to make it 10, so here I add/substract 8 more units (the ~ symbol at the beginning means "do not block default action", so the default volume action, including showing the system OSD, still work as normal), and it works perfectly.