Menu

Equalizer APO does not work with latest Windows 10

Patrick
2020-05-05
2020-06-12
  • Patrick

    Patrick - 2020-05-05

    I've been tearing my hair out all evening trying to get APO to work on a brand new, fresh install of Windows 10. Using both the onboard Realtek audio chipset and an external Behringer UMC202HD interface, Equalizer APO has no effect. I've tried every available driver version for both soundcards, reinstalled APO multiple times, and tried the various modes available in the troubleshooting section of the configurator. Rebooted probably 30 or so times by now. And yes, I've even made sure that "disable all enhancements" isn't checked. It's never been checked.

    None of these attempts has let Equalizer APO have any effect on either sound device. Previously, with the same UMC202HD on a slightly earlier version of Windows (maybe a month old) I was using APO with zero issues. I reinstalled Windows due to a motherboard and CPU upgrade. However, even using the same drivers I was using on the previous motherboard for the UMC202, equalizer APO does not work.

    I would appreciate any help in troubleshooting this issue. I need Equalizer APO for my music production as my sound system has a custom EQ and there are no other programs I know of that can do the same thing as well as EQAPO does.

    Thanks in advance! Hopefully tomorrow I can make some more headway with the help of people here.

     
  • Peter Verbeek

    Peter Verbeek - 2020-05-05

    Hi Patrick, I though I had given you some advise but I can't seem to find the post. So I've made this post.

    It's unfortunate that Equalizer APO didn't work out of the box but it does happen at new Windows 10 installations. So have you installed all Windows updates? And you aren't using the insiders preview updates? These may mess up the Windows audio system.

    Does Equalizer APO work on the Realtek chipset? And you have installed (activated) Equalizer APO on the UMC202 in the Configurator?

    After setting a trouble shooting option you have restarted your computer to implement it?

    Did you do what's described here on the audio panel of the UMC202?

     
  • Patrick

    Patrick - 2020-05-05

    Hi Peter, thanks for taking the time to help.

    No, I'm not using an insider build. I do have some pending windows updates however, including some "important" ones, so I suppose that's another thing to try.

    In the meantime, more about my current APO woes. Equalizer APO does not work on the onboard realtek chipset either. It's currently enabled on both. When installing Equalizer APO, I've tried both the LFX/GFX and SFX/EFX options and neither one worked.

    I've also triple-checked that "disable enhancements" isn't checked on either device. And I do not have the "enable audio enhancements" checkbox in the Advanced tab for the UMC202. For the realtek device, it is there but it is also checked.

    I will report back after installing all pending windows updates. Thanks again for the reply. In the meantime any other troubleshooting you can recommend would be appreciated!

     
  • Patrick

    Patrick - 2020-05-05

    No luck. Installed latest windows updates, completely uninstalled EqAPO, reinstalled UMC202 drivers, and still no effect on either device.

    Is there any type of debugging that can be done to see what's failing? It's obvious something in the Configurator isn't setting up the APO properly as neither device seems to be able to accept it. This would imply to me that Windows has introduced a new change to the way audio devices handle APO, or there's something else obvious that I'm missing.

     
  • Peter Verbeek

    Peter Verbeek - 2020-05-05

    The debugging is done by enabling the trace log. Once on you get a log file which you can show here. I'm not an expert on it but perhaps we can figure something out.

     

    Last edit: Peter Verbeek 2020-05-05
  • Patrick

    Patrick - 2020-05-06

    This looks normal to me. I don't see any glaring errors. This was from a reboot, after reinstalling the APO on my devices. Still no effect to either of them.

    2020-05-05 19:04:10.834 10540 108B5290 (EqualizerAPO.cpp:100): (TRACE) Initialize
    2020-05-05 19:04:10.834 10540 108B5290 (EqualizerAPO.cpp:115): (TRACE) APO GUID: {EACD2258-FCAC-4FF4-B36D-419E924A6D79}
    2020-05-05 19:04:10.834 10540 108B5290 (EqualizerAPO.cpp:132): (TRACE) Endpoint GUID: {BF33A1F0-9A3B-4A79-84DC-E18F34467C5D}
    2020-05-05 19:04:10.837 10540 108B5290 (EqualizerAPO.cpp:156): (TRACE) Child APO GUID: {62dc1a93-ae24-464c-a43e-452f824c4250}
    2020-05-05 19:04:10.837 10540 108B5290 (EqualizerAPO.cpp:200): (TRACE) Successfully created and initialized child APO
    2020-05-05 19:04:10.837 10540 108B5290 (EqualizerAPO.cpp:222): (TRACE) RequestedInputFormat = { 00000003, 2, 4, 32, 44100.000000, 00000003 }
    2020-05-05 19:04:10.838 10540 108B5290 (EqualizerAPO.cpp:234): (TRACE) Output format = { 00000003, 2, 4, 32, 48000.000000, 00000003 }
    2020-05-05 19:04:10.838 10540 108B5290 (EqualizerAPO.cpp:241): (TRACE) Success in IsInputFormatSupported of child apo
    2020-05-05 19:04:10.838 10540 108B5290 (EqualizerAPO.cpp:274): (TRACE) InputFormat not accepted, SupportedInputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 }
    2020-05-05 19:04:10.842 10540 108B5290 (EqualizerAPO.cpp:100): (TRACE) Initialize
    2020-05-05 19:04:10.842 10540 108B5290 (EqualizerAPO.cpp:115): (TRACE) APO GUID: {EACD2258-FCAC-4FF4-B36D-419E924A6D79}
    2020-05-05 19:04:10.842 10540 108B5290 (EqualizerAPO.cpp:132): (TRACE) Endpoint GUID: {BF33A1F0-9A3B-4A79-84DC-E18F34467C5D}
    2020-05-05 19:04:10.845 10540 108B5290 (EqualizerAPO.cpp:156): (TRACE) Child APO GUID: {62dc1a93-ae24-464c-a43e-452f824c4250}
    2020-05-05 19:04:10.845 10540 108B5290 (EqualizerAPO.cpp:200): (TRACE) Successfully created and initialized child APO
    2020-05-05 19:04:10.846 10540 108B5290 (EqualizerAPO.cpp:222): (TRACE) RequestedInputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 }
    2020-05-05 19:04:10.846 10540 108B5290 (EqualizerAPO.cpp:234): (TRACE) Output format = { 00000003, 2, 4, 32, 48000.000000, 00000003 }
    2020-05-05 19:04:10.846 10540 108B5290 (EqualizerAPO.cpp:241): (TRACE) Success in IsInputFormatSupported of child apo
    2020-05-05 19:04:10.846 10540 108B5290 (EqualizerAPO.cpp:278): (TRACE) InputFormat accepted
    2020-05-05 19:04:10.850 10540 10888B40 (EqualizerAPO.cpp:100): (TRACE) Initialize
    2020-05-05 19:04:10.850 10540 10888B40 (EqualizerAPO.cpp:115): (TRACE) APO GUID: {EC1CC9CE-FAED-4822-828A-82A81A6F018F}
    2020-05-05 19:04:10.850 10540 10888B40 (EqualizerAPO.cpp:132): (TRACE) Endpoint GUID: {BF33A1F0-9A3B-4A79-84DC-E18F34467C5D}
    2020-05-05 19:04:10.854 10540 10888B40 (EqualizerAPO.cpp:156): (TRACE) Child APO GUID: {637c490d-eee3-4c0a-973f-371958802da2}
    2020-05-05 19:04:10.854 10540 10888B40 (EqualizerAPO.cpp:200): (TRACE) Successfully created and initialized child APO
    2020-05-05 19:04:10.857 10540 108A84F0 (EqualizerAPO.cpp:100): (TRACE) Initialize
    2020-05-05 19:04:10.857 10540 108A84F0 (EqualizerAPO.cpp:115): (TRACE) APO GUID: {EC1CC9CE-FAED-4822-828A-82A81A6F018F}
    2020-05-05 19:04:10.857 10540 108A84F0 (EqualizerAPO.cpp:132): (TRACE) Endpoint GUID: {BF33A1F0-9A3B-4A79-84DC-E18F34467C5D}
    2020-05-05 19:04:10.859 10540 108A84F0 (EqualizerAPO.cpp:156): (TRACE) Child APO GUID: {637c490d-eee3-4c0a-973f-371958802da2}
    2020-05-05 19:04:10.860 10540 108A84F0 (EqualizerAPO.cpp:200): (TRACE) Successfully created and initialized child APO
    2020-05-05 19:04:10.860 10540 108A84F0 (EqualizerAPO.cpp:302): (TRACE) Input format in LockForProcess = { 00000003, 2, 4, 32, 48000.000000, 00000003, 480 }
    2020-05-05 19:04:10.860 10540 108A84F0 (EqualizerAPO.cpp:316): (TRACE) Output format in LockForProcess = { 00000003, 2, 4, 32, 48000.000000, 00000003, 480 }
    2020-05-05 19:04:10.861 10540 108A84F0 (EqualizerAPO.cpp:323): (TRACE) Success in LockForProcess of child apo
    2020-05-05 19:04:10.861 10540 108A84F0 (EqualizerAPO.cpp:222): (TRACE) RequestedInputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 }
    2020-05-05 19:04:10.861 10540 108A84F0 (EqualizerAPO.cpp:234): (TRACE) Output format = { 00000003, 2, 4, 32, 48000.000000, 00000003 }
    2020-05-05 19:04:10.861 10540 108A84F0 (EqualizerAPO.cpp:241): (TRACE) Success in IsInputFormatSupported of child apo
    2020-05-05 19:04:10.861 10540 108A84F0 (EqualizerAPO.cpp:278): (TRACE) InputFormat accepted
    2020-05-05 19:04:10.861 10540 108A84F0 (EqualizerAPO.cpp:335): (TRACE) LockForProcess successful
    2020-05-05 19:04:10.862 10540 108A8570 (FilterEngine.cpp:164): (TRACE) 2 channels for this device: L R
    2020-05-05 19:04:10.862 10540 108A8570 (FilterEngine.cpp:268): (TRACE) Loading configuration from C:\Program Files\EqualizerAPO\config\config.txt
    2020-05-05 19:04:10.862 10540 118EF530 (filters\PreampFilterFactory.cpp:42): (TRACE) Adjusting preamp by -6 dB
    2020-05-05 19:04:10.862 10540 108A8570 (FilterEngine.cpp:268): (TRACE) Loading configuration from C:\Program Files\EqualizerAPO\config\example.txt
    2020-05-05 19:04:10.863 10540 116FE960 (filters\BiQuadFilterFactory.cpp:202): (TRACE) Adding peaking filter with frequency 20 Hz, gain 4 dB and Q 1
    2020-05-05 19:04:10.863 10540 116FE960 (filters\BiQuadFilterFactory.cpp:202): (TRACE) Adding peaking filter with frequency 45 Hz, gain 2 dB and Q 1
    2020-05-05 19:04:10.863 10540 118EF570 (filters\GraphicEQFilterFactory.cpp:61): (TRACE) Graphic equalizer with 15 nodes
    2020-05-05 19:04:10.865 10540 108A8570 (FilterEngine.cpp:256): (TRACE) Finished loading configuration after 3.289500 milliseconds
    2020-05-05 19:04:10.865 10540 108A8570 (FilterEngine.cpp:204): (TRACE) Successfully created directory change notification thread 4572 for C:\Program Files\EqualizerAPO\config and its subtree
    2020-05-05 19:04:10.866 10540 108B5290 (EqualizerAPO.cpp:302): (TRACE) Input format in LockForProcess = { 00000003, 2, 4, 32, 48000.000000, 00000003, 528 }
    2020-05-05 19:04:10.866 10540 108B5290 (EqualizerAPO.cpp:316): (TRACE) Output format in LockForProcess = { 00000003, 2, 4, 32, 48000.000000, 00000003, 528 }
    2020-05-05 19:04:10.866 10540 108B5290 (EqualizerAPO.cpp:323): (TRACE) Success in LockForProcess of child apo
    2020-05-05 19:04:10.866 10540 108B5290 (EqualizerAPO.cpp:222): (TRACE) RequestedInputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 }
    2020-05-05 19:04:10.867 10540 108B5290 (EqualizerAPO.cpp:234): (TRACE) Output format = { 00000003, 2, 4, 32, 48000.000000, 00000003 }
    2020-05-05 19:04:10.867 10540 108B5290 (EqualizerAPO.cpp:241): (TRACE) Success in IsInputFormatSupported of child apo
    2020-05-05 19:04:10.867 10540 108B5290 (EqualizerAPO.cpp:278): (TRACE) InputFormat accepted
    2020-05-05 19:04:10.867 10540 108B5290 (EqualizerAPO.cpp:335): (TRACE) LockForProcess successful
    2020-05-05 19:04:10.867 10540 108B5310 (FilterEngine.cpp:164): (TRACE) 2 channels for this device: L R
    2020-05-05 19:04:10.867 10540 108B5310 (FilterEngine.cpp:268): (TRACE) Loading configuration from C:\Program Files\EqualizerAPO\config\config.txt
    2020-05-05 19:04:10.868 10540 108B5310 (FilterEngine.cpp:268): (TRACE) Loading configuration from C:\Program Files\EqualizerAPO\config\example.txt
    2020-05-05 19:04:10.868 10540 108B5310 (FilterEngine.cpp:256): (TRACE) Finished loading configuration after 0.477100 milliseconds
    2020-05-05 19:04:10.868 10540 108B5310 (FilterEngine.cpp:204): (TRACE) Successfully created directory change notification thread 15324 for C:\Program Files\EqualizerAPO\config and its subtree
    2020-05-05 19:04:24.470 10540 108B5310 (FilterEngine.cpp:106): (TRACE) Successfully terminated directory change notification thread
    2020-05-05 19:04:24.471 10540 108A8570 (FilterEngine.cpp:106): (TRACE) Successfully terminated directory change notification thread
    

    I really hope the answer to this problem isn't "sorry, it just won't work on your PC." Is the project even developed anymore? Right now my sound system is pretty much unusable.

     
  • Patrick

    Patrick - 2020-05-06

    I think I might've figured it out. However I can't verify if this was the root issue or not.

    I tried installing Viper4Windows just as a test. It also didn't work, as expected. However, when running the program it asked to install a Visual C++ Redistributable which I did. Not sure if that has anything to do with the beloew results though. Read on...

    I unistalled Viper4Windows and reinstalled Equalizer APO.

    However, this time instead of opening my previous config file (named room.txt) I tried editing the default config.txt file. And, it actually worked! Things were changing on the output of my UMC202 as expected. So, I copied over all the parametric EQ settings from the room.txt file to the config.txt file. My speakers sound great again. Evidently you can't use text files that aren't the default config.txt.

    I tried adding a second device selector for my motherboard realtek souncard, to EQ my headphones as well. However, it appears that still isn't working. So I suppose this is a partial success. One device is now working, but one device is still unresponsive to APO changes.

     
    👍
    1

    Last edit: Patrick 2020-05-06
  • Peter Verbeek

    Peter Verbeek - 2020-05-06

    Well, the first step is taken :)

    Viper4Windows is an Equalizer APO clone. It needs a Visual C++ library because its interface is probably made with C++.

    To include, say, room.txt add the line: Include: room.txt
    I'm using this for the Peace interface which adds the line: Include: peace.txt

    Yes, the trace log does look all right. It could be different for another device though. Perhaps for that the second device you need setting some trouble shooting option.

     
  • predatorsw

    predatorsw - 2020-05-29

    I'll add I just installed this on a win10 box and it just flat doesn't do anything. Kind of a drag.

     
  • Adminback

    Adminback - 2020-05-30

    but you can also undo an windows update. and then update when a new update comes out. can that also work for you?

     
  • predatorsw

    predatorsw - 2020-05-30

    https://appuals.com/how-to-fix-equalizer-apo-not-working-on-windows-10/

    The switch to SFX/EFX as stated in Solution 1 fixed it for me. It involves a couple reboots to get those specific options to show up on the dialog.

     
    • Peter Verbeek

      Peter Verbeek - 2020-05-30

      Yep, somehow that works in most cases. Out of curiosity, did you follow the troubleshooting wiki of Equalizer APO?

       
      • predatorsw

        predatorsw - 2020-05-30

        Two things about the wiki. First, it doesn't show Windows 10 specifically. I know that's silly, but Windows 10 is Windows 10. If I see dialogs or paths through Control Panel that don't exist any longer I do start to get a little hesitent. Second, I'm getting old enough that I don't like manually editing the registry anymore. As an aside, the solutions put forth in the wiki didn't work. I googled it and found the link above.

        This is a great little program but needs a little updating for Windows 10. Having a specific wiki setup for troubleshooting is not a good sign. I googled to find this in the first place because I sat through a webinar where the presenter had such an abysmal sound setup I simply could not understand what they were saying. I needed to boost up the highs and figured there simply had to be a software solution out there that would do this easily.

         

        Last edit: predatorsw 2020-05-30
        • Peter Verbeek

          Peter Verbeek - 2020-05-30

          I can only agree when you're saying the wiki needs updating to Windows 10. Besides, there are specific Windows issues such as using the insiders preview Windows updates which might "break" the audio and/or Equalizer APO. For Peace interface I've reserved a chapter for Windows 10 isssues.

          As for the trace log, a checkbox on the Configurator would be nice. Also I notice that the \EqualizerAPO.log file isn't created in C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp but in c:\Users\pever\AppData\Local\Temp (well, on my Windows 10 laptop). This also needs a wiki update.

          On Windows 10 "Install as SFX/EFX" which is labeled with "experimental" does seem to work often. I don't know what this means.

           
  • predatorsw

    predatorsw - 2020-05-30

    This is the Microsoft "Audio Processing Object Overview" documentation, which goes into pretty good detail about what is going on.

    https://docs.microsoft.com/en-us/windows-hardware/drivers/audio/audio-processing-object-architecture

     
    • Peter Verbeek

      Peter Verbeek - 2020-05-31

      Thanks for the link. In the past I browsed this documentation already. My guess is that most (if not all) hardware/software of audio manufacturers does have the SFX and/orEFX implemented. Therefor "Install as SFX/EFX" works but I don't know what's experimental about it. Anyway, in principle Equalizer APO could use EFX (Endpoint Effect). It only needs to pick up the audio stream somewhere and do its magic.

       
  • FireKahuna

    FireKahuna - 2020-06-02

    Yeah I encountered a similar issue, SFX/EFX fixed it. LFX/GFX had distortion that was quite notable. But using SFX/EFX specifically, SFX (pre-mix) is utterly distorted and broken, while EFX (post-mix) works and sounds perfect.

    SFX/EFX is part of the more modern APO framework, likely better to support than legacy LFX/GFX.

     

    Last edit: FireKahuna 2020-06-02
    • Peter Verbeek

      Peter Verbeek - 2020-06-02

      That's usefull information, Matthew. As I read through the Microsoft doc on APO I didn't see any LFX/GFX. I figured it's deprecated but you're confirming it. Do you think SFX/EFX is a Windows 10 feature? Equalizer APO tries to support from Windows Vista to 10.

       
      • FireKahuna

        FireKahuna - 2020-06-03

        From research its an 8.1 feature, but fully 100% supported best in Windows 10. Considering Windows 8 (no .1) is dead, its basically Windows 8 and Windows 10. Vista/7 would need to use LFX/GFX. Ideally EqualizerAPO might need to do some internal updating to map its APO implementation better with the Windows documented samples for SFX/(MFX or EFX) to properly support Windows 10, tbh I tried looking and have no clue how Equalizer APO is implementing SFX/MFX/EFX atm.

         
  • Peter Verbeek

    Peter Verbeek - 2020-06-03

    Equalizer APO reroutes the audio stream of a device to its engine by changing the registry keys of that particular device.
    As far as I can see all major stuff is happening in DeviceAPOInfo.cpp. In the load function there's this line:
    currentInstallState.installMode = INSTALL_LFX_GFX;
    So on Windows 8 and 10 this should be:
    currentInstallState.installMode = INSTALL_SFX_EFX; if the device supports this of course. I'm not sure if an audio driver of Windows Vista/7 can be installed on Windows 10. And perhaps there's more to it.

    In HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture{GUID}\FxProperties (where GUID is the unique id of a device) there are keys stating the capabilities. Thus where Equalizer APO can pick up the stream (I think).
    The concerning keys are {d04e05a6-594b-4fb6-a80d-01af5eed7d1d,#} where # is:
    1 = LFX
    2 = GFX
    5 = SFX
    6 = MFX
    7 = EFX

    When I'm zooming in on every entry I have in the registry on audio devices I see more values then the above. There's 0, 3, 10 for instance. Also for my USB mic doesn't a FxProperties. Could mean that Equalizer APO isn't possible on this mic.

     
  • predatorsw

    predatorsw - 2020-06-03

    Are changing these registry entries the only reason for rebooting? It seems these could be changed on the fly. There is the issue of the audio system building up and tearing down the audio chain that seems would force a reboot. In this day and age it just seems a little silly to force a reboot for something as trivial as adding a link into the audio processing chain. You'd probably have to come up with a way to unload and reload the audio system to avoid it. Wonder if this is possible?

     
    • Peter Verbeek

      Peter Verbeek - 2020-06-03

      Yes, I have but I'm not the creator of Equalizer APO so I can't incorporate it. A reboot is always a sure way to go but cumbersome as you're implying. Anyway, it's a matter of stopping and restarting the audio system service. If you know how it's simple. In Peace I've made a special button for this process. One click and a change is done. For Windows 10 however one needs administrator rights to do the same (for security reasons). Give Peace these rights and the button still works. This could change (or have changed) as Microsoft tries to secure Windows more and more. Then one has only the reboot option :(

       
  • David Smith

    David Smith - 2020-06-12

    Been enjoying Equalizer APO with my office system - nearfield 2.1 system.
    Recently updated Windows 10 to Version 2004 - OS Build 19041.329
    Of course it broke Equalizer APO as a new sound driver was installed.
    Tried everything - rebooted countless times, registry editing, uninstalling, installing. Downgrading audio drivers, etc.
    It wasn't until I found this thread and the post regarding config.txt (sourceforge.net)
    When I loaded the config.txt and made that the active tab window - it worked!
    I find the easiest way to see if Equalizer APO is working is by adding a Preamplification stage and make sure Instant mode is on (Covered in the documentation).
    Apparantly the Instant Mode only works on config.txt
    I figured that I could have any name for the config file and as long as it was the active tabbed window would work.
    Can I suggest that this be put in the troubleshooting section?
    I see that config.txt is mentioned in step 2 in the Configuration Tutorial, but it isn't really clear that config.txt is the active file.

     
    • Peter Verbeek

      Peter Verbeek - 2020-06-12

      As creator of Peace I'm using an include file called peace.txt. The config.txt has this command:
      include: peace.txt
      Including a file this way always seems to work.

       

      Last edit: Peter Verbeek 2020-06-12

Log in to post a comment.

MongoDB Logo MongoDB