Menu

Can't install on Windows 10?

2020-12-07
2020-12-21
1 2 > >> (Page 1 of 2)
  • Danijel Domazet

    Danijel Domazet - 2020-12-07

    I've installed the Equalizer APO on my Windows 10 Lenovo P1 laptop. I opened the Sound properties, checked my devies, but I saw nothing related to Equalizer APO, there is nothing in the UI under Advanced, neither to activate nor to lounch the Eq.

    I tried to reinstall, tried SFX/EFX option, installed for default and other devices, checked the "hardware acceleration" to be disabled, allowed "enhancements", etc, etc, restarted numerous times, and NOTHING helped.

    Am I missing something?
    Is there a log?

     
  • Peter Verbeek

    Peter Verbeek - 2020-12-07

    Equalizer APO isn't visible in the sound properties of an audio device. Equalizer APO installs itself on an audio device by rerouting the audio stream. For that purpose it changes some registry keys for that device.

    I guess you have checked if Equalizer APO is installed on the target device. By default it installs itself on the speakers/headphones and microphone. You're right by selecting SFX/EFX on Windows 10 computer. Did you follow this troubleshooting wiki? It also shows how to enable a trace log. Perhaps it tells us something. I'm not an expert but I know a few things.

     
  • Danijel Domazet

    Danijel Domazet - 2020-12-08

    Equalizer APO isn't visible in the sound properties

    OK, that explains it.
    I saw a lot of GUI screenshots, so I got confused, I was sure there is a UI, at least enable/disable checkbox. Now I see that those screenshots are related to another thing I missed to notice: "Equalizer APO is best used in conjunction with Room EQ Wizard". So the GUI is from the Room EQ Wizard, which is a completely different tool.

    I just opened the config.txt, and played a bit with the gain - it works, so the Equalizer APO is in fact functioning on my machine. It's just that it isn't easy to verify it is actualy there.

    OK... sorry for the confusion.

    Now, the question is: how do I deactivate it! Uninstall? Gain=0?

     

    Last edit: Danijel Domazet 2020-12-08
    • Peter Verbeek

      Peter Verbeek - 2020-12-08

      I've been working with Equalizer APO for more than 6 years. But I understand your confusion. There are several GUI's for Equalizer APO including its own one called Configuration Editor. I'm the creator of the Peace interface. All these GUI's write to config.txt (or an included file). This file is read by the audio engine of Equalizer APO. If there's nothing in this file nothing is done to the audio. So that is the same as deactivating it.

      What are you looking for? An equalizer?

       
  • Danijel Domazet

    Danijel Domazet - 2020-12-08

    OK, all clear.
    This should probably be stated a bit more clearer in the home page.
    We could always say RTFM. :-)

    I am looking into APOs in general, interested to see how they are done.

     
  • Peter Verbeek

    Peter Verbeek - 2020-12-08

    Yes, you're right. Unfortunately the developer isn't that active on his project. I am but my main concern is Peace. But nowadays I do answer most questions on the Equalizer APO website.

    APO's are a part of the software of the audio manufacturer. Usually those aren't that great. Using the features of Equalizer APO, the Peace interface has an equalizer and effects panel with lots of features like bass/treble, up/dowmixing, crossfeeding, channel rerouting and balancing, to name a few. And then there's HeSuVi of yet another UI developer. This simulates surround sound on headphones by using a technique called convolution. Basically, when one is grabbing the audio stream of a device, one could do lots of things (as a developer). Equalizer APO has also a VST plugin support. It isn't always working but for those plugins that work it's great.

     
  • Danijel Domazet

    Danijel Domazet - 2020-12-08

    OK, understand. Too bad the dev isn't active... but I don't blame him. :-)
    I am looking at APOs and how they are built. Do you know how an APO can be tested and debugged? Is the whole Windows driver needed, or APO can be done just by itself? Seems like a complicated topic...

     
    • Peter Verbeek

      Peter Verbeek - 2020-12-09

      Basically an APO is a part of an audio device driver. Equalizer APO gets to the audio stream of a device by rerouting some APO registry keys of that device. You could say it's a hack. Therefore when the device driver is updated this Equalizer APO's hack gets undone.

      When you want to build an APO yourself the easiest way is to build a device driver with an APO. This device driver may be a virtual one which outputs to another device driver. Then it's a matter of building software to change the audio stream according to the APO architecture. In the case of Equalizer APO changes the audio stream through biquad filters, convolution and rerouting channels.

       
  • Danijel Domazet

    Danijel Domazet - 2020-12-10

    Thanks for the answer.
    What's the main reason Equalizer didn't install via own (virtual) device driver, rahter than "hacking" through other devices' registry?

     
    • Peter Verbeek

      Peter Verbeek - 2020-12-10

      I'm not sure. But I can come up with one main reason. In principle each actual device needs a virtual one for changing the audio going into or coming out of this device. So a bunch of virtual devices need to be installed, all controlled by one program like Equalizer APO does. This is possible as VoiceMeeter, for instance, is able to do so. The virtual cable of the maker of VoiceMeeter is such a virtual device. And perhaps there are reasons I can't see. Of course there can be a Windows audio system limitation. If there's no limitation and all other obstacles are taken away then virtual devices is to be preferred above the "hack". It'll create a stable audio changing platform which doesn't break if new device drivers are installed or if another audio Windows update is installed.

      So basically it's up to a developer's ability to create such a virtual device. All code for changing the audio is already in the Equalizer APO source code.

       
      • Danijel Domazet

        Danijel Domazet - 2020-12-21

        Thanks Peter.

        While trying to learn APOs, I came across the blog post Try to implement APO, the deepest part of the Windows (it's in Japanese, so Google translate should be "on").

        The blog post provides steps on how to do a quick-and-dirty SwapAPO.dll installation, SwapAPO being the official Microsoft example APO.

        Do you think it is doing the very similar thing as the Equalizer APO does when installing itself as a replacement for the existing system APOs? To me, it looks very simple, and I was always thinking that installing an example APO would be a pain? Could you please peek into that blog post and just in short let me know if the step-by-step procedure makes sense, or is it same as Eq APO's?

        (Btw, I tried to follow those steps, but got stuck at trying to register the dll: regsvr32.exe SwapAPO.dll gives me error "entry point DllRegisterServer was not found". Not sure if the blog post is worth further inspection. And I can't ask the blogger because of the japanese captcha.)

         
        • Peter Verbeek

          Peter Verbeek - 2020-12-21

          That Japanese blog post is interesting. It precisely describes how to install a device with an APO. But basically it's the same as Microsoft's swapping channels example. Of course when using Windows 10 GFX/LFX it should be SFX/EFX as the changed it (upgraded it?). But things are as the image on that post describes.

          When an audio hardware manufacturer makes a new piece of hardware, it creates the audio device and the APO for that hardware. Although these two are separated, I think, there are connected by registry keys. As you and I aren't making audio hardware like an audio chip the issue I see is not about creating an APO but how to get the audio stream from the virtual APO device to an actual device. I don't understand how this is done. It might be the audio mixer feature of Windows or some other method. Equalizer APO does it quite differently. It forces the audio stream of a target device through its APO, all done by changing the proper registry keys of the target audio device. This isn't bad practice but may cause issues we're all familiar with.

          The APO part of the blog is exactly the same as the APO part of Equalizer APO. Perhaps better said, an APO is an APO except for the GFX/LFX (WIndows Vista and 7) and SFX/EFX (Windows 8 and 10) difference. In principle Equalizer APO's APO can be inserted for the swap channels example APO.

          The "entry point DllRegisterServer was not found" can be a few things. For instance, the dll isn't correctly built or the user doesn't have the rights to register it. Unfortunately, I'm not an expert. I know that Equalizer APO's EqualizerAPO.dll file is registered through a similar way or exactly the same as you did.

           
          • Danijel Domazet

            Danijel Domazet - 2020-12-21

            I don't understand how could he register the dll, since there really isn't DllRegisterServer in the SwapAPODll.def:

            EXPORTS
                DllCanUnloadNow     PRIVATE
                DllGetClassObject   PRIVATE
            
             
          • Danijel Domazet

            Danijel Domazet - 2020-12-21

            Just a duplicate, some sourceforge problem.

             

            Last edit: Danijel Domazet 2020-12-21
            • Peter Verbeek

              Peter Verbeek - 2020-12-21

              I'm under the impression that this is done during the installation process of an app. The installation program gets the highest rights to install everything including dll's which need to be registered.

               
            • Peter Verbeek

              Peter Verbeek - 2020-12-21

              Somehow you post is showing as empty. Perhaps it needs moderation by the project owner.

               
      • Ron Kuper

        Ron Kuper - 2020-12-21

        Interestingly EqualizerAPO also wrote a client for VoiceMeeter, affectively using VoiceMeeter's virtual device. Guess in that mode it's not actually an APO anymore :)

         

        Last edit: Ron Kuper 2020-12-21
        • Peter Verbeek

          Peter Verbeek - 2020-12-21

          It could be but that means that Equalizer APO is also rerouting the registry keys of the virtual audio devices of VoiceMeeter. But I think along the same lines as you do as there's file called VoicemeeterClient.exe which needs to be started on computer startup. Or better said, it needs to be running all the time to do the audio to/from VoiceMeeter.

           
          • Ron Kuper

            Ron Kuper - 2020-12-21

            No (re: rerouting the registry) - from what I understand he has implemented a VoiceMeeter client. It is registered and showing in VoiceMeeter as an API client (the R's in the upper UI).

            So in this case it is not using the Windows APO interface to get the stream, it uses VoiceMeeter API Audio Callback.

             

            Last edit: Ron Kuper 2020-12-21
            • Peter Verbeek

              Peter Verbeek - 2020-12-21

              Oh, I've found the same thing and wrote a similar post :) Sorry about that.

               
  • Ron Kuper

    Ron Kuper - 2020-12-21

    This discussion is fascinating!
    Thank you Peter for writing these explanations.

    I was curios, while working on the audio stream an APO gets, it (the APO ) needs to be aware of the sample rate and bit depth?

     
    • Peter Verbeek

      Peter Verbeek - 2020-12-21

      Yes, it is :)

      Yes, I think it needs to be aware. For example when applying a biquad filter (peak, high/low shelf, etc.) the sample rate is needed to calculate its response. And the bit depth is of course related to the "resolution" of the audio stream so that is needed too.

       
      • Ron Kuper

        Ron Kuper - 2020-12-21

        I see. Guess it is relevant to working with audio streams in general.

        I'm asking since I haven't seen a reference to it in the VoiceMeeter API guide -
        https://forum.vb-audio.com/viewtopic.php?f=8&t=346

        Guess I can take a look at the EqualizerAPO code.

         
        • Ron Kuper

          Ron Kuper - 2020-12-21

          Ok it does look at the sample rate -

          https://sourceforge.net/p/equalizerapo/code/HEAD/tree/tags/1.2.1/VoicemeeterClient/VoicemeeterClient.cpp#l204

          case VBVMR_CBCOMMAND_STARTING:
                  {
                      VBVMR_LPT_AUDIOINFO audioInfo = (VBVMR_LPT_AUDIOINFO)lpData;
                      for (FilterEngine* engine : engines)
                          if (engine != NULL)
                              engine->initialize((float)audioInfo->samplerate, 8, 8, 8, 0, audioInfo->nbSamplePerFrame);
                      VoicemeeterAPOInfo::saveVoicemeeterSampleRate((unsigned)audioInfo->samplerate);
                  }
                  break;
          
           
          • Peter Verbeek

            Peter Verbeek - 2020-12-21

            Yes.
            I wonder though what will happen if the set sample rate in VoiceMeeter differs from the one in Equalizer APO. When I use VoiceMeeter with Equalizer APO it produces so much distortion that it's unusable. Perhaps the mismatch of sample rate is the cause. I'm very much speculating here.

             
1 2 > >> (Page 1 of 2)

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.