Some of the material presented in this article will be used in my upcoming eBook which covers the use of Linux for professional web and graphics design. Audio is a big part of web design and this article describes how I created a DAW that runs on Linux.
To get the most out of this article, I assume that you have a capable computer which runs the OS off of an SSD drive, an audio interface, a microphone and an instrument of some sort.
Here are the software components to make it all happen:
- Replacing Jack with Jack2
- Installing Cadence
- Configuring Jack
- Installing Reaper
- Configuring the audio interface
- Fine-tuning the setup
Linux has come a long way when it comes to professional audio recording. Hardware manufactures like Steinberg, Behringer and others make products that work well in Linux and there is a choice of various digital audio workstations which are stable and loaded with features.
IMPORTANT! Don’t install any audio applications before Jack2 is installed!
With no audio software installed, we begin by replacing Jack with Jack2. Jack comes installed by default but we want the newer Jack2 so we can take advantage of multi-threading and other improvements.
Arch-based distros can simply use pacman to install Jack2 in the terminal.
sudo pacman -Syu (update and if the update is big, reboot before continuting)
sudo pacman -S jack2
When asked to confirm, press Y for yes.
Next, we install Cadence which we’ll use to configure Jack2.
sudo pacman -S cadence
And while we are in install-mode, we’ll grab pulseaudio-jack as well so that the whole system can take advantage of the low latency sound server via the ALSA Pulseaudio Jack plugin bridge which we’ll configure in a bit.
After the Jack2, Cadence and pulseaudio-jack packages are installed, it’s best to log out or even reboot the system. Once we are logged in again, we’ll launch Cadence as shown in the screenshot below:
Before we move on, I’d like to talk about the Cadence System settings. In the left upper corner, Cadence displays some system information followed by system status and system checks. Inder system checks, you need to make sure that “User in audio group” says Yes.
Cadence > Configure
With Cadency open, click the “Configure” button in the Jack Status field (Start Stop Force Start > Configure). As soon as you click the Configure button, Jack Settings will launch. There are three options. Engine, Driver and Network.
Under Engine, make sure that Realtime (Properties) is checked. By default it should be and if yes, click the Driver tab (next to Engine).
Jack Settings Driver
Before I go on with the settings, you should take a good look at image 3 first.
On the left-hand column, select ALSA and then, under Device, specify your audio interface. In my case, I have the Steinberg UR22 MKII selected.
What if I don’t have an audio interface?
If you don’t have an audio interface yet, then keep the default. Unfortunately, I always use external audio interfaces and therefore I am not familiar with built-in sound cards.
In the lower half of the driver windows, we have a properties fiels which lets us select a “Sample Rate” and “Buffer Size”. The higher the sample rate, the better the audio quality of the recording. the Steinberg UR22 MKII can handle a sample rate of up to 192000 frames per second but I work with 48000 system-wide.
If you are into professional audio recording, then I assume that you know about digital to analog conversion, bit depth and sampling rates.
The only other setting we have to change is the buffer size. The higher the number, the longer of a delay (lag) you will experience between the actual sound and the time it takes to hear it.
The setting of 256 introduces a 5 millisecond delay on my system and I can live with that.
128 and 64 is also possible which will push the lag down next to nothing but at a higher process usage. The goal is to achieve a balance of low latency and the maximum audio tracks a DAW can handle. With those settings in place you can OK and exit the driver window.
Linux Audio Group
Check if you are a member of the audio group?
In a terminal, type: groups (or)
$ groups | grep audio
The output should be: sys network scanner power rfkill users video storage optical lp audio wheel abc (substitute abc for your user account name).
If you installed ArcoLinux B as as per my instructions then you should already be set up and ready to proceed. Compare your result of “groups | grep audio” with image 2 below and if you see “audio” towards the end of the line, you are ready to continue.
Also, you user name needs to show up where the green lines are.
Next, we have to edit limits.conf and add the following two entries at the bottom.
@audio – rtprio 95
@audio – memlock unlimited
To do that, type cd /etc/security into your terminal.
If you rather use the Thunar browser, you can select “File System” (under Devices) and then etc > security > which has a bunch of files. The one we need to edit is called limits.conf
Editing the limits.conf file
If you prefer using the terminal, you can use nano to edit the limits.conf file but if you are new to Linux, then I’d recommend to open it your file browser by right-clicking on it and selecting “open with Sublimetext3” which will be easier for you. Both methods produce the same result.
I’ve added three lines as shown in image 4. They are: # audio group which is a comment for me.
@ audio (tab to line the – character up with the above entries, tab again and add rtprio and finally 95.
rtprio stands for real-time priority and 95 is a scale value telling the system to prioritize audio recording over anything else in the system.
@audio (tab tab tab) memlock (tab tab) unlimited
Save, close the text editor, log out and back in again.
If you used the terminal and the nano editor, then you can finish editing with ctrl o (out), ctrl x (exit) and q (quit). I don’t use nano a lot and if you are in the same boat, then write those three commands down to safe time searching for them online. 🙂
Install Audio Software
Next, install Reaper or Ardour. I am still evaluating which DAW to settle on but lean towards Reaper.
If you want to try Reaper, then you can install if from the AUR.
sudo pacman -S reaper-bin
As of today, the latest available version is 6.07-1 which is also what I have currently installed. Although options, I start with changing the default theme. There are a ton of themes available which others have made. If you are new to all of this, then I recommend that you use a different theme because artists work better if the visuals are not distracting.
Where to find Reaper themes
Here is a link to the Reaper Stash webiste
They have a forum which is well frequented and if you find a theme you like, you can follow the discussions so that you are in the loop about updates and tweaks.
Curently, my theme of choice is iLogic Free V1.2 which is shown below.
New version available! The creator of that beautiful theme has a new version which he emails to those who donate a bit of money to him. It looks visually different from the 1.2 version but you have that option.
Using Reaper as a DAW can be overwhelming but if you know the principals of audio recording, then you shouldn’t have much trouble to pick it up. There are many YouTube videos which the developer has made and they cover everything you would want to know and then some.
Audio MIDI setup
It is trendy to use VST instruments and plugins and I have done that in the past. These days, I take advantage of my Yamaha Genos which has all the sounds and effects I need. My second audio workstation has a Behringer UMC404HD U-Phoria USB Audio/MIDI Interface with MIDAS Microphone Preamplifiers which works nicely in Linux.
What I especially love about the Behringer UMC404HD U-Phoria is the second audio output which I feed directly into the Genos’s auxiliary inputs. This way, the speaker system functions as a second pair of studio monitors next to the Mackie ones which are on my main audio workstation.
All in all, the setup is as good as I ever had and I have no plans to change anything. In addition to the Genos arranger keyboard, I use an Maudio Hammer 88 MIDI controller. Last but not least, I have two Audo Technica condenser microphones. One is plugged into the Genos’s mic input and the other to the Steinberg UR22 MKII. Using two microphones has many advantages. One of them is that I don’t have to unplug the mics ever which is hard on the interfaces.
About my work
I didn’t want to waste time and space at the beginning of this article and so I’m describing a bit of the work I do with the above setup. Back in late 2009, like so many musicians, I too bought the new 27″ iMac which was an amazing machine. I loved working on it but by mid 2018, I felt that the computer was getting slow.
I had an MSI laptop which outperformed the iMac in every task and when I bought a Dell workstation later that year, I knew that it’s time to move on. The reason for moving to a desktop computer was mostly based on the fact that I can not repair the iMac at home. When it needed repair, Apple took at least two weeks to do so which made me reevaluate the all-in-one strategy. If anything stops working on my Dell PC, I can replace the broken part as soon as I can buy the component.
I have a lot of friends that I work with and for. Most of them are still on OS X or Windows. Unlike in the late 90’s, these days, opensource software is available on all major platforms. Becaue of that, we all have the freedom to chose and OS which works for us. I love how I can theme Linux and the speed Arch-based distros like ArcoLinux bring to the table. It’s mind-blowing how far we have come since it all begun. I can’t remember the Atari Final Cut days and if it weren’t for the long lineups because of the Corona virus, then I’d even forgotten about lining up in front of the Future Shop to buy Windows 95. Linux has come a long way since and as far as I can see, has a long way to go.