thyristor
Member
- Joined
- Mar 23, 2020
- Messages
- 70
- Likes
- 133
Here's a guide how to use Equalizer APO PEQ presets in Linux for headphone equalization.
Parametric equalization is applied with PipeWire low-level multimedia framework and EasyEffects application that includes a parametric equalizer that can load APO presets. EasyEffects replaces the old PulseEffects application. In this guide PipeWire is installed as an audio server to completely replace PulseAudio.
This guide is for Arch Linux but can be adapted for other distros. Arch Linux is a rolling release "bleeding edge" distro. Please note that PipeWire is a fairly new software and some other distros may have outdated version of PipeWire in their repo.
Most of the information comes from the Arch Linux wiki.
Installation
First make sure that your Arch Linux installation is up to date:
Next we will install the necessary software from Arch repo:
When installing PipeWire you will be prompted with two options as a PipeWire session manager. PipeWire Media Session or WirePlumber. I use WirePlumber.
Then we need to install PipeWire clients that we want. Available packages are:
And remove the pulseaudio-alsa package
Configuration
PipeWire doesn't need any configuration and should just work. However PipeWire resamples everything to 48 kHz by default. We want to disable resampling and use the sampling rates supported by our DACs.
The PipeWire package provides an initial set of configuration files in /usr/share/pipewire. You should not edit these files directly, as package updates will overwrite your changes. To configure PipeWire, you can copy configuration file from /usr/share/pipewire.
System wide:
Or user location:
Edit /etc/pipewire/pipewire.conf or ~/.config/pipewire/pipewire.conf. Uncomment line:
And edit it to include the sample rates supported by your DAC. In case of my Topping D10:
We are now ready to start PipeWire user services. Or you can log out or reboot as PipeWire services are set to start automatically. I recommend a full reboot if you are migrating from PulseAudio to PipeWire. If you make changes to pipewire.conf you need to restart the services.
If you are using MPD edit mpd.conf
Usage
In PipeWire end points are called Sinks. PipeWire install will set default ALSA and PulseAudio end point to PipeWire sink.
Start EasyEffects program. Go to PipeWire tab and set your DAC as Default.
Here is an example where I have two programs running that have PipeWire as end points. Firefox using PulseAudio at 48 kHz and DeadBeef player using ALSA at 192 kHz.
Nice thing about PipeWire is that you can apply effects for ALSA, PulseAudio and JACK at the same time! Or even app based if wanted.
We can now go to Effects tab to add effects. Here I've added the Equalizer:
You can now import Equalizer APO Presets with Load APO Preset. Presets can be found from:
The format for preset is a simple
with the content:
For amir's PEQ for AKG K371. Preset loaded to EasyEffects:
So that's it! If you have questions I'm happy to help.
Parametric equalization is applied with PipeWire low-level multimedia framework and EasyEffects application that includes a parametric equalizer that can load APO presets. EasyEffects replaces the old PulseEffects application. In this guide PipeWire is installed as an audio server to completely replace PulseAudio.
This guide is for Arch Linux but can be adapted for other distros. Arch Linux is a rolling release "bleeding edge" distro. Please note that PipeWire is a fairly new software and some other distros may have outdated version of PipeWire in their repo.
Most of the information comes from the Arch Linux wiki.
Installation
First make sure that your Arch Linux installation is up to date:
sudo pacman -Syu
Next we will install the necessary software from Arch repo:
sudo pacman -S pipewire easyeffects
When installing PipeWire you will be prompted with two options as a PipeWire session manager. PipeWire Media Session or WirePlumber. I use WirePlumber.
Then we need to install PipeWire clients that we want. Available packages are:
- pipewire-alsa to route application using the ALSA API through PipeWire. Remove pulseaudio-alsa package if you have it installed.
- pipewire-pulse for PulseAudio replacement. Installing this will remove pulseaudio and pulseaudio-bluetooth packages and PipeWire will work as a complete PulseAudio replacement.
- pipewire-jack for JACK support.
sudo pacman -S pipewire-alsa pipewire-pulse
And remove the pulseaudio-alsa package
sudo pacman -R pulseadio-alsa
Configuration
PipeWire doesn't need any configuration and should just work. However PipeWire resamples everything to 48 kHz by default. We want to disable resampling and use the sampling rates supported by our DACs.
The PipeWire package provides an initial set of configuration files in /usr/share/pipewire. You should not edit these files directly, as package updates will overwrite your changes. To configure PipeWire, you can copy configuration file from /usr/share/pipewire.
System wide:
sudo cp /usr/share/pipewire/pipewire.conf /etc/pipewire/
Or user location:
cp /usr/share/pipewire/pipewire.conf ~/.config/pipewire
Edit /etc/pipewire/pipewire.conf or ~/.config/pipewire/pipewire.conf. Uncomment line:
#default.clock.allowed-rates = [ 48000 ]
And edit it to include the sample rates supported by your DAC. In case of my Topping D10:
default.clock.allowed-rates = [ 44100 48000 88200 96000 176400 192000 352800 384000 ]
We are now ready to start PipeWire user services. Or you can log out or reboot as PipeWire services are set to start automatically. I recommend a full reboot if you are migrating from PulseAudio to PipeWire. If you make changes to pipewire.conf you need to restart the services.
systemctl --user restart wireplumber pipewire pipewire-pulse
If you are using MPD edit mpd.conf
audio_output {
type "pipewire"
name "PipeWire Sound Server"
}
Usage
In PipeWire end points are called Sinks. PipeWire install will set default ALSA and PulseAudio end point to PipeWire sink.
Start EasyEffects program. Go to PipeWire tab and set your DAC as Default.
Here is an example where I have two programs running that have PipeWire as end points. Firefox using PulseAudio at 48 kHz and DeadBeef player using ALSA at 192 kHz.
Nice thing about PipeWire is that you can apply effects for ALSA, PulseAudio and JACK at the same time! Or even app based if wanted.
We can now go to Effects tab to add effects. Here I've added the Equalizer:
You can now import Equalizer APO Presets with Load APO Preset. Presets can be found from:
The format for preset is a simple
.txt
file. For example I've created a text file akg_k371_amir_peq.txt
with the content:
Preamp: -4.5 dB
Filter 1: ON PK Fc 2200 Hz Gain 1.5 dB Q 1.0
Filter 2: ON PK Fc 3915 Hz Gain 4.0 dB Q 4.0
Filter 3: ON PK Fc 6800 Hz Gain -3.0 dB Q 4.0
For amir's PEQ for AKG K371. Preset loaded to EasyEffects:
Last edited: