Ubuntu Linux — High Quality Sound Processing
Using JACK Audio Connection Kit and Calf Plugins high quality equalizer for listening to music on Linux
With tools such as Ardour, LV2 plugins such as Calf and JACK Audio Connection Kit, Linux is more than capable for professional audio and music production. For music lovers though, you can also make use of a subset of these tools for quality global music equalizer.
Software Mixer
For your typical desktop audio, you will have a sound device with a ADC (Analog to Digital Converter) for converting microphone and other audio input into digital data to store and process on our computers, and a DAC (Digitial to Analog Converter) to convert digital audio data into analog signals that we humans can listen to on our headphones and speakers.
For most consumer grade devices, there is not much of a hardware mixer, so your computer can only play or record one source at a time. It will be annoying of course if, different apps had to wait their turn and sounds cut in and out. Hence on top of the control for your audio device (ALSA on Linux), there is usually a software mixer that will mix all these sources, into one for your audio device.
Currently this is handled by pulseaudio. It does a good job of this, these days, of switching between different audio output devices such as bluetooth speakers, HDMI audio or your built-in audio device, while mixing all sound sources.
Global Equaliser and other Effects
Usually when we listen to music, we generally tweak it to sound how we like it using an equaliser or controls such as bass and treble. Usually these are built into the music player itself, but what happens if the music player or source doesn’t have one, like say YouTube Music or Spotify on PC. Then you will need one that modify’s the sound output before the software mixer sends it to audio device.
One option is using PulseEffects. I will not go into this setup.
JACK Connection Kit
JACK Connection Kit is not a mixer, rather it routes audio from different applications into others including from pulseaudio, and then into audio production software or digital audio workstation such as Ardour.
For audio production there are also standards for audio plugins and affects such as LV2 which support JACK connections, allowing you to route sound from one source into another.
Earlier we mentioned that pulseaudio handled most of desktop audio needs, such as sound from browser, music players, video conferencing and so on. We don’t really want to mess with this working setup for day to day audio needs. So we use pulseaudio as one of the sources of mixed desktop app sounds and maybe the mic on our web cam into JACK, which then sends it to your audio device.
Basic JACK setup with Pulseaudio
There are multiple ways to set this up, and you can find more information here on JACK FAQ page. I use Option 3, running pulseaudio on top of JACK.
The article recommends Cadence, but I prefer qjackctl for managing connections and settings.
Installing jack2 on ubuntu should set this up automatically.
Calf Plugins
Calf studio plugins is a suite of LV2 JACK compatible plugins for audio processing, everything from analysers, equalisers to synths you can connect to your MIDI keyboard. This is part of the standard Ubuntu repository, so go ahead and install and run it.
Go ahead and add one of the equaliser (EQ) plugins, and click edit to view the controls of the equaliser.
Play something in your music player. At this stage it isn’t connected to the EQ plugin, and sound as you can see is coming from pulseaudio straight to your system audio playback device.
Go back to qjackctl, click Connect and you will see the unconnected EQ. Think of these connections, as their real world equivalents, RCA audio cables and inputs.
Catia is another alternative to manage connections.
Enjoy the music!