If you are a programmer, you will find some fairly powerful and robust GNU / Linux systems. When it comes to areas like visual arts, video, business, or games, you’ll find tools with promising potential, but with plenty of bugs, quirks, and challenges. You can accomplish everything you need in most cases, but the setup and learning curve may not be as smooth as the proprietary options on proprietary systems.
In this article, based on my talk at SCaLE 14x this year, we’ll cover the basics of setting up your Linux system for music creation, highlighting what works best and recognizing the challenges with recommendations on how to find help.
To start with audio, we need speakers (the number of headphones is counted). To use sounds other than those generated entirely by the computer, we also want sound input. Older Linux systems used OSS (Open Sound System), and older audio interfaces and computers with Firewire use FFADO, but for almost everyone today the focus is on ALSA: Linux’s advanced sound architecture.
Fortunately, ALSA is part of the Linux kernel, so you don’t need to know much about it as an end user. All you need to know is if your hardware is supported. The built-in hardware of most computers will work. For better sound and better compatibility with guitars, microphones, and other musical equipment, a more dedicated audio interface makes sense. Any ‘class-compliant’ interface will work, which includes many basic, affordable options. A decent number of high-end interfaces are also supported. For options with top notch sound quality, I have had success with the Focusrite Scarlett series. Being updated only by volunteers, the most accessible lists of supported interfaces are rarely complete or up to date, but nice people on the forums and IRC can help.
For the low latency timing needed by most musical creations, a low latency kernel is recommended (but not absolutely required). The best bet is to install a prepackaged one as part of a dedicated music system.
Distributions and rest
A dedicated music system is not necessary to start with the basics. Most introductory software works on just about any GNU / Linux system (and anyone can modify any system to get anything, if it’s something you want. spend your time). However, dedicated music systems offer many advantages.
I am using KXStudio, a great collection of repositories that can be easily added to any Debian based (and therefore also Ubuntu based) operating system. With the KXStudio repositories added, a simple update and installation of the recommended items will give you a complete system with a low latency kernel, tons of great programs, a dedicated suite of management tools, and tons of effects. , plugins and synthesizers. The maintainers of KXStudio (mostly a guy, actually) do a terrific job of keeping things up to date and responding to requests. Keep in mind that this is essentially effective full-time volunteer work, so consider donating to keep this going.
Aaron’s Custom KXStudio Desktop
Other audio-focused packages and distributions exist, including AV Linux and Fedora Jam. Several other systems have been created over the years, but most are not updated or active.
Note on 100% Software Freedom: Although the Musix and Dynebolic audio focused distros have received FSF approval, the newest way to have a 100% free / free / open music system is to use the base Debian system or the FSF- approved Trisquel distribution and add the KXStudio repositories to your installation.
While ALSA works directly with the hardware, other audio layers handle all the signals from various programs and send them to ALSA. Some programs support ALSA directly, while others work with PulseAudio or systems like KDE’s Phonon, which works with GStreamer or VLC backends. All of this confusion basically means that your system setup interacts in different ways with different programs depending on how they support and interact with those frameworks.
The main audio system dedicated to music is called JACK. It provides a backend that supports arbitrary paths for audio (and MIDI, the system used to send control signals for synthesizers) to and from all supported programs. With JACK, a synthesizer output can go into a reverb plugin, then into a recording program while a separate drum program is playing. JACK can start and stop all playback of multiple programs with any one of them set to be the primary timer.
JACK approaches the unix principle of having small programs that do one or a few things well instead of monolithic all-in-one programs. Of course, that requires some serious management tools to keep it all together. KXStudio provides the Cadence GUI suite of tools, which many people also use outside of KXStudio. The most JACK-focused and unix-based tools come from Jon Liles, author of the No series. They provide a separate mixing tool, a recording tool, a sequencer and a session manager. A session manager is a tool that saves all the different settings and connections you have in JACK and saves them as a set so that you can automatically close and reopen later all those independent programs all configured the same way.
Configuring JACK connections with Cadence tools
Unfortunately, while the concept of JACK and modularity makes sense, the level of support and the quality of the tools are inconsistent. Some combinations work perfectly and smoothly, but some programs offer incomplete support or even no support. Some programs support JACK but their design encourages users to do everything in-house anyway.
Newbies to GNU / Linux music creation should try to understand the basic concepts of JACK. This will help them understand the general ecosystem of available musical tools, whether or not they choose to adopt the modular approach.
In my next article, I will focus on programs that support JACK but can also be used independently.
The Linux Musicians Forum is the best place to start and get involved. Also check out the #opensourcemusicians IRC channel on Freenode.net (and many projects also have their own channels, of course). The Linux Audio Wiki is also a great resource, although some of it may be quite old. Also consult libremusicproduction.com for a great series of additional tutorials and more.
In practice, setting up your system may involve some troubleshooting. On my particular laptop, for example, if I want to use reliable low latency settings (needed for fast response when playing live with synths or effects), I have to turn off my network and put my processor in Performance mode. . While there are good guides on these topics (some of which I’ve written myself), each case varies in this complex GNU / Linux world with such diverse tools and hardware. I encourage everyone to use the welcoming and helpful community. Nothing beats personal support. Don’t forget to pay next: help improve wikis and answer questions from newcomers once you’ve gotten to grips with it!