How can I route a system-wide ALSA EQ (alsaequal) through my volume control and connect PulseAudio to it?

I have a rather specific issue and can't solve it on my own.

As explained in this Question, I have set up a system-wide volume control for my single USB audio card (M-Audio Fast Track). Now, I would also like to add a system-wide equalizer (libasound2-plugin-equal) to it, while keeping the volume control intact.

So far, I was able to get everything working correctly only in ALSA-programs.

With the following /etc/asound.conf, both the volume-control via softvol and the equalizer settings work at the same time:

pcm.!default {
        type plug
        slave.pcm "softvol"
}

ctl.!default {
        type hw
        card Track
}

pcm.softvol {
        type softvol
        slave {
            pcm "hw:Track"
        }
        control {
            name "Master"
            card Track
        }
}

ctl.equal {
        type equal;
}

pcm.plugequal {
        type equal;
        slave.pcm "plug:softvol";
}

pcm.!default {
        type plug;
        slave.pcm plugequal; 
}

Source: https://docs.slackware.com/howtos:hardware:sound_problems_on_slackware

There seems to be some redundancy, but this is the setup that works currently.

The issue that remains now is that PulseAudio apparently skips all of this setup and directly outputs to my sound card, so the equalizer works in programs that support ALSA-output (not Firefox, etc.) and JACK, since the output device can be specified.

Does someone know how to isolate PulseAudio in such a way that it will only output to the plugequal ALSA-device and not be connected to my sound card directly?

Unfortunately, PulseAudio doesn't list plugequal as an output device, just my hardware sound card.

I have uninstalled PulseAudio at the moment, since it disables the EQ and volume control when it is connected to the sound card.


As someone used to "plug and play" audio devices (eg never have to configure anything for sound) your problem "sounds" very complicated to me. However, there are generic problems with equalizers and the accepted answer there might help:

To start the pulseaudio equalizer run:

qpaeq

If this gives you the error

There was an error connecting to pulseaudio,
please make sure you have the pulseaudio dbus module loaded, exiting...

then load these two modules using pactl:

pactl load-module module-equalizer-sink
pactl load-module module-dbus-protocol

and, to make these changes permanent, edit ~/.config/pulse/default.pa (create it if necessary) and add these lines:

load-module module-equalizer-sink
load-module module-dbus-protocol

I used to use jack and MIDI and I remember looking at this video on YouTube. I will try to go through the steps. If you haven't done so already you should first install qjackctl

sudo apt install qjackctl

Follow the prompts and change the answer to yes. Then, go back to the command line after the install.

aptitude search pulseaudio 

You need to install some modules.

pulseaudio-module-jack

to install it, use this command:

sudo aptitude install pulseaudio-module-jack

Next go into into a text file:

sudo vi /etc/pulse/default.pa

Look for the heading ###Load audio drivers statically. Then, add these two lines:

load-module module-jack-sink
load-module module-jack-source

Then put this into the command line:

sudo service pulseaudio restart 

The video goes into even more detail but that gives a good explanation. I did this at one point in time and it worked, good luck.