-
Notifications
You must be signed in to change notification settings - Fork 3
Configuration Guide
- Equalizer Apo Configuration (Windows)
- Hesuvi Configuration (Windows)
- Pipewire and Easy Effects Configuration (Linux)
- Troubleshooting
This dataset can be used with Equalizer APO, an Audio Processing Object (APO) for Windows featuring convolution capabilities. Instructions on how to configure Equalizer APO to use the provided filters for headphone correction and BRIRs for room simulation are provided below.
- Download Equalizer APO and follow the Equalizer APO installation tutorial.
- Download the latest release of the ASH Listening Set and extract the contents to the location of your choice. Alternatively, clone the GitHub repository to your device.
- Set your sound device's default format to 44100Hz under the properties of your playback device. In Windows 10 the playback device settings can be found in
Settings -> System -> Sound -> Sound control panel
.
- In the configuration editor, add a
Preamp
to yourconfig.txt
file to reduce any clipping that may result from the convolution. The dB value required varies depending on the speaker configuration and filters selected. The analysis panel may be used to identify potential clipping. Alternatively, the Peace interface may be used to adjust pre-amplification as it offers automatic clipping prevention.
Headphone correction can be achieved through either IR convolution or Graphic Equalizer configurations, as per below.
- Add a new
convolution
command to yourconfig.txt
file, then navigate to theHpCFs\FIRs
folder and select the desired HpCF WAV file for headphone correction. Refer to the HpCF page for more information. - A compatibility filter will also be required if you are using in-ear headphones with the BRIRs. Add a new
convolution
command, then navigate to theCompatibility_Filters\FIRs
folder and select the 'Compatibility_In-Ear_Headphones' WAV file. A compatibility filter is not required for over-ear or on-ear headphones.
As an alternative to IR convolution, the provided graphic EQ filters can be used.
- Add a new
Include
command to yourconfig.txt
file, then navigate to theHpCFs\Graphic_EQ
folder and select the desired HpCF graphic EQ file for headphone correction. - A compatibility filter will also be required if you are using in-ear headphones with the BRIRs. Add a new
Include
command, then navigate to theCompatibility_Filters\Graphic_EQ
folder and select the 'Compatibility_In-Ear_Headphones' txt file.
- Add a new
Include
control to yourconfig.txt
file, then navigate to theE-APO_Configs
folder and select a BRIR convolution configuration file for binaural room simulation. A set of BRIR convolution configuration files are included in the dataset for each room and for a range of common speaker configurations.
Example config.txt in the configuration editor
The BRIRs and Graphic EQ filters in this dataset can also be used with HeSuVi, a headphone surround virtualization tool for Equalizer APO. The files located in the HeSuVi
folder are provided in formats that HeSuVi can read. The below steps can be followed as an alternative to above Equalizer APO configuration steps.
- If using Equalizer APO for the first time, download Equalizer APO and follow the Equalizer APO installation tutorial.
- If using HeSuVi for the first time, download HeSuVi and follow the installation and usage steps outlined in the HeSuVi Wiki.
- Download the latest release of the ASH Listening Set and extract the contents to the location of your choice. Alternatively, clone the GitHub repository to your device.
- Navigate to the
HeSuVi
folder within the dataset and copy theeq
andhrir
folders into the HeSuVi installation folder (usually located at: C:\Program Files\EqualizerAPO\config\HeSuVi).
- Open or restart HeSuVi
- The BRIRs can be selected in the
Virtualisation
tab. The rooms can be found under theCommon HRIRs
section at the top of the list as per the screenshot below.
- The HpCFs can be selected in the
Equalizer
tab. The HpCFs can be found under_ASH_HpCFs
at the bottom of the list as per the screenshot below.
- If using one of the equaliser presets included in HeSuVi, it is recommended to also use the provided
Room_Target_Inverse
filter as the room target curve applied to the BRIRs may result in an excessive low frequency boost when paired with other headphone EQ methods. Theeq\_ASH_Additional_Filters\Room_Target_Inverse
graphic EQ filter, along with any other additional filter, can be included as an additional filter either beforehand or afterwards under theAddtional
tab.
The BRIRs and HpCFs in this dataset can be used with PipeWire and easy effects on Linux.
- Download and extract the Pipewire-Files and Easy-Effects-Files packages from the latest release of the ASH Listening Set.
- Install EasyEffects. Packages are available for most Linux distributions. Installation via Flatpak is recommended for convenience.
- Open EasyEffects
- Open Preferences via dropdown menu located at the top right corner of the window.
- Toggle on
Launch Service at System Startup
in Preferences - Toggle off
Shutdown on Window Closing
in Preferences - In
Output - Effects
tab, on left pane, clickAdd Effect
thenConvolver
to add a new convolver effect. - In the convolver effect, click
Impulses
thenImport Impulse
and select the desired HpCF WAV file for headphone correction. Once imported, click theload
button next to the IR name. The HpCFs are located underHpCFs\FIRs_Stereo
in the extracted Easy-Effects-Files folder. - If using in-ear headphones with the BRIRs, a compatibility filter will also be required. Add a new convolver effect, then import and load the
Compatibility_In-Ear_Headphones
WAV file located in theCompatibility_Filters\FIRs_Stereo
folder. - If applying headphone correction through filters not provided in the ASH Listening Set, it is recommended to also use the provided
Room_Target_Inverse
filter as the room target curve applied to the BRIRs may result in an excessive low frequency boost when paired with other headphone EQ methods. If required, add a new convolver effect, then import and load theRoom_Target_Inverse
WAV file located in theAdditional_Filters\FIRs_Stereo
folder. - In the
Presets
menu located at the top left corner of the window, create a new preset and save for future loading. - Click
Pipewire
tab, on left pane, click "Presets Autoloading" and add the autoload preset saved in the previous step.
- Move the contents of the
pipewire
folder (extracted from the Pipewire-Files package) into your local pipewire configuration folder. The configuration folder will be located under the Home/.config/pipewire directory, E.g./var/home/shanonpearce/.config/pipewire
. This folder will now have 2 subfolders:filter-chain.conf.d
andhrir
- Modify the
filter-chain.conf.d/virtual-surround.conf
file to point to the desired BRIR located under the current user's Home/.config/pipewire directory. This can be done manually using find and replace in a text editor, or alternatively by using the Sed commands located in the section below which will perform a find and replace on the virtual-surround config file. - Start pipewire with the filter-chain config by running the below command in the terminal. The virtual surround device will now exist as long as this is running in the background.
pipewire -c filter-chain.conf
- In Easy Effects, go to "Output-Players" and exclude "effect_output.virtual-surround-7.1-hesuvi".
- Save your preset again in Easy Effects to ensure the virtual surround device remains excluded.
The below Sed commands can be run in the terminal to update the file references in the virtual-surround.conf file and point to a different set of BRIRs. After modifying the virtual-surround.conf file, the current filter-chain config will need to be terminated and a new filter-chain config will need to be started by running the below command for the changes to take effect.
pipewire -c filter-chain.conf
Room | Sed Command |
---|---|
Room Calypso, TU Berlin | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Room_Calypso.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
ASH Listening Room (KU100) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/ASH_Listening_Room_KU100.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
ASH Listening Room (KEMAR-N) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/ASH_Listening_Room_KEMAR-N.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
ASH Listening Room (KEMAR-L) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/ASH_Listening_Room_KEMAR-L.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
ASH Listening Room (TYPE4128) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/ASH_Listening_Room_TYPE4128.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Control Room 1, WDR Broadcast Studios | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Control_Room_1.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Control Room 7, WDR Broadcast Studios | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Control_Room_7.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Listening Room, University of Salford | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Listening_Room_Salford.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Audio Lab, University of Rostock (with absorbers) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Audio_Lab_Absorbers.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Office, University of Surrey | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Office.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room A | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_A.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room B | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_B.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room C | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_C.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room D | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_D.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room E | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_E.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room F | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_F.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room G (FABIAN) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_G_FABIAN.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room G (KU100) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_G_KU100.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room H | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_H.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room I | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_I.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room J (TYPE4128) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_J_TYPE4128.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room J (KU100) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_J_KU100.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room K (KEMAR-N Position 1) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_K_KEMAR-N_Pos_1.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room K (KEMAR-N Position 2) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_K_KEMAR-N_Pos_2.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room K (KEMAR-L Position 1) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_K_KEMAR-L_Pos_1.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room K (KEMAR-L Position 2) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_K_KEMAR-L_Pos_2.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room K (KU100 Position 1) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_K_KU100_Pos_1.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Room K (KU100 Position 2) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Room_K_KU100_Pos_2.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Coupled Rooms, RWTH Aachen University | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Coupled_Rooms.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Room Spirit, TU Berlin (less reverberation) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Room_Spirit_Less_Reverb.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Room Spirit, TU Berlin (more reverberation) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Room_Spirit_More_Reverb.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Classroom, University of Surrey | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Classroom.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Conference Room, TU Ilmenau (Position 1) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Conference_Room_Pos_1.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Conference Room, TU Ilmenau (Position 2) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Conference_Room_Pos_2.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Conference Room, TU Ilmenau (Position 3) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Conference_Room_Pos_3.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Rehabilitation Room, TU Ilmenau | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Rehab_Room.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Seminar Room, TU Ilmenau | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Seminar_Room_TUI.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Laboratory (Position 1) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Laboratory_Pos_1.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Laboratory (Position 2) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Laboratory_Pos_2.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Studio A | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Studio_A.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Studio B | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Studio_B.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
TV Studio, TU Ilmenau (less reverberation) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/TV_Studio_Less_Reverb.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
TV Studio, TU Ilmenau (more reverberation) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/TV_Studio_More_Reverb.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Room HU201, TU Ilmenau (less reverberation) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Room_HU201_Less_Reverb.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Room HU201, TU Ilmenau (more reverberation) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Room_HU201_More_Reverb.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Lecture Room | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Lecture_Room.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Adream Laboratory, LAAS-CNRS Toulouse (less reverberation) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Adream_Lab_Less_Reverb.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Adream Laboratory, LAAS-CNRS Toulouse (more reverberation) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Adream_Lab_More_Reverb.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Room Auditorium 3, TU Berlin (less reverberation) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Room_Auditorium_3_Less_Reverb.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Room Auditorium 3, TU Berlin (more reverberation) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Room_Auditorium_3_More_Reverb.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Seminar Room, University of Surrey (less reverberation) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Seminar_Room_Surrey_Less_Reverb.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Seminar Room, University of Surrey (more reverberation) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Seminar_Room_Surrey_More_Reverb.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Broadcast Studio, WDR Broadcast Studios (less reverberation) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Broadcast_Studio_Less_Reverb.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Small Broadcast Studio, WDR Broadcast Studios (more reverberation) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Small_Broadcast_Studio_More_Reverb.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Audio Lab, University of Rostock (without absorbers) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Audio_Lab_No_Absorbers.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Studio C (KU100) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Studio_C_KU100.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Studio C (KEMAR-L) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Studio_C_KEMAR-L.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Studio C (KEMAR-N) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Studio_C_KEMAR-N.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
Studio C (TYPE4128) | sed -i "s#config = { filename = .*wav#config = { filename = "${HOME}/.config/pipewire/hrir/Studio_C_TYPE4128.wav#g" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf |
-
The BRIRs, HpCFs, compatibility filters, and additional filters are sampled at 44100Hz so the sample rate of the playback device must be set to 44100Hz. The sample rate of the device must match the sample rate of the filter. The HeSuVi BRIRs are provided in both 44100Hz and 48000Hz sampling rates.
-
If your audio device does not support a 7.1 surround channel configuration, a virtual audio device such as VB-Audio Virtual Cable or Voicemeeter can be used for audio processing in place of your regular audio playback device. Equalizer APO can be installed on the virtual audio device which can be configured for 7.1 audio, and the output of the virtual audio device can be sent to your regular audio playback device.
-
Ensure that the BRIRs are at the correct relative path. The 'E-APO_Configs' folder and the 'BRIRs' folder must have the same parent folder for the files to be read by the E-APO configurations.
-
The convolution, pre-amplification, and include commands can be placed in any order.
- To assist with pre-amplification, the table below lists the approximate gains that the various IRs in the dataset apply to the low frequencies, which is the region where clipping is most likely to occur.
IR | Approximate gain |
---|---|
BRIRs (2.0 configuration) | +15dB |
BRIRs (5.1 configuration) | +24dB |
BRIRs (7.1 configuration with 2.0 audio stream) | +15dB |
BRIRs (7.1 configuration with 7.1 audio stream) | +28dB |
HpCFs | -6dB |
In-ear headphones compatibility filter | -4dB |