PulseEffects integrates equalizers and effects into PulseAudio

Sound Machine

Article from Issue 239/2020

A wildly flashing equalizer once was part of the basic equipment of every decent stereo system. PulseEffects upgrades the PulseAudio server to include these slide controls – and offers even more.

In the '80s and '90s, if you wanted to demonstrate that you knew something about music, you had a massive hi-fi rack with individual components from well-known manufacturers in your living room. In the ensemble of (pre)amplifier, cassette deck, CD player, and turntable, the equalizer was of course a component not to be missed, ideally with illuminated and even motorized sliders and an animated spectrum display. And if it flashed with every beat and you could adjust the trebles and basses to your heart's content, the would-be hi-fi buff was genuinely satisfied.

In the meantime, convenience has triumphed over audiophile inclinations, at least for most music listeners. Squashed into the MP3 format and streamed via Bluetooth on tinny-sounding battery-powered boxes, music playback has finally arrived in the digital age. Even if the pleasure of the analog listening experience and the good old LP still have their fans, you will mostly find music booming from speakers that can do loud, but don't handle the softer tones as well. Recording companies have also contributed towards the musical uniformity. In the course of the loudness war [1], they turned the volume levels up and up, and overall sound quality suffered.

Sound Converter for PulseAudio

Now computers are usually not attached to stereo systems. The sound tends to come from a speaker set, from the integrated speakers in the case of laptops, or from headsets. Depending on the loudspeaker quality, you can get a tinny sound or something close to hi-fi quality.

It is therefore worthwhile trying to improve the sound a little, coming full circle to the equalizer mentioned earlier. On modern Linux systems that use the PulseAudio server [2], such a sound mixer can be quickly retrofitted.

PulseEffects [3] is a program that offers numerous powerful functions beyond the equalizer. In many distributions you can install the application directly from the package sources (e.g., on Ubuntu from version 19.10 or Debian 11). The package is usually named pulseeffects.

Since the program is still quite young, it is usually only found in the latest releases of the distributions. For older systems, the developers offer additional package sources or a Flatpak that can be installed with a mouse click after the system has been configured. Listing 1 shows the commands for installing PulseEffects on Ubuntu 18.04 to 19.04. We used Arch Linux and Manjaro with a Gnome desktop for our lab.

Listing 1

Installing PulseEffects on Ubuntu 18.04-19.04

$ sudo add-apt-repository ppa:mikhailnov/pulseeffects -y
$ sudo apt update
$ sudo apt install pulseeffects --install-recommends

PulseEffects starts with a clearly arranged user interface. In the left column, the program groups the individual effects. The first entry, Applications, only shows the programs that are currently playing sound.

Otherwise, to the right, you will find the settings for the currently selected effect. Above it, PulseEffects displays an animated spectrum with the sound output's frequency response. If necessary, spectrum's animation can be deactivated or colored using the Spectrum tab in the settings.

In the window bar, PulseEffects switches between the filters for playback or recording and displays details about PulseAudio and the modules loaded from the sound server. It also lets you generate test signals, such as sine waves or noise for input and output.

The individual filters can be switched on and off via sliders in the detail view. A check mark in front of the up and down arrows indicates the status. You can use the arrows to sort the order in which PulseEffects applies the filters.

More than Just an Equalizer

In the effects collection, you will find the classic Equalizer towards the end. You can use the slider to emphasize or reduce the frequency range from 30Hz to 15kHz. You load the filter settings with the tool icon below the on/off switch. If required, you can load Presets, such as Classic, Club, or Dance, provided by the GStreamer framework (Figure 1).

Figure 1: The GStreamer framework contains a number of Equalizer presets that can be activated with a mouse click using PulseEffects.

Once you have found the optimal settings, save the configuration by clicking the Presets button in the header. PulseEffects not only saves the settings of the current filter, but also the complete selection of all activated modules.

In terms of possibilities, PulseEffects goes far beyond the capabilities of a "dumb" equalizer. Of particular importance are the Crystalizer and Convolver filters. The Crystalizer cleans up the effects of the loudness war mentioned earlier.

The mix preferred by many music producers cuts off peaks and smooths the dynamics of a piece of music. This makes the drums of a rock song, for example, sound dull and boring. The Matt Mayfield Music channel on YouTube explains the effects very clearly and audibly [4] using an example.

The Crystalizer tries to iron out this bad habit by increasing the dynamic range [5] of the input signal. The name of this PulseEffects module comes from hardware originally developed by sound card manufacturer Creative Labs for the Sound Blaster X-Fi [6]. If you activate the effect, it immediately has a positive impact on the sound (Figure 2).

Figure 2: The Crystalizer effect increases the dynamic range during music playback, enlivening the flat sound that many music producers still prefer.

The Convolver module (Figure 3) lets you modify the sound via convolution reverb [7] as if you were standing in a concert hall or the nave of a church. Many classic equalizers offer similar functions and provide predefined filters with names like "church," "concert," or "stadium."

Figure 3: The Convolver effect modifies the sound with convolution reverb. This is used to simulate how the audio would sound in large rooms, such as churches or concert halls.

To achieve this with PulseEffects, activate the Convolver and load an impulse response file [8]. A selection of such files can be found, for example, in the Open Acoustic Impulse Response (OpenAIR) library [9], and in other open source projects such as the audio player foobar2000 [10].

The impulse file is then loaded into the program by clicking on the waveform icon (Select impulse response file) and selecting the Import impulses option. Then enable the desired effect by pressing the Apply button.

Automatic Start

In order for PulseEffects to automatically activate the settings you have changed, save your configuration via the Presets field and enable the Start service on login option in the settings, so that PulseEffects starts automatically when you log in to the system in the future. In this way, the playback quality can be quickly improved. Once set up, PulseEffects does its job unobtrusively in the background. On an Intel Core i7 with the Skylake microarchitecture, the program requires hardly any resources. On average, about one to two percent of the computing power is attributable to the Crystalizer effect.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus