Git Product home page Git Product logo

enable-loudness-equalisation's Introduction

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?

  • HDMI, Display Port, Digital Optical Output playback devices usually doesn't have it
  • if you can not find an audio driver version which adds loudness equalisation to any of your playback devices
  • you can't enable it globally in your driver

Why does it need to be scripted?

  • if you want to toggle it via hotkey
  • updates are messing with your audio drivers
  • some use cases lead into re-registration of HDMI or DisplayPort playback devices, which will purge your settings every time

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

  • all setting flags stored in fc52a749-4be9-4510-896e-966ba6525980 get overwritten, instead of just enabling loudness equalisation
  • flags key are different across Windows versions fc52a749-4be9-4510-896e-966ba6525980 used in this script works for Windows 11, maybe 10 as well.
  • If the playback device gets re-detected the audio service reboot maybe sets volume to default 100%
  • Sound Settings UI shows 0% volume if it was open during restart (reopening fixes it)
  • Restarting audio service after sleep does break the taskbar tray icon volume slider in some situations
    • mediakeys and sound settings UI volume controll still works fine
    • tray icon slider gets fixed with full reboot
  • does not work if your driver doesn't have any enhancements, try a different one

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

enable-loudness-equalisation's People

Contributors

falcosc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

enable-loudness-equalisation's Issues

Main Branch .PS1 issue

Rewording to clarify:

The current script in the main branch does not work - whenever I run the script on an audio device, Powershell shows "importing..." etc but the enhancements tab is not actually added. When I run the script from here, it works properly.

Optical Output DAC with realtek audio unlock the enhancements tab but no effects inside

I have a Dac connected by optical output to pc, with the guide it unlocks the enhancements tab (now it appear) in the sound panel of windows, but the are no enhancements to activate inside that. The devise use Realtek wich doesn't support the enhancements by default like nvidia high definition audio driver do. Is it normal that also with this script you can't use that with realtek device or there is to do something more?

Don't need to be enable

The script says loudness don't need to be enabled, but the the tab still doesn't show up. Used to work with vb-audio virtual cable on previous install. Driver should be the same version.

FxProperties is missing error

hello when im type name of my device i get this error:

FxProperties is missing, it is very likely that import of C:\Users\POUYAF~1\AppData\Local\Temp\SoundEnhancementsTMP.reg does not work.
Please check if following path got created or create it manually: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render{fb78e069-d181-4b48-8c77-1faa28e6e963}\FxProperties
import loudness activation into registry
Restart Audio to apply registry settings

Screenshot (326)

"Loudness settings don't need to be enabled"

I was able to successfully use this script about 3 weeks ago and was able to access the Enhancements tabs on my audio device. However, I checked my audio settings today and noticed that the tab was gone. I tried running the script again, but I end up getting the message "Loudness Settings don't need to be enabled" (seems to be falsely indicating that !missingLoudness is evaluating to true) and I'm unable to access the Enhancements tab any longer.

Would it be possible for you to create another script to reset the Loudness EQ settings for a given device? (I imagine it would be changing the values in the $fxPropertiesImport variable back to the default, but I don't know enough about Powershell scripting to feel comfortable trying this myself).

image

"Could not find any device"

Hi, i try to use this script to enable vb-audio cable, but it cannot find the device, i try with name (Hi-Fi Cable Input), with long name (Altoparlanti (VB-Audio Hi-Fi Cable)) but also with the same error.

I also check in the register and the name is: Hi-Fi Cable Input

What can i try???

Enhancements available in win10 but not 11

Hello, previously I was able to use loudness EQ in the enhancements tab like normal (shown here, win 10). When using the headset on win11, seemingly using the same 'default drivers' (although they are updated, win10 shown above, vs win11 here) it gives me no enhancements tab. I can manually add the registry strings (the main 3 and the hex/binary to enable loudness EQ) which shows the enhancements tab, just with no options underneath.
i dont know why Gdrive detects reg folders as audio, but here is my Win10 Render folder, I went through and found both of the hyperX 'folders' here
Here is my win11 Render folder, and you can find both the hyperx folders AND 2 folders for airpod Pros which HAD support for loudness EQ until a few days ago (it disappeared randomly, im not exactly sure what triggered it).
I might try to just import the old win10 hyperX 'folders' into both of the new HyperX 'folders', as even if it bricks my system, as frankly enough idc anymore (this system is a brick to me without Loudness EQ). If you reached this point, I want to thank you for taking the time reading this, as this has driven me crazy. Have a great rest of your day :)
ALSO - I know this isnt a specific problem with your software, but I figure you are by far the best person I could talk to, to get help on this issue.

Error running the script, term 'reg' is not recognized - no access to system32\reg.exe

`The term 'reg' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and
try again.
At line:1 char:1

  • . $env:HOMEPATH\EnableLoudness.ps1 -releaseTime 2
  •   + CategoryInfo          : ObjectNotFound: (reg:String) [EnableLoudness.ps1], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException,EnableLoudness.ps1`
    

instructions on how to revert

Hello there,

I see this script edits a bunch of registry keys but does not save a backup of their original values - can you please advice on how to completely revert from running it?

Not working for Speakers *Realtek(R) Audio* of ROG STRIX G614JV

Laptop: ROG STRIX G614JV

OS: Windows 11 Pro 23H2

Audio Devices:

- Bluetooth Apple Airpods 2 (WORKING)
- Bluetooth Sony WH-1000XM3 (WORKING)
- Laptop Speaker (NOT WORKING)

I tried the scripts with the devices above. All of the devices show the Enhancements tab after the script execution.

The two bluetooth devices works fine then.

But the Speaker device does not have any options in the Enhancements tab and the normalization effect seems not working either.

image

image

Below is the driver version

image

Headphones are now silent after cmd

Hello, after pasting the cmd into the powershell my headphones went silent and now I can't hear anything coming from them, also the loud eq page is just a blank white space. Is there any way I can revert the changes?

Main Script Not Updated!

For some reason, the commits added today do not reflect the functioning version of the script. Linked here is the functional version

Cheers

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.