3

Is there some way to quickly toggle the state of volume normalization in Windows 7? When it's off watching movies late is tricky, and when it's on it messes with music in a bad way.

It's a great feature, but argh, it requires me to make my way through so many dialogs... Any solution that requires no more than a couple of clicks or keystrokes is welcome - shortcuts, Autohotkey, tray icon apps.

4 Answers 4

2

Update: Good News! I finally accomplished this!

I bound ctrl+alt+n in AutoHotKey to do the following which you may need to modify, however through 2 sound cards and multiple drivers it's worked pretty consistently for me. Place your windows username and password in the appropriate fields. If you're concerned about security you may be able to create a secondary account for this or some such.

; Toggle Volume Normalization
^!n::
RunAs, [WINDOWS USERNAME HERE], [WINDOWS PASSWORD HERE]
; Playback Devices
Run, control mmsys.cpl
WinWait, Sound,, 2
CoordMode Mouse, Relative
; Double click on 'Speakers'
Click, 55, 122, 2
WinWait, Speakers,, 2
; Click on the Enhancements tab
Click, 145, 47
Sleep 500
; Click on the list box
Click, 86, 162
Sleep 500
; Come up 2 from the bottom, check this item (Loudness Equalization or Volume Normalization), hit OK, OK to be done.
Send {End}{Up 2}{Space}{Enter}{Enter}
return

Now just hit ctrl+alt+n and it's on, ctrl+alt+n and it's off. Maybe can tweak the times a bit to speed it up but I thought 500 would be safe.


I found this, started out as good news

http://www.sevenforums.com/sound-audio/92783-there-quick-toggle-loudness-equalization.html

You'll find the registry entry located at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render{guid-of-your-output-device}\FxProperties, just change on/off settings and refresh regedit to identify which one is reflecting what you want to check/un-check.

But after attempting the changes, as noted, even when checking "immediate mode" the registry change does not immediately update the setting, requiring a log off to kick in. I've since hunted for a way to somehow refresh the registry, maybe make a inf file that would be installed ? I'm not sure on that front.

I found this close to the answer, it's all bad news, they say from a software developer point of view, that you just can't do it without writing your own system effect.

http://social.msdn.microsoft.com/Forums/en/windowspro-audiodevelopment/thread/b028b430-48c5-434b-a644-da192fbf20a5

1
  • Good effort, thanks. It's weird, I sort of agree with the idea of Windows not letting any old program just change any old setting, because that way abusive programs cause grief...
    – RomanSt
    Feb 2, 2011 at 20:01
1

sound > speakers properities > enhanceents > [x]loudness equalization

source: http://anderwald.info/windows/normalize-all-sound-output-in-windows-vista-and-higher/

This is not the quickest but user friendly ;P

2
  • 1
    It stops being friendly if you switch it all the time :)
    – RomanSt
    Nov 13, 2011 at 1:09
  • There is a command-line utility that does this very well. It doesn't require to mess with your registry or install java. Just a simple executable with a dll: forums.mydigitallife.net/threads/…
    – MKANET
    Sep 28, 2017 at 1:54
1

I created new application that i use for this,not sure if anyone is looking for something like this anymore bud i still use it and cant go without it , i posted it onto sellfy , its written in java and c++ , needs some special permissions to get into the key where it wants to :) bud that takes just a minute https://sellfy.com/p/mE8f/

enter image description hereenter image description here

2
  • Thomas, I just sent you a message on your sellfy webpage. Id like to know how you were able to get the registry change to take affect without rebooting. Did you have to write a system effect? I'm trying to do this via PowerShell.
    – MKANET
    Sep 27, 2017 at 2:23
  • @MKANET As far as i remember i restarted audio device, code is availalbe on github btw. superuser.com/questions/521955/… Or i have done something else as well, try to change registry key and run the cmd command from the link, should take effect, bud you need to run some audio in background to detect difference, dont rely on registry key only.Since it can be changed bud audio still behaves based on previous value. Sep 28, 2017 at 15:24
0

My solution is made in AutoHotKey. Just run it and it'll toggle volume equalization on the top sound device. You can change line 4's co-ordinates if it needs to click somewhere else

Run, control mmsys.cpl ; Open Sound panel
WinWaitActivate("Sound ahk_class #32770",3)
MouseStartingPos := MouseGetPosAbsolute()
MouseClick,L,208,140,2,0 ; Open Speaker properties
WinWaitActivate("Properties ahk_class #32770",2)
SendInput,{Ctrl down}{tab 2}{Ctrl Up}{Down 3}{Space}{Enter 2} ;Toggle volume equalizer
MouseMoveAbsolute(MouseStartingPos[1],MouseStartingPos[2])
return

;Functions
WinWaitActivate(Input, MatchMode) ; 1 = Must start with. 2 = Can contain. 3 = Must exactly match
{
    SetTitleMatchMode,%MatchMode% 
    WinWait, % Input
    WinActivate, % Input
    WinWaitActive, % Input
}

MouseGetPosAbsolute()
{
    CoordMode,Mouse,Screen
    MouseGetPos,X,Y
    CoordMode,Mouse,Relative
    return [X,Y]
}

MouseMoveAbsolute(X,Y)
{
    CoordMode,Mouse,Screen
    MouseMove,X,Y,0
    CoordMode,Mouse,Relative
}

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .