Falcosc / enable-loudness-equalisation

automatically adds and enables loudness equalisation to any playback device
GNU General Public License v3.0
43 stars 9 forks source link

Enable Loudness Equalisation

Automatically adds and enables loudness equalisation to any playback device.

Only works if your selected driver supports enhancements for speakers, but didn't expose this support for any other output devices. This script will expose any existing support, but can not work if the driver doesn't ship any.

before execution after execution
Enhancements Missing Enhancements Added

If you are looking for bass boost, you can use the more complex version of this script https://github.com/Falcosc/enable-bass-boost

How to Download and Run

run in powershell

Invoke-WebRequest https://raw.githubusercontent.com/Falcosc/enable-loudness-equalisation/main/EnableLoudness.ps1 -OutFile $env:HOMEPATH\EnableLoudness.ps1
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
. $env:HOMEPATH\EnableLoudness.ps1

Or if you want to set the fastest possible time until sound level gets adjusted (unpleasend to daily usage but gives a competitive edge on video games where dynamic audiolevel adjustments are not banned)

. $env:HOMEPATH\EnableLoudness.ps1 -releaseTime 2

When is it needed?

Why does it need to be scripted?

What does it do?

  1. search for all active playback devices by name in registry
  2. imports audio enhancement settings
    • PreMixEffectClsid and PostMixEffectClsid
    • StreamEffectClsid and ModeEffectClsid
    • Enhancement Tab UI defnition
    • loudness equalisation flag
    • release time value
  3. restarts audio service to apply changed registry values

Known Issues

Install as Task

  1. Open Task Scheduler
  2. Action -> Create Task...
  3. General -> Run with highest privileges

    Run with highest privileges

  4. Triggers -> New...

    Additional Triggers

  5. Actions -> New...
    • Action: Start a program
    • Program: powershell
    • Add arguments: -WindowStyle hidden -f %HOMEPATH%\EnableLoudness.ps1 -playbackDeviceName BE279
  6. To test it you could use an invalid DeviceName like "-playbackDeviceName XXX" then you will see an error message pop-up after login

    Test Error