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

25

9

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?

Angus

Posted 2011-11-19T04:06:45.480

Reputation: 564

1Can somebody tell how to modify the hard coded value 51 or hook IAudioEndpointVolume::VolumeStepUp()? – user1641838 – 2017-09-19T02:38:40.003

I've been looking for this sort of thing off and on for years with no luck. The best I've found is to use a third-party volume control app. – Andrew Lambert – 2011-11-19T05:10:24.437

1

I've now installed 3RVX, which lets me adjust this and also provides a reasonable on-screen volume display. http://matthew.malensek.net/software/

– Angus – 2011-11-20T07:17:52.900

Answers

10

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.

Tak

Posted 2011-11-19T04:06:45.480

Reputation: 263

@Crono yes it does - http://github.com/malensek/3RVX/issues/57

– Steven Penny – 2016-12-25T17:07:40.593

1On my Windows 8.1 box, I am able to increment/decrement the volume by left-clicking the volume icon in the tool tray and then pressing the up/down arrows. – Bill Hoag – 2014-01-08T17:54:48.180

13RVX doesn't seem to allow adjusting increment... – Crono – 2014-05-07T14:49:35.277

4

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)

user829755

Posted 2011-11-19T04:06:45.480

Reputation: 387

4

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.

Steven Penny

Posted 2011-11-19T04:06:45.480

Reputation: 7 294

2

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.

Mu-Tsun Tsai

Posted 2011-11-19T04:06:45.480

Reputation: 141

I approve the AutoHotkey recommendation: a lot of customization ability without the need of complex scripting. – Joe DF – 2019-09-03T20:12:31.743

1

I also had user829755's problem (needing smaller increments instead of larger). Since this question was closed as a duplicate of this one, but I didn't get the full answer I needed there, I thought I'd extend the AutoHotkey answer to cover the case of odd volume increments:

; Fix Windows Volume:
$Volume_Up::
    SoundGet, volume 
    Send {Volume_Up}
    SoundSet, volume + 1
Return

$Volume_Down::
    SoundGet, volume 
    Send {Volume_Down}
    SoundSet, volume - 1
Return

Like Mu-Tsun Tsai's answer, this is an AutoHotkey script. One key difference is that it sends the volume command to Endpoint first (which sets the volume to the next highest/lowest even value and brings up the graphical display), then ignores the default action and overwrites the volume with the value I want.

MPStoering

Posted 2011-11-19T04:06:45.480

Reputation: 21