Linux Audio Survival kit.

A brief guide to have success setting up the audio in Linux.

Getting Super Audio Powers

Linux it's far from perfect , but, it own some features that make the audio production very handy and affordable, mostly of the software and audio applications can be interconnected and sync up through Jack turning our desktop in a super-flexible modular workstation.

Which Linux to use?

There are many Linux flavors and in a general sense is not a big difference between a distribution and another, we can turn whichever Linux flavor in a capable OS to audio production.

According with my personal experience some desktop environments have a better performance, and this is due to how they manage the graphical resources, I highly recommend distributions that use KDE, XFCE or lxde as desktop environment, Gnome could be the worst choice and that is because Gnome uses Compiz or Metacity that make extensive use of memory for graphics processing.

I use Kubuntu, it is a ubuntu flavor that use KDE as desktop environment.

Setup Linux for audio production

In this guide we follow the complete process to set up our Linux on an audio capable operative system.

Installing the low latency kernel

open a terminal and type:

sudo apt install linux-lowlatency

Installing KXStudio repositories:

to install the KXStudio follow the instructions of this link: http://kxstudio.linuxaudio.org/Repositories

Upgrading your system

code:

sudo apt update && sudo apt upgrade

after a "sudo " command the system will ask the root password, it will be not shown in the screen

Installing Jack

code:

sudo apt install jackd2

Installing qjackctl

code:

sudo apt install qjackctl

Installing pulseaudio-module-jack

code:

sudo apt install pulseaudio-module-jack

optional Lightweight OSC library

sudo apt install jack-tools 

Configuring real time access:

Add your current user to the audio group code:

replace "username" in the code bellow by your computer user name

sudo adduser username audio

Give the audio group real time access editing /etc/security/limits.d/audio.conf

Kubuntu code:

kate sudoedit /etc/security/limits.d/audio.conf

Xubuntu code:

sudo mousepad /etc/security/limits.d/audio.conf

Lubuntu code:

sudo leafpad /etc/security/limits.d/audio.conf

Ubuntu code:

sudo gedit /etc/security/limits.d/audio.conf

change the content of the file to this values:

@audio - rtprio 99 
@audio - memlock unlimited 

Reboot your system. code

sudo reboot

A quick Checkup of the audio capabilities

All available playback audio devices. code:

aplay -l

The list of available capture/recording audio devices code:

arecord -l

MIDI playback ports devices capabilities code:

aplaymidi -l

the MIDI recording audio ports code:

arecordmidi -l

Configuring Jack

Jack (Jack Audio Connection Kit ) is a professional sound server daemon that allow you to route audio and MIDI between applications and connect hardware with software.

Qjackctl is a simple application to control the Jack sound server, to launch it open a terminal and type:

qjackctl

You can launch the software applications clicking them icon in the application menu.

On the Qjackctl UI hit "setup" , it will open the Jack audio connection kit setup window.

Press in the Driver selection menu and choose alsa, it will be your audio backend interface to use.

Then, in the Interface selection menu choose your sound device, it could be your integrated sound device or a external hardware, in my setup I own a focusrite Scarlett Solo and I choose this option in the list.

The next step is select the ideal values for the Sample Rate, Frames/Period and Period/Buffer it is very important because find the right relationship between this values will have effect the quality and the performance of our system. While the numbers are higher we will have better audio quality, but it is not so easy, because this will have a direct effect on the latency too.

(Frames/SampleRate)Periods=Latency(Frames / Sample Rate ) * Periods = Latency

You can swap different values until you find the ideal values, or you can use this guide to find them:

List of ideals Jack frame & period settings for USB interface

Finally you must check the "Realtime" option in the setings window and press "OK", all the changes will take effect the next time that you run the Jack audio server.

A quick checkup

Open a console and type:

jackd -d alsa --help

It should give you back a list of all available JACK server options of your audio backend.

CPU governor

Mostly of the Linux distribution are setting by default as "powersave" it sets the CPU statically to the lowest frequency within the borders of scaling_min_freq and scaling_max_freq.

To change the mode to "performance" open a console and type: code:

echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

in order to set it back to "powersave" mode, open a terminal and type code:

echo powersave | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

You can create a script to run in performance mode, open a text editor and type:

#!/bin/bash
clear
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Save it in the home directory under the name "performance mode" and you can run it in the console with

./performance mode

Last updated