Installing a Linux Music Production system

Although it has been quite a while since I posted on this blog, that doesn't mean I have abandoned Linux Music Production. Far from it: I experimented quite a bit with various distributions and applications but was severely pressed for time to write about it because of many other things going on in my life. However, as a result of my experimentation, I decided to rebuild my project studio entirely around Linux. To begin with, there is a new computer to serve as the hub of my Linux project studio. In this post I will describe the setup process I went through to get it up and running. So let's get started....:

The first decision to make was the Linux distribution to install. If you have read previous posts on this blog, you'll know I had some problems getting the Steinberg ST24/96 to work (described here), but when I installed Ubuntu Studio it worked straight away, ADAT and all. So I felt confident I could get it up and running in a different distribution as well. So I decided to use Arch Linux again for all the reasons I described here.

Arch Linux logoAnother decision I made here is to use the 64 bit version. I really see no need anymore to use 32 bit software since just about everything I need is available in 64 bit versions. You can of course run a mixed system if there is 32 bit software you can't live without, but I decided to keep it pure 64 bit. Using the Arch Linux installer is very straightforward if you have a bit of Linux experience, plus there are always the Beginners' Guide and the Official Arch Linux Install Guide on the web in case you need assistance.

After downloading and installing the packages, I edited the configuration files. This is "The Arch way" and I like it because it gives me control over my configuration. All of this was fairly effortless, but then again, I have done this a number of times before. If you are completely new to Linux Music Production I recommend you start with a music oriented distribution that takes care of configuration issues for you such as Ubuntu Studio. All in all it took me about 20 minutes to install and configure the base system.

Fundamentals

Having a base system in Arch Linux is only the beginning. The philosophy of Arch Linux is to provide you with a clean slate on which you can install anything according to your preferences. But this also means installing and configuring just about everything yourself, including the graphical user interface (if you want one...).

Before installing anything, I created a 'regular' (unprivileged) user because Arch Linux does not create one by default and doing your regular work as the root (the system administrator) is a very bad idea. Then this user had to be added to the relevant groups (video, audio, optical, storage).

With that out of the way it was time to install some software. For a Linux Music Production project studio rig, sound support is the logical next step, so I installed alsa and alsa-utils. Using alsamixer I unmuted the DAC and set its volume to 80% and issued the alsactl store command to save these settings. Finally I added alsa to the daemons array in /etc/rc.conf to start alsa automatically at boot. A quick test and the sound seemed to be fine.

In order to get the best results with the audio programs I intend to use, I made a few system tweaks to improve audio performance: in the file /etc/security/limits.conf I set @audio rtprio to 99 to increase the real-time priority for the audio group. And I set @audio memlock to unlimited. Because I don't use a graphical login manager, I added session required pam_limits to the /etc.pam.d/su file.

Finally in this phase I made two additional changes to improve performance: in /etc/fstab I added noatime to the options for / and /home so the system does not log read access for files. Plus (in the same file) I mounted the tmpfs file system for /tmp. All of this perhaps looks rather complicated, but it only took me a few minutes.

What took a bit longer was installing and configuring Xorg (the server for all things graphical). I will not go into details here since everybody's system is different and thus are the configuration settings. You can install a Desktop Environment like Gnome, KDE, XFCE or LXDE that depends on X and do everything in one go. Personally, I prefer a more 'bare-bones' system with just a Window Manager (WM).

So after installing Xorg, the WM was the next step, and my choice here is Openbox, again a rather minimal application that just gets the job done with quality, elegance and clarity. No unnecessary stuff unless you add it yourself. I like it that way. The only thing I added to Openbox was Conky to provide some feedback on CPU, RAM, network and file system usage.

Music software

With Xorg and Openbox installed, I could now turn my attention to the actual music stuff. First up was LilyPond. I think this is the best Linux music notation solution and is indispensible for me, so I installed that (and Evince for viewing the .pdf output) first. I ran a quick test and it worked beautifully.

While I didn't write about it here (yet) I experimented a bit with LilyPond front-ends such as Denemo, Frescobaldi and the music notation of Rosegarden. With each I ultimately found that I prefer the combination of LilyPond with Vim. Direct editing of LilyPond code works best for me. Frescobaldi comes close but I really dislike the fact that there are so many KDE dependencies. I prefer my system clean and lean. The combination of Vim / LilyPond / Evince does most things Frescobaldi does without the huge overhead.

The next step was setting up a recording environment. Here, JACK is essential so I first installed jack and qjackctl. And here I ran into a bit of trouble. At first I couldn't get jack to "see" the ADAT interface and lock to my Fostex VC-8. I had this working in Ubuntu Studio, so I knew it was possible. After experimenting with various settings in qjackctl without the desired result, I remembered I had backup up the .jackdrc file from an earlier Ubuntu Studio installation. I restored the file from the backup to my home directory, restarted jack and I had my ADAT interface working again! So, for the people that are struggling to get an ADAT lock with a Steinberg ST24/96 card (which is a rebranded RME Digi96/8 PST), try this .jackdrc file:

/usr/bin/jackd -dalsa -dhw:0,1 -r44100 -p256 -n2 -i8 -o8

Screenshot desktopWith JACK up and running it was time to install Ardour and Rosegarden. I tried a few quick test recordings through the ADAT interface and now everything was fine. So there you have it: the hub of a Linux music production studio!

Some extra thoughts

I am aware that I can fine-tune the system even more, but I am leaving that for later. You may also notice that I do not (yet?) have a realtime kernel. I think that for my needs the stock Arch Linux kernel will be fine with the changes described above. However, I might patch the kernel at a later date if necessary. I did not install each and every Linux music software application available, I want to keep the system light and clean. Of course I will add other programs, but only when the need arises.

As a final note: this is a rather long post... I decided to write a bit more extensively about the installation and configuration process to help you if you are interested in Linux Music Production. Of course an article like this can never explain everything you'll encounter, if only because everybody's system has different hardware and each of you will have your own preferred ways of working. But perhaps it can point you in the right direction. With all the resources available on-line these days, setting up a Linux music production environment is not that hard. So I hope you'll share your experiences (and questions) in the comments below.