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.

Qjackctl

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.

ALSA Driver

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.

Audio Interface

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
Theoretical 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.

Jack options

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

Audio Software

The DAW

Is there long list of Digital Audio Workstations available to Linux and is so difficult to decide which one of them is the best for use in our production pipeline, all of them have 'pros" and "cons" and each one has some characteristic that makes it special, but wait a minute, in Linux we do not necessarily have to choose one, we can choose all of them and thanks to the modularity of the Linux audio ecosystem, take the best of each one. So, lets install some DAWs using various ways.

Ardour

is a hard disk recorder and digital audio workstation application that runs on Linux, macOS, FreeBSD and Microsoft Windows it is released under the terms of the GNU General Public License.

Ardour Features.

We will install Ardour through apt code:

sudo apt install ardour

That easy

As well as a stable version of Ardour is in the software repository, you can get the lasted release from Ardour.org making a 1$ donation,

Renoise

Renoise is a digital audio workstation. It lets you compose, edit and record production-quality audio using a music tracker-based approach

Renoise Features

to install Renoise in our system we can download a demo version here

https://www.renoise.com/download

Demo restrictions: rendering to .wav is disabled, rendering/resampling selections is disabled, rendering/freezing plugin instruments to samples is disabled, nag screens

Copy the .tar file in the system location that you prefer and press right mouse button over the file, select "extract archive here"

Right button mouse menu

Open a terminal an navigate through your system using the "cd" command, in my case the renoise folder is in the Download, then the code is:

cd Downloads/Renoise_3_1_0_Demo_x86_64/

Then execute the install.sh with sudo code:

sudo sh install.sh
Renoise Instalation

Quite easy too

Intuitive, Single Screen Interface with Drag & Drop Functionality. Specifically Designed for Music Composing, Recording, Mixing and Sharing. You can see the complete list of features and download Tracktion7 here:

https://www.tracktion.com/products/t7-daw

Press double mouse click the .deb file, it will open your store aplication, and press "Install"

VCV Rack

The VCV Rack is a Open-source virtual modular synthesizer, developed by Andrew Belt and distribuited under license BSD-3-Clause by Andrew Belt.

A binary version of VCV Rack is available to download from https://vcvrack.com/, but we build our own executable from the source code. First of all we need install some aditional software to download and d build the code, as well as some dependencies code:

sudo apt install git curl cmake libx11-dev libglu1-mesa-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev zlib1g-dev libasound2-dev libgtk2.0-dev libjack-jackd2-dev jq

Now we download (clone) the git repository code:

git clone https://github.com/VCVRack/Rack.git

It will create the Rack folder in the home directory. type the code below to enter into the Rack directory. code :

cd Rack

Build dependencies locally. code:

make dep

Buid Rack code:

make

You can run rack code:

make run

You can run rack simply double clicking the Rack file from your file manager , just take care the the execution of files is allowed in the file manager preferences

The KXStudio meta-packages are a big colection of software that can be installed at once.

The main meta-packages are Audio, Audio-Plugins, Graphics and Video. The Audio-Plugins meta-package is also split into plugin categories, for anyone that wants more plugins, but not actually more applications. You can install this packages with the apt command to install the vst meta-package use the code bellow code:

sudo apt install kxstudio-meta-audio-plugins-vst

If you want install another one meta-package simply use: "sudo apt install + meta-package name"

LAPSDA

LV2

Connect and synch your audio software and harware through Jack

WIP feedback to effetagroove at gmail dot com