I’ve written about JACK before but only covered the basics of setting it up with the Cadence Toolbox and using the patchbay to route audio, but JACK is capable of much more. Namely using plugins to manipulate audio.
For this you need LADISH (Linux Audio Desktop Integration Session Handler, yes that’s a mouthful) Claudia and Carla, which are both part of the Cadence Toolbox. On ArchLinux you just need to install the pro-audio package via sudo pacman -S pro-audio this should install all dependencies and even a bunch of VST plugins.
After that just open Claudia from Cadence:
And now you’re ready to go. Claudia manages your session in studios, which are basically just project files. Each studio can contain multiple rooms, which are containers for audio applications. A room has an audio input and an audio output, depending on what room preset you use you can get more or less audio inputs/outputs.
Each studio has one base room in which your main audio handling takes place, here’s my current setup:
“Hardware Playback” is the output of my soundcard and Hardware Capture is, you guessed it, my soundcard input aka microphone. PulseAudio JACK Sink and PulseAudio JACK Source is a bridge which connects this audio setup with all applications which need PulseAudio (Like my webbrowser or TeamSpeak). If a program supports JACK it’ll show up in this graph, like MPD which is my music player. This also means I can connect MPD to PulseAudio JACK Source, which would allow me to annoy anyone who is in a voice channel with me with music.
The more interesting parts are “Mic” and “Zoom”. These two are separate rooms as you can see on the left. The room called “Mic” processes my raw microphone input and applies filters to it. The room itself doesn’t look very interesting because it just hands over the audio to Carla, which handles the actual filters:
As you can see the room contains one application indicated by the “[L1] Carla” label. Now in Carla I have my virtual rack which contains the plugins:
Carla is set to the Patchbay mode (Settings > Configure Carla > Engine > Process mode), which means that the audio is intially handed to the top most plugin, which hands its output to the one below it and so on, until it reaches the bottom, which in turn gives it back to the output, which you saw in the previous screenshot.
The filter setup is the usual stuff you need to make an eight dollar microphone sound decent. At the top is a simple background noise removal filter, then an audio gate to only output audio when I’m talking, then a gain since my microphone is fairly quiet, then some useless filters which I have turned off by default and at the end a compressor to make sure loud audio isn’t too loud. If you were wondering what the other room called “Zoom” is for, it only contains a compressor. Since I can route any audio through these plugins I use this to route the audio from Zoom through the compressor. One of my professors has an issue with his microphone where it randomly turns into a bass boosted earrape, which was funny the first time but also almost made me fall off my chair. So I set this up specifically for this for the sake of my own sanity.
And that’s basically all there’s to it. It seems a bit complicated at first, but all you really need is Cadence and Claudio once you’ve done your configuration because Claudia will load everything automatically when you load the studio project and select the rooms you want.