Welcome to the Wiki of Equalizer APO. This is currently the only documentation resource for this project. To begin using Equalizer APO, you should read the tutorials.
Table of contents:
Screenshot of Room EQ Wizard (click to enlarge):
A detailed explanation of the usage of Room EQ Wizard is out of the scope of this document, but here is the basic process:
Congratulations, you have now created your first configuration for Equalizer APO. To learn more about the usage of RoomEQWizard, you can look into its help file. The process can even be automated to some extent, as is explained in this forum thread.
The configuration files of Equalizer APO are organized as lines of the following format:
Command: Parameters
All lines not conforming to this format are silently ignored, like the comment lines that start with # in the example below.
Example:
Device: High Definition Audio Device Speakers; Benchmark
#All lines below will only be applied to the specified device and the benchmark application
Preamp: -6 db
Include: example.txt
Filter 1: ON PK Fc 50 Hz Gain -3.0 dB Q 10.00
Filter 2: ON PEQ Fc 100 Hz Gain 1.0 dB BW Oct 0.167
Channel: L
#Additional preamp for left channel
Preamp: -5 dB
#Filters only for left channel
Include: demo.txt
Filter 1: ON LS Fc 300 Hz Gain 5.0 dB
Channel: 2 C
#Filters for second(right) and center channel
Filter 1: ON HP Fc 30 Hz
Filter 2: ON LPQ Fc 10000 Hz Q 0.400
Device: Microphone
#From here, the lines only apply to microphone devices
Filter: ON NO Fc 50 Hz
The commands currently defined are:
| Command | Parameters | Description |
|---|---|---|
| Preamp | Negative number dB | Sets a preamplification value in decibels. This is useful when you are using filters with positive gain, to make sure that no clipping occurs. Since version 0.8, when multiple preamps apply to the same channel, the resulting preamp is the sum in dB. |
| Include | File name | Loads the given file as a configuration file. Instead of directly replacing config.txt, it can be better to load the actual filter definition from a separate file so that you can e.g. set a preamp before. |
| Filter n | ON Type Fc Frequency Hz Gain Gain value dB Q Q value | Adds a filter of the given type with the given frequency, gain and Q. The supported filter types and their parameters are listed below. This is the filter text format used by Room EQ Wizard for equalizer type "Generic". The filter number (n) is not interpreted and can be omitted. |
| Filter n | ON Type Fc Frequency Hz Gain Gain value dB BW Oct Bandwidth value | Adds a filter of the given type with the given frequency, gain and bandwidth. The supported filter types and their parameters are listed below. This is the filter text format used by Room EQ Wizard for equalizer type "FBQ2496". The filter number (n) is not interpreted and can be omitted. |
| Device | Device identification pattern | Matches the given pattern to the connection name, device name and GUID of the current output device. If the pattern does not match, all following commands except Device commands are ignored. The pattern consists of words separated by space that must all be found in the string "Device_name Connection_name GUID". Multiple patterns of which one must match can be specified by separating the patterns with ';'. The special pattern "all" matches always. The benchmark application uses the device name "Benchmark" and connection name "File output". The easiest way to generate a Device command is to use the button in the Configurator application. (added in version 0.7) |
| Channel | *** Channel positions *** | Selects the channels to which the following Filter and Preamp commands will be applied. Channel positions can be given by identifier (acronym of 1 up to 3 characters) or by number (counted from 1). The supported channel configurations are listed below. If a channel configuration is not supported, channels can only be selected by number. Multiple channels can be specified by separating with space. The special position "all" selects all channels. (added in version 0.8) |
Lines that contain any command name not in this list are silently ignored.
The following table lists the filter types supported by Equalizer APO since version 0.8. The columns Fc, Gain and Q/BW show the parameters supported by the filter type. An 'X' means that the parameter is required while an 'O' denotes an optional parameter. The filter types supported cover all filters of the "Generic" and the "FBQ2496" equalizer type. Other equalizer types may also be compatible if their filter text format is. There is one exception however: The band-pass filter supported by Equalizer APO is a real band-pass filter that does not support gain, like low/high-pass filters, but unlike the DCX2496's "BP" filter, which is actually a peaking filter.
Type | Description | Fc | Gain | Q/BW | Example for filter parameters
The following table lists the channel configurations that are supported by Equalizer APO. The channel identifiers in the column titles resemble the channels in Start -> Control Panel -> Sound -> Configure. If a channel position is supported for a configuration, the cell in the corresponding row contains the channel number.
Configuration | Left
L | Right
R | Center
C | Subwoofer
SUB | Rear left
RL | Rear right
RR | Rear center
RC | Side left
SL | Side right
SR
This section describes approaches to solve possible problems impeding the successful operation of Equalizer APO.
If you installed Equalizer APO and no changes to the configuration file lead to any changes in the signal, APOs might have been disabled for the device in the Control Panel.
To check this, open Start Menu -> Control Panel -> Sound and double click on your audio device to open the properties dialog.
If the dialog has an "Enhancements" tab, go to that tab. You should see a view similar to the left screenshot below. Make sure the "Disable all enhancements" check box (red box) is unchecked, even if you don't use any of the enhancements in the list.
If the dialog does not have an "Enhancements" tab, go to the "Advanced" tab. You should see a view similar to the right screenshot below. Make sure the "Enable audio enhancements" check box (red box) is checked.
When Equalizer APO encounters a critical problem while running, it writes a line into the log file C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp\EqualizerAPO.log . So, in case of problems this file might contain useful information. Under normal circumstances, this file does not even exist, as it will only be created when an error occurs.
To get more information, you can enable trace messages, which means that Equalizer APO will write lines marked with "(TRACE)" to the file even when running normally. To do this, open regedit.exe, go to HKEY_LOCAL_MACHINE\SOFTWARE\EqualizerAPO and set the value EnableTrace to true. Then, when playing back or recording audio via a device that Equalizer APO is installed to, information about initialization and the configuration files will be output to the log file. This might help e.g. to see if the configuration files are interpreted as intended. After you have finished, you should set EnableTrace back to false, so that the log file does not grow unnecessarily.
Normally, applications utilizing OpenAL for their audio output do not present a problem as they will often use DirectSound as their backend, which supports APOs. Some sound card manufacturers however provide OpenAL libraries with hardware-acceleration that access the hardware directly, circumventing APOs. There is no way to enable APO support for hardware-accelerated OpenAL, so the only solution for this is to either switch to another output library, if the application supports that, or to make OpenAL fall back to software.
To force OpenAL to fall back to software, the OpenAL32.dll may be replaced with a different one, for example from http://kcat.strangesoft.net/openal.html
A way to globally disable OpenAL hardware-acceleration however is to move or rename the vendor-specific OpenAL library in C:\Windows\System32 or C:\Windows\SysWOW64, which is often called like *_oal.dll, for example ct_oal.dll . Warning: This is a modification to the sound driver, which is of course not officially supported and can lead to unexpected results.