Home Theater Forum and Systems banner

Software equalizer for use with REW on Windows

126K views 232 replies 54 participants last post by  ja00 
#1 ·
Hi,
this post is about Equalizer APO, an open source equalizer for Windows. (as it is free, this should not be regarded as advertising)

I have been using Room EQ Wizard for some time together with a BFD and with the kX driver but could not find a system-wide equalization solution in software that just works on all sound cards. When I adopted Windows 7 as my primary operating system I noticed its integrated home theater effects, which are available with many sound card drivers but which do not include a parametric equalizer. As I found out, it is possible to develop custom audio effects since Windows Vista and so I began working on this missing feature. I call the result "Equalizer APO".

Equalizer APO is a system-wide parametric equalizer for Windows. It is implemented as an Audio Processing Object (APO) for the system effect infrastructure introduced with Windows Vista. The reason I post this in the REW forum is that Equalizer APO can use the filter settings from REW with minimal effort by just exporting the filter settings as a text file, which becomes a configuration file for Equalizer APO. In contrast to most hardware equalizers there are virtually no limits on filter count and channel count.

You can find more information at http://sourceforge.net/projects/equalizerapo and, of course, download the installer. I would really appreciate some feedback. If you have any questions or objections, please reply to this post.
 
See less See more
#74 ·
Unfortunately (or maybe fortunately, since otherwise I might NEVER finish with this :dumbcrazy:), my legacy setup for REW doesn't let me easily calibrate each speaker individually, so I'm still settling for doing all 5.2 at once.
Knowing what I now know about filters and their corresponding numbers (and that they are irrelevant, in case you missed that), I removed all my existing eq except for MCACC's settings for distance and level. I then ran REW four consecutive times, each time adding the resulting filter file to Equalizer APO.
In other words, I started with no eq, ran REW, exported those filters to E-APO, then ran REW again, exported THOSE filters to E-APO, and so on, until I had four sets of filters in my config file.
Here are my results:
The purple line is no eq except MCACC's distance and level settings.The blue line is with the filters in E-APO. Note that my subs only go to the low 20Hz; the graph extending below that is a Buttkicker.
NO smoothing!



This is the rest of the range with 1/12 smoothing.



Jonas, thanks again for an outstanding program and the support that got me to this point. My mundane (relative to most in these parts) system sounds FABULOUS! :wave:
Michael
 
#78 · (Edited)
Hiya

Amazing software here. I'm playing around with it and REW and the pair of them make for a more sophisticated audio machine than I ever dreamed of.

Just wondering whether the equalization is also applied to Dolby/DTS encoded audio?

I can see that its possible to apply the equalisation to different channels, but its almost too good to be true to start thinking that it could equalize each channel from a Dolby/DTS channel individually using this.
 
#80 ·
Just wondering whether the equalization is also applied to Dolby/DTS encoded audio?

I can see that its possible to apply the equalisation to different channels, but its almost too good to be true to start thinking that it could equalize each channel from a Dolby/DTS channel individually using this.
APOs can only process unencoded audio streams. This means that the Dolby/DTS bitstream has to be decoded by your audio/video player so that it reaches Equalizer APO in unencoded form. After equalization, Dolby Digital Live or DTS Connect could be used to reencode to a bitstream for streaming to an AV receiver, but of course that's only supported on select hardware. If your sound card does not support reencoding to bitstream, you will have to either use analog outputs or HDMI LPCM output, because SPDIF only supports two channels for uncompressed audio.
 
#82 ·
Good news (I think!)

Although my experiment with HDMI into my TV speakers didnt work, I figure its probably got more to do with the television.

By staying with spdif, I could tell the Shark007 codecs to decode a Dolby surround stream to 2 channel PCM which I saw flick the symbol from DDigital to PCM on my receiver and heard audible equalisation by setting the pre-amp to -21 dB.

Conversely, by telling the codec to bitstream to the receiver, I lost the equalisation and saw the receiver switch from PCM to DDigital.

:sweat: I'm sort of surprised it was that easy :)
 
#83 ·
Good news (I think!)

[...]

By staying with spdif, I could tell the Shark007 codecs to decode a Dolby surround stream to 2 channel PCM which I saw flick the symbol from DDigital to PCM on my receiver and heard audible equalisation by setting the pre-amp to -21 dB. [...]
So your codec pack supports decoding the Dolby Digital streams, which is already something. But unfortunately, that's only the easiest part. My previous experiences with uncompressed multichannel audio over HDMI have been quite negative (multichannel not working in all applications, they are mostly outputting only two channels), so it's still not sure that it will work when you have a receiver supporting HDMI. Please share your results when you get there.
 
#85 ·
I'm working on installing REW so I can use this parametric EQ from sourceforge that requires REW.

I have some ASIO drivers installed that are essential to my recording equipment (TASCAM series multichannel USB interfaces). I want to use REW and this APO only for the sound of this notebook computer through its own speakers (or whatever get plugged into its headphone jack).

Is there any chance that the APO will interfere with the ASIO drivers I currently use for my external recording interfaces or are APOs and ASIOs completely unrelated?

Thanks in advance for any advice/education in this area!
 
#87 ·
Really great program and one I've been looking for as I mainly play most my media through the PC.

I have a problem though, any changes I make to the config file have nil effect to the sound through my receiver?

I'm using HDMI out from my PC direct to my Onkyo receiver. No enhancement are selected but am out putting 5.1 through the sound card via HDMI and the program is installed for HDMI and seems to be working as the instructions indicate.

Please let me know if im doing something wrong.

Dave.
 
#90 · (Edited)
first of all, forgive my poor english.
APO eq is really great. Instead of buying an Antimode (hardware) to correct my sub (10-120Hz). I now use APOeq to cover 10-16kHz

To equalize my 5.1 system (connected with my PCHC via HDMI of my ATI card), I use REW with Asio4all (need to desactivate audiosrv service for asio4all to work) to send data to each channel. After that I create the filters for each channel and put it in config.txt file THEN to use it with APO I reactivate audiosrv
Now my question : Is calculate filters in Asio4all mode and using it with Directsound is a good way to do ?
in other words, what is the effect of changing the output mode in REW on the filter calculation
 
#93 ·
good morning ( it 8:40 AM here in france), it's me again.
1) In the config.txt file i would like to include: c:\Users\michel\Documents\filter.txt and can't succeeded
i try with and without single and double quote with and without \ , \\ , /, //

2) for filtrer >1Khz REW insert à blank after the thousand (1 234 Hz) when saving in text mode and APOEq does'nt recognize this format. I have to suppress it manually. Could the developper take the region format in account
 
#95 ·
in fact the problem is not with My documents but before
Include: c:\Users\filter.txt works but
c:\Users\michel\filter.txt and
c:\Users\All Users\filter.txt doesn't work
i also try c:\Utilisateurs\michel\filter.txt (users in french) but it doesn't work
c:\Users\Default\filter.txt and c:\Users\Public\filter.txt WORKS
 
#98 · (Edited)
- it's not relate to filter choice
with FBQ2496 you have : Filter 12: ON PEQ Fc 1 483 Hz Gain -1,5 dB BW Oct 1,500
and again the blank in "1 483" is not recognize by E-APO
but if you suppress the blank Filter 12: ON PEQ Fc 1483 Hz Gain -1,5 dB BW Oct 1,500 works as do generic filter

as you can see -1,5 dB in french and 1.5 db en english works (like 1483,26 Hz and 1483.26 Hz)
REW uses region choice to format his number but E-APO don't. It's an E-APO bug.

- I agree that some folders work and i can put files in this directory (and in fact that's what i do) but I would like to understand why i can't read my home directory with E-APO.
 
#107 · (Edited)
- it's not relate to filter choice
with FBQ2496 you have : Filter 12: ON PEQ Fc 1 483 Hz Gain -1,5 dB BW Oct 1,500
and again the blank in "1 483" is not recognize by E-APO
but if you suppress the blank Filter 12: ON PEQ Fc 1483 Hz Gain -1,5 dB BW Oct 1,500 works as do generic filter

as you can see -1,5 dB in french and 1.5 db en english works (like 1483,26 Hz and 1483.26 Hz)
REW uses region choice to format his number but E-APO don't. It's an E-APO bug.
REW's text file export format seems not to be designed for interpretation by other programs but just for human readability. That's why it uses the regional formatting of numbers. Equalizer APO doesn't take the current locale into account because I want the filter file format to be usable for exchange without locale problems. So you are right, it's an E-APO bug, which I will fix in the next release by allowing space characters in the frequency parameter. But this is not coming soon.

As an intermediate solution, I propose the following:
  • Download the JAR file version of RoomEQWizard (which was meant for Linux originally but works equally well on Windows).
  • Extract it and put a file run.bat into the folder where the *.jar files reside.
  • Open the run.bat with your favorite text editor and put the following line into it:
    Code:
    start javaw -Duser.language=en -Duser.country=US -jar RoomEQ_Wizard_obf.jar
  • Run RoomEQWizard by double clicking this .bat file. It will make REW use the english locale for number formats.

- I agree that some folders work and i can put files in this directory (and in fact that's what i do) but I would like to understand why i can't read my home directory with E-APO.
This is a permission problem. Equalizer APO is running inside a service (audiosrv as you know). Therefore it's not using your user account to access files but the account "Local Service". When you put a file into your home directory, it's normally not accessible to "Local Service". This is the reason Equalizer APO creates a config directory in the installation process, with additional permissions so that any user can read and write it. To make the file in your home directory accessible to E-APO, you have to edit its security settings: Add the user Local Service (Service Local in french Windows, I think) to the security tab in the file's properties and make sure that it has at least the "Read" permission.

I do not recommend using files outside of E-APO's config directory however, as only the config directory and its subtree is monitored for changes. This means that changing the file in your home directory will not make E-APO reload its configuration, you either have to also change a file in the config directory or stop all your running audio applications and restart them/restart playback, which is much less convenient.
 
#99 · (Edited)
for the space character problem in number, i try to modify the region setting in windows parameters
- if i choice "English (USA)", filters in REW appears like 1,234.56 OK
- if i choice "france", filters in REW appears like 1 234, 56 OK in REW no OK in E-APO
- if i choice "france", and modify format number to suppress space , filters in REW continue to appears like 1 234, 56 no OK in REW
So we have two problems, one with REW windows number format not correctly used, one with E-APO who could'nt treat space in number
PS both problems ( number and file in users directory) are reproduiced in two PC, one at home and one at office

in fact, after further investigation, i note that ibn E-APO
-english or france region are not taken in account
2,000 and 2.000 mean 2000 ( and 2 000 does'nt work )
2,000.11 (english syntax) does'nt work
 
#105 ·
I think I already said thanks for this but I'm going to say thanks again. I finally got around to installing it on my HTPC after I've taken some REW measurements and generated some EQ filters. I setup the config.txt for Equalizer APO to be shared over the network so I can sit at the listening position with my laptop while editing the text file and hear the changes in real time. :D So awesome!
 
#106 ·
as as say before :
To equalize my 5.1 system (connected with my PCHC via HDMI of my ATI card), I use REW with Asio4all (need to desactivate audiosrv service for asio4all to work) to send data to each channel. After that I create the filters for each channel and put it in config.txt file THEN to use it with APO I reactivate audiosrv.
but for the moment each channel (configure in small) is equalize with the sub ON including sub itself.
I just try to equalize them with sub OFF, then turn on sub to equalize sub alone.
Obviously, the two methods do not create the same set of filters.
what is the best way ?
 
#113 ·
Many sound systems do bass redirection to the subwoofer channel. If there's no redirection, then it should not matter if you enable the subwoofer while measuring the other channels. But as you see a difference, your system uses bass redirection.

Therefore, measuring the other channels with the sub turned off leads to a wrong measurement, as it will not take into account the sound your subwoofer will put out when sound is fed to the other channels. Thus, the first method should deliver better results.

To verify the result, you can measure again after completing the EQ configuration, but this time not through ASIO but using the normal "Java" audio output, without routing to a specific channel. Then you see the resulting frequency response as if playing back a normal stereo source. You should see a better equalization here using the first method (measuring with subwoofer on).

If you have only one speaker for the low frequencies anyway, you could also use this measurement to create the filters for the lower frequency range and just apply it to all channels and then just create individual filter sets for the higher frequencies (see where the frequency responses for the channels begin to differ).
 
#108 · (Edited)
thanks for your interest in my problem
-i try your solution : start javaw -Duser.language=en -Duser.country=US -jar RoomEQ_Wizard_obf.jar
but in REW, device input and output boxes are empty. NOK

(if i load an old save and find again filters, REW create filters with comma (2,239 hz) OK for E-APO)

- for the second problem, if you monitor only config directory, i will stay in this dir.
by the way, if your are the developer, your software are really great

edit : with click on RoomEQ_Wizard_obf.jar => boxes are not empty so your cmdline are probably wrong (but i don't know where of course)

edit2 PS win7x64 :
Error loading win32com: java.lang.UnsatisfiedLinkError: no win32com in java.library.path
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: C:\Program Files (x86)\Room EQ Wizard V5\jasiohost.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
 
#109 ·
edit : with click on RoomEQ_Wizard_obf.jar => boxes are not empty so your cmdline are probably wrong (but i don't know where of course)

edit2 PS win7x64 :
Error loading win32com: java.lang.UnsatisfiedLinkError: no win32com in java.library.path
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: C:\Program Files (x86)\Room EQ Wizard V5\jasiohost.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
Ok, this lead me to try it on 64 bit Windows (still using 32 bit myself). As I found out, the problem is that a 64 bit JVM is used, which REW can't handle unfortunately. Change the run.bat to this and it should work:
Code:
start %SystemRoot%\SysWOW64\javaw -Duser.language=en -Duser.country=US -jar RoomEQ_Wizard_obf.jar
by the way, if your are the developer, your software are really great
I am, thank you ;)
 
#111 ·
HI, I have installed Equalizer APO on my Windows 7 64bit Machine.

I have set it up to install the APO on my laptops HP output. However when I Uncheck "Disable System Effects" I get no sound out the the HP jack or internal speakers. If I check the box, I get signal to the jack. I noticed that with the box unchecked in the Windows Sound mixer, I can see signal for the application, however no signal on the output fader.

I enabeld traces in the registry and Equalizer APO produced this log file:

2013-08-24 19:50:30.563 01FEC470 (EqualizerAPO.cpp:92): (TRACE) Initialize
2013-08-24 19:50:30.563 01FEC470 (EqualizerAPO.cpp:114): (TRACE) Endpoint GUID: {67CC9701-78AE-4CF2-86DA-DEBA51ED9670}
2013-08-24 19:50:30.564 01FEC470 (EqualizerAPO.cpp:138): (TRACE) Child APO GUID: {BBB6B5C5-E723-4703-9A5D-92F94C5EE034}
2013-08-24 19:50:30.574 01FEC470 (EqualizerAPO.cpp:182): (TRACE) Successfully created and initialized child APO
2013-08-24 19:50:30.577 01FEC470 (EqualizerAPO.cpp:281): (TRACE) Success in LockForProcess of child apo
2013-08-24 19:50:30.577 01FEC470 (EqualizerAPO.cpp:204): (TRACE) RequestedInputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 }
2013-08-24 19:50:30.578 01FEC470 (EqualizerAPO.cpp:216): (TRACE) Output format = { 00000003, 2, 4, 32, 48000.000000, 00000000 }
2013-08-24 19:50:30.578 01FEC470 (EqualizerAPO.cpp:223): (TRACE) Success in IsInputFormatSupported of child apo
2013-08-24 19:50:30.579 01FEC470 (EqualizerAPO.cpp:302): (TRACE) Input format in LockForProcess = { 00000003, 2, 4, 32, 48000.000000, 00000003 }
2013-08-24 19:50:30.579 01FEC470 (EqualizerAPO.cpp:314): (TRACE) Output format in LockForProcess = { 00000003, 2, 4, 32, 48000.000000, 00000000 }
2013-08-24 19:50:30.580 01FEC4F0 (ParametricEQ.cpp:171): (TRACE) 2 channels for this device: L R
2013-08-24 19:50:30.580 01FEC4F0 (ParametricEQ.cpp:243): (TRACE) Loading configuration from C:\Program Files\EqualizerAPO\config\config.txt
2013-08-24 19:50:30.581 01FEC4F0 (ParametricEQ.cpp:564): (TRACE) Adjusting preamp by -6 dB
2013-08-24 19:50:30.582 01FEC4F0 (ParametricEQ.cpp:243): (TRACE) Loading configuration from C:\Program Files\EqualizerAPO\config\example.txt
2013-08-24 19:50:30.583 01FEC4F0 (ParametricEQ.cpp:530): (TRACE) Adding peaking filter with frequency 20 Hz, gain 4 dB and Q 1
2013-08-24 19:50:30.583 01FEC4F0 (ParametricEQ.cpp:530): (TRACE) Adding peaking filter with frequency 45 Hz, gain 2 dB and Q 1
2013-08-24 19:50:30.584 01FEC4F0 (ParametricEQ.cpp:238): (TRACE) 4 filters loaded: L:2 R:2
2013-08-24 19:50:30.584 01FEC4F0 (ParametricEQ.cpp:194): (TRACE) Successfully created directory change notification thread for C:\Program Files\EqualizerAPO\config and its subtree
 
#112 ·
However when I Uncheck "Disable System Effects" I get no sound out the the HP jack or internal speakers. If I check the box, I get signal to the jack. I noticed that with the box unchecked in the Windows Sound mixer, I can see signal for the application, however no signal on the output fader.

I enabeld traces in the registry and Equalizer APO produced this log file:

[...]
The logfile you provided looks completely unsuspicious, so there's no obvious problem with E-APO. You could try the following steps:
  • Uninstall Equalizer APO again and see if you get sound with "Disable System Effects" still unchecked, to check if the sound driver's APO causes the problem.
  • Try version 0.7 of E-APO (after uninstalling version 0.8!), which installs the APO in a different "location" in the audio path.
 
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top