FiltergAPO
development
requirement
- LibrosaCpp
- libtorch
thanks
This project is implemented by adding functions to MinimalAPO published in Equalizer APO.
The readme of the original MinimalAPO is below.
Preparation steps:
- Build the project for your OS architecture (Win32/x64).
- Register the APO by opening a command shell with Administrator privileges
in the corresponding build directory (e.g. x64\Debug) and typing
regsvr32 FiltergAPO.dll
- Open regedit, go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Audio
and create a DWORD value named DisableProtectedAudioDG with value 1 to allow unsigned APOs to run.
- Go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render and
find your default audio device by looking at the Properties subkeys. In the FxProperties subkey of the device
create or change the value for {d04e05a6-594b-4fb6-a80d-01af5eed7d1d},1 to {0129658B-8ED4-47E7-BFA5-E2933B128766}.
If there is the value {d04e05a6-594b-4fb6-a80d-01af5eed7d1d},5 then set that instead.
- Go to the Sound control panel and make sure that audio enhancements are enabled for your device.
- Open a command shell with Administrator privileges, type
sc config audiosrv type= own
and reboot to make the system start the audio service in a separate process. Otherwise the APO DLL will likely be
permanently locked until reboot even when the audio service has been stopped.
Development steps:
- Launch an audio application and verify that the APO is effective. Without changes to the processing method,
you should hear some noticeable distortion.
- Change the APO code. You might want to start with the method FiltergAPO::APOProcess, where the actual audio
processing happens. You can debug by attaching to audiodg.exe.
- Stop the Windows Audio service (AudioSrv) to unlock the FiltergAPO.dll.
- Build the Visual Studio project to overwrite it with the new DLL.
- Start the Windows Audio service again and continue with step 1.
Necessary steps before release (just some hints):
- Change the class name FiltergAPO.
- Change the registration properties at the top of FiltergAPO.cpp (change name and insert your copyright statement).
- Use the GUID generator (C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\guidgen.exe)
to generate your own GUID and place it into the __declspec (uuid(...)) declaration in FiltergAPO.h.
Removal steps:
- Revert the changes you made to the FxProperties subkey of the default audio device (see preparation step 4).
If you can't, you can also just reinstall the audio device driver.
- Open regedit, go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Audio
and remove the value named DisableProtectedAudioDG to reenable APO signature checking.
- Unregister the APO by opening a command shell with Administrator privileges
in the build directory (e.g. x64\Debug) and typing
regsvr32 /u FiltergAPO.dll