LJ Archive

Linux Gets Loud

Exploring the current state of musical Linux with interviews of developers of popular packages. By Joshua Curry

Linux is ready for prime time when it comes to music production. New offerings from Linux audio developers are pushing creative and technical boundaries. And, with the maturity of the Linux desktop and growth of standards-based hardware setups, making music with Linux has never been easier.

Linux always has had a place for musicians looking for inexpensive rigs to record and create music, but historically, it's been a pain to maintain. Digging through arcane documentation and deciphering man pages is not something that interests many musicians.

Loading up Linux is not as intimidating as it once was, and a helpful community is going strong. Beyond tinkering types looking for cheap beats, users range in experience and skill. Linux is still the underdog when it comes to its reputation for thin creative applications though.

Recently, musically inclined Linux developers have turned out a variety of new and updated software packages for both production and creative uses. From full-fledged DAWs (Digital Audio Workstations), to robust soft-synths and versatile effects platforms, the OSS audio ecosystem is healthy.

A surge in technology-focused academic music programs has brought a fresh crop of software-savvy musicians into the fold. The modular synth movement also has nurtured an interest in how sound is made and encouraged curiosity about the technology behind it.

One of the biggest hurdles in the past was the lack of core drivers for the wide variety of outboard gear used by music producers. With USB 2.0 and improvements in ALSA and JACK, more hardware became available for use. Companies slowly have opened their systems to third-party developers, allowing more low-level drivers to be built.

Hardware

In terms of raw horsepower, the ubiquity of multicore processors and cheap RAM has enabled Linux to take advantage of powerful machines. Specifically, multithreaded software design available to developers in the Linux kernel offer audio packages that offload DSP and UI to various cores. Beyond OS multithreading, music software devs have taken advantage of this in a variety of ways.

A well known API called Jack Audio Connection Kit (JACK) handles multiple inter-application connections as well as audio hardware communication with a multithreaded approach, enabling low latency with both audio DSP and MIDI connections.

Ardour has leveraged multithreaded processing for some time. In early versions, it was used to distribute audio processing and the main interface and OS interaction to separate cores. Now it offers powerful parallel rendering on a multitude of tracks with complex effects.

In addition to core advantages, peripheral compatibility has greatly improved. Linux audio had a reputation for a lack of drivers for legacy outboard hardware. Much of that was built around PCI and Firewire hardware that often was released with closed APIs, and Linux compatibility was an afterthought, if considered at all.

With the advent of USB 2.0, a whole ecosystem of external interfaces became available. Drivers were still needed for specific chipsets, but the actual connection was now negotiated by a widely adopted standard.

In addition, Advanced Linux Sound Architecture (ALSA) has continued to mature. Its integration into Linux kernel 2.6 back in 2003 established a commitment to useful and easy-to-use abstraction of a large collection of audio drivers. ALSA 1.1.5 now boasts complete or partial compatibility with audio hardware from more than 120 vendors, encompassing hundreds of implementations.

A relatively new means of music machine communication, Open Sound Control (OSC), has emerged as a significant alternative to MIDI. Commonly sent over UDP/IP, it offers more flexibility than the hardware-bound MIDI. As an open content format, it offers diverse data types and the ability to integrate messaging beyond musical signifiers.

Although not specific to Linux, it has been embraced by Linux audio developers and many popular packages offer some kind of OSC integration. Notably, software synthesizer ZynAddSubFx has gone completely to OSC internally while still offering MIDI compatibility.

The attention to performance and efficiency that Linux has enjoyed now finds a new application. It's well known that Linux performs well even on older machines. The surge in popularity of miniaturized Single Board Computers (SBCs) like the Raspberry Pi has brought fresh attention to the capabilities of Linux.

Interest in headless environments for audio has taken advantage of lean technologies built in to the kernel. Many new DIY synthesizers, audio routers, sensor-based audio generators, localized performance networks and MIDI controllers are all based on SBCs running Linux.

Ready for Real Time

Crucial to musical performance is the need for immediate feedback from instruments. The latency between a keyboard trigger and its sound needs to be as low as possible to retain feeling in a performance.

With slower PC hardware, efforts to speed up the DSP layers and MIDI message paths led to a community effort to find the leanest environments possible and develop real-time kernel builds.

Real-time priority for processes leads to trade-offs in OS performance and stability, so some approaches come at a usability cost. But, with modern multicore processors running at high speeds, the need for real-time kernels is mitigated.

An informal survey from linuxmusicians.com reports that most users opt for a lean distro, such as Arch Linux. A popular preconfigured meta-package is KXStudio, started by Philipe Coelho, who describes its creation:

The KXStudio project began as I started to settle down on a single distribution and wanted the latest updates for a few packages, but without having to run unstable or rolling-release distributions. I was just quickly trying to package things, then putting everything together into an ISO file.

He recently has pivoted to focus more on the repositories and plugins though. Cadence, his collection of Linux audio utilities for JACK and much more, is regularly cited as a must-have for Linux audio. There is still a live DVD image of the original KXStudio available for users wanting to get a sense of a mainstream audio setup on their own systems.

Regarding real-time kernels Coelho offered:

It's not as important as it used to be. But it's something worse pursuing and trying if one is going to record multiple streams of audio concurrently. Sequencing a song where the result is rendered "offline" does not require a real-time kernel at all. The way to go (and the easiest) is to try to do your music without a real-time kernel until you run into limitations. If it gets to a point where you need one, go for it.

DAWesome

For studio music production, a Digital Audio Workstation (DAW) is an essential tool. It's the captain's bridge from which a complete workflow of music recording, editing, creation and rendering is commanded. Linux has excellent options for professional audio work.

Ardour has been around since 2005 and has a solid reputation. Now at version 5.1, it offers a full suite of multitrack and multiplatform audio production capabilities. It has no limits on the number of tracks or plugins. If your machine can handle it, Ardour can wrangle it.

It offers an audio interface decoupled from JACK, but retains low latency. Multicore-friendly since its inception, it offers the ability to dedicate specific numbers of cores to DSP and GUI operations. You can record in layered, non-layered or destructive modes on a per-track basis. A pioneering feature is unlimited undo/redo, even across saved sessions.

Linux Multimedia Studio (LMMS) is comparable to the venerable Fruity Loops Studio or even Apple's Garageband. It also enjoys the support of many active Linux audio developers, with more than 130 contributors to its GitHub repo.

Geared toward song crafting in a unified interface, it offers "phrase" arrangement for verse/chorus/verse and pattern blocks. In addition to outputting to MIDI instruments, it comes with a quiver of soft synths and plugins for diverse tastes. Choose from 16 built-in synthesizers, including emulations of Roland TB-303, Commodore 64 SID microchip and the Yamaha OPL2 chip. The powerful ZynAddSubFx also is included with deep integration.

Using a different approach to sequencing, Renoise is a commercial ($75) offering with a deep feature set. Interestingly, Renoise is a "tracker" under the hood. People might remember the MOD trackers from the 1990s, descendants of the 1987 Amiga release Ultimate Soundtracker. Trackers have continued to evolve since then, and they offer a distinct approach to step-sequencing and grid pattern arrangement.

Renoise 3.1 is a significantly advanced implementation of the tracker concept, with a newly revamped sampler and slice arranger and compatibility with a huge array of virtual instruments and plugins. EDM producers and beat crafters love Renoise, and it has a thriving user community.

Climbing up on the cost scale is Bitwig Studio at $399. With a focus on arrangements and live performance, Bitwig is a fast and versatile production tool. It looks amazing, and the UI polish allows for intuitive engagement with the platform.

Effect and modulator chaining is arranged in a novel container format called "Device Nesting". For sound designers seeking complex chains with full automation, this is a standout feature.

Bitwig is also one of the few DAWs that supports Multidimensional Polyphonic Expression (MPE). MPE is used in a new generation of MIDI controllers like the Roli Seaboard. In addition to standard MIDI expressions like velocity, MPE offers multichannel data streams from vibrato, timbre, layer triggering and much more. Think violin over piano.

Many more Linux DAW packages are available, such as MusE, Radium, Qtractor and Rosegarden. A useful comparison matrix of all of these (created by user "milk") is available at linuxmusicians.com.

Helm's Deep

Standalone FLOSS synths are getting more uncommon these days. A new entry into the club is Helm, an interesting and stable synthesizer with an intuitive layout and clean UI. It also comes as a cross-platform LV2, VST, VST3 or AU plugin in both 32-bit and 64-bit versions, all under a GPL license. Released in 2015, it has rapidly improved and is now at v0.9.0.

Helm

Figure 1. Helm

Besides dual oscillators, sub octave and noise generators, it offers distinctive stutter and formant controls. LFOs can be routed to parameter changes across modules as well.

A fan of Helm is Mark McCurry, maintainer of the ZynAddSubFx project. "It has great routing and great design", he says.

McCurry has been busy himself these days with the release of Zyn-Fusion. It is a complete overhaul of the ZynAddSubFx UI, reducing 28 separate control windows to a single master window pane. Along with improvements to ZynAddSubFx itself, now at 3.0.3, Zyn-Fusion brings the venerable synth package into the modern age. According to McCurry:

In mid-2014 a series of mockups for a new UI for Zyn were proposed. At that point this was a yearly event. Someone proposed a GUI, using it would break a majority of the workflow of the app or it was just a glorified beginner mode. Then someone would insist on trying to implement 1/10th of the mockup after which point it was abandoned.

The mockup by Budislav Stepanov, however, was different. It had all of the controls, it provided a much better organization, and it looked good.

I figured the only way to ever see that GUI materialized was to just do it and funding would make it realistic.

I took a look at snowdrift's research on funding models and took a look at the struggles that openAV had with their funding. This information was used to decide upon the funding model.

Zyn-Fusion

Figure 2. Zyn-Fusion

The initial release of Zyn-Fusion was priced at a reasonable $45, and McCurry states that the response was positive. As planned, the new UI has now been open-sourced and no longer requires purchase.

Another project gaining steam is the modular synth platform VCV Rack. Taking a cue from the surging popularity of the hardware-based Eurorack modular synthesizer format, VCV Rack is robust software implementation of a patch cord-based modular synthesizer.

Boasting a rich array of modulators, filters, oscillators and audio generators, VCV Rack is capable of creating very complex instruments. The UI is very clean, and attention to detail is impressive.

Currently free under the BSD-3-Clause license, core developer Andrew Belt explains:

I treat VCV Rack as a commercial project in all respects except for the price and license. Instead of selling Rack, I give it away for free to increase its popularity a hundred-fold while selling VCV-branded plugins which support my time spent on the Rack platform. Instead of restricting Rack with a freeware proprietary license, it is licensed under BSD for two reasons: I want to allow commercial and non-commercial plugins to include significant parts of Rack's DSP, graphics, and plugin framework into their software with no worries of licensing. I also want to allow users to have control over the software they use, by having the ability to review, study, and change the software if needed.

Belt shared his inspiration for the project:

There is a similarity between modular synthesis and programming that I'm sure many programmers have noticed. Creating a mainstream polysynth VST plugin requires an experienced plugin developer with a well-designed plan, but modules for a virtual modular synthesizer nearly write themselves and automatically have great usability due to the same principle as the UNIX philosophy—many minimal but polished utilities combined into a large system yield better results than a monolithic system.

The Future of Linux Audio Development

With the rise of music-sharing sites like SoundCloud and streaming services like Spotify, the ability for musicians to get their music to the world has never been easier. The number of DIY music producers has grown exponentially. Interest in low-cost and DRM-free tools is at an all-time high.

Belt sees a movement toward more open software:

If you're a programmer and not scared of reading manuals, Linux is a fantastic platform for experimentation in the intersection of music and creative coding. Linux works great for standalone software like VCV Rack, mod trackers and audio programming languages, but the same is true for Windows and Mac. From a "mainstream user" perspective, however, Linux is seen as hard to use with sparse support for hardware and lacking in software choices if you just want to "get things done", and I can't blame them. On the other hand, a possible rectifying factor for Linux is the increased privacy concern of Windows and Mac, loss of control for things like automatic updates and the unfortunate blurring of the line between the internet and your desktop. People already have started seeking refuge in a Linux distro of their choice to avoid these problems.

McCurry encourages people to contribute back to the community, "for people who want to get involved, my response is 'Just get started.'" Help is needed from all sides. Developers are sorely needed; documenters are needed; designers are needed; marketers are needed; users with well thought out critical feedback are needed. McCurry adds:

For people just getting started, shop around. By looking at the mailing lists, forum posts and issue trackers for a project, you can get a feel for what's missing, what's being worked on and where things are going. Once you have a feeling for what you want to learn or contribute, start small. It's easy to get overwhelmed, and by taking small steps it's possible to go from knowing virtually nothing about a subject to being proficient.

Coelho echoes a similar sentiment:

Best thing you can do first is to get yourself familiarized with Linux itself. Trying to "fix" things or develop something new without knowing what already exists and how it works can end up badly. We already have enough software that tries to do the same thing over and over again, but not reaching a really good usable state.

I think the biggest thing we're missing in Linux audio is documentation, and people willing to write more of it. I can speak for myself that I hate writing documentation—even for my own applications.

Good designers are missing too, but it's hard to find people with the right mentality. Good designers willing to put their work on free and open software are very rare.

Coda

With modern hardware and robust offerings from the Linux software community, a full music production studio can be built around the Linux platform. From DIY bedroom producers to mainstream artists, such as Deadmau5, music makers of all stripes are exploring the versatile and powerful audio capabilities that Linux has to offer.

About the Author

Joshua Curry is a multimedia artist and musician living in San Jose, CA. He produces under the name Lucidbeaming. You can find him via his website, https://lucidbeaming.net or follow him on Twitter @lucidbeaming.

LJ Archive