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?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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?
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.
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
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?
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.
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.
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...
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.
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?
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.
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.)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.
I don't understand how could he register the dll, since there really isn't
DllRegisterServer
in the SwapAPODll.def:Just a duplicate, some sourceforge problem.
Last edit: Danijel Domazet 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.
Somehow you post is showing as empty. Perhaps it needs moderation by the project owner.
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
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.
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
Oh, I've found the same thing and wrote a similar post :) Sorry about that.
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?
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.
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.
Ok it does look at the sample rate -
https://sourceforge.net/p/equalizerapo/code/HEAD/tree/tags/1.2.1/VoicemeeterClient/VoicemeeterClient.cpp#l204
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.