29 January, 2017
Although I have written a bit about Linux Audio and even spoke about it, I did not have anything that can be used as an overview, especially for those who consider switching to Linux, and are trying to find out what to expect. Until now!
This article is my personal opinion. It might be of interest to the public because I claim it to be a rather informed opinion. I've been around Linux Audio for 7 years now, have always been active both as a musician and as a member of the Linux Audio community, and continue to be active today, albeit a little less so.
But the important message is that I am not positioning it as research or a completely balanced objective overview.
I do try to be as objective as I currently can, but I also realize that I am limited to my perspective. What is unimportant or uninteresting to me could be significant to others - and vice versa. Therefore, without opting for a statistics based, data oriented approach no balanced overview is possible.
Additionally, this article is strongly geared towards informing a non-Linux user, someone who has expectations wildly different from a hardcore tinkerer. Thus, if you are a long-time Linux user, do understand that you are not necessarily the target audience here.
Still, what the reader might expect from this essay is a very rigorous account of my own understanding of the current state of Linux Audio, coupled with my needs as a practicing musician, working primarily in the realm of electronic music. And I hope that my overview would be useful both to new comers and long-time Linux Audio people.
If you find a factual error, don't hesitate to drop me an email. If you are a developer of any of the software mentioned and I say something negative about it, don't take it personally.
Besides, I am a geek and I love tinkering with weird shit. So I probably love your one knob plugin anyway :)
Either way, I believe this overview can be a good starting point for anyone interested. Even if eventually one finds himself seeing things differently, I cover enough ground for him to be able to quickly orient himself and explore Linux Audio on his own. One can always say "I am using that great plugin which Louigi Verona had incorrectly lambasted in his review".
Typically, a person new to Linux Audio is presented with an eye candy screenshot and is told that Linux can offer "vast amount of great, professional-grade free audio software", "hundreds of native Linux plugins - both instruments and effects", etc.
Linux Audio eye candy
But is it helpful?
I have found that accurate information about Linux is not easy to come by. As I started writing this overview, I realized that the difficulty of such an undertaking comes from the amount of details one has to go into in order to explain exactly what kind of a beast Linux Audio is, and then allow the reader to realize whether this is what she needs.
Nevertheless, I have an article dated October 2012 which is fairly accurate even today.
The article is called "Linux Audio 2012: Is Linux Audio moving forward?" The fact that it is still mostly relevant today speaks louder than anything about the progress of Linux Audio as a platform for practicing musicians.
In my perception and based on some objective measurements made by members of Linux Audio mailing list of its dwindling activity, the community has significantly slowed down. This has even been part of a discussion at Linux Audio Conference 2016 in Berlin. Whether this is temporary or not is difficult to say.
The thing to understand about Linux Audio as a whole is that it is different from the world of Windows or Mac. On these platforms it is normal to say that you have to choose a particular DAW or a set of tools based on what you want.
In case of Linux Audio such a preamble should be inserted about a platform as a whole. Its fragmented nature makes it complete and comfortable for one user, and almost totally useless for another. Elegant solutions reside alongside glaring gaps in basic functionality, unique pieces of software offer never before seen features, while carelessly omitting something frighteningly indispensable, like being able to save your project. The feeling one gets from this is like standing in front of a mirror with a sophisticated futuristic toothbrush that is capable of both brushing your teeth and doing your homework - and then realizing that there is no sink and no water.
At its core Linux Audio is a community of software development enthusiasts, the dedication and genius of whom had produced some of the most impressive hobbyist desktop work I have ever seen, with ambitious goals of creating open audio plugin formats, session managers, fully open source DAWs and live performance tools.
However, the strength of Linux Audio as a platform for software hobbyists is often irrelevant to the practicing musician, as he is concerned with making music, whereas Linux Audio is all about making software - and enjoying the process. Countless presentations on Linux Audio conferences lovingly demonstrate yet another clever idea about how to take some C++ library and use it for an audio processing tool or take an extremely niche use case and create software around it, like a panel to mix together 24 speakers of a singular concert hall in northern Germany town, with the ability to individually route 12 left and 12 right channels to different microphones.
A frequent comment one hears from people who have migrated to Linux Audio is that now they seem to spend most of their time configuring software rather than making music. It is a very accurate observation. Having migrated to Linux, a musician will have several new things to take care of: learn how to work with Linux in general, explore the possibilities and limitations of the system he has migrated to, and try to compensate for things he was able to do on a Windows or Mac, but cannot directly achieve with Linux.
There is, of course, a very solid and much worked on island of "usual music making software", which is mature enough to be a whole repository of programs, which in the right hands can produce very decent results. It is still extremely dependent on the music genre one is producing and is generally more lenient towards "acoustic music", which is to say music that requires audio recording rather than digital synthesis.
Anything that requires putting together VSTs or their counterparts and produce complicated, detailed electronic music is either doomed to fail or bring back the nostalgia of the 80s and 90s, when electronic music was difficult and tedious to produce. A documentary about Squarepusher shows him recalling how he had to synchronize TB-303 with the drum machine and then synchronize that with other hardware and route it all correctly into the recorder. Typical Linux production looks just like that.
As an example I usually demonstrate an album I made. To anyone familiar with early trance music this will sound like a nice take on some of the naive experiments musicians produced during the era. However, the album was not just a nostalgic detour, but a challenge that I publicly leveled against myself - to produce a trance album using only modular Linux Audio software (and without deviating into commercial offerings). The mere fact that this was a challenge is notable.
The modular software I speak of is actually the focus of Linux Audio. It consists of a "JACK" audio engine, which is capable of producing a low latency environment. Audio signals of compatible programs can be routed around this environment to produce a setup of any complexity with very little CPU overhead.
So, the way a typical Linux Audio session works is by starting this JACK engine, then starting required programs and routing them in the way you need. A noteworthy detail to mention is that most Linux Audio software packages will not offer a complete DAW experience. Instead, the idea is to connect them the way you like and thus create a modular system to produce music. For example, you would have a drum machine, a separate sf2 player, a separate wave sampler, a separate program to load plugins, a separate multichannel recorder. By routing the audio signal through this setup, one is able to assemble a DAW of his own out of these separate components.
This sounds like a good idea, as it provides incredible flexibility. Similar setups are possible on Windows and this is more or less available on Mac, although I am not aware to what extent. Still, the approach seems legit - and it is definitely a game changer for a number of situations.
However, this unique approach creates equally unique side-effects.
For one, it is next to impossible to save all of this mess once you are done. A number of packages called "session managers" has been used throughout the years with varying degrees of success, but neither one of them seems to be complete and convenient enough to become a household name. My attempts to use LADISH and Non-Session Manager left me with mixed feelings. Usable, but only to an extent.
For example, you might have a script that is capable of starting a program, but the program itself might not support a command line argument to load a particular project. Thus, you might have to write down the name of the project file of, say, a drum machine, load the setup and then go into the drum machine and load the project file you need manually.
In fact, even setting everything up for the first time requires writing a script of sorts, unless you prefer to go through this exercise each and every time. Some packages, like qjackctl, offer features to make it easier to have permanent audio routings between apps, but all of it requires extensive research and setup before it can be taken advantage of with any versatility.
A typical setup
Another problem is synchronization. In a perfect world, each and every program in your setup should support "JACK Transport", a mechanism by which JACK audio engine will provide a common clock and thus make everything play in total sync. In reality many important programs don't support this feature or the support is broken, and their developers have long ago left the scene and are no longer maintaining the software. Therefore, quite a number of sequencers and synthesizers would have to be synchronized by hand - either during recording or later, manually in a multi-track recorder.
The third big side-effect is inability to render. Everything is real-time. There is actually a "freewheel mode" in JACK, which allows to render audio faster than real-time, but just like with "JACK Transport" it has to be explicitly implemented by a developer and current support of this feature by other software packages is patchy.
Interestingly enough, discussions on audio mailing lists and forums on the necessity of global support of "freewheel mode" puzzle some users and even developers, as they seem to have a hard time understanding why it is an important feature.
But of course, anyone who has ever used a DAW knows that rendering an audio project to a final file (or a number of files) allows one to avoid any gaps in sound processing that normally occur during real-time.
In the modular world of Linux Audio if you want to render your audio project, you would have to set up a recorder and play the project in real-time. And if during your render something happened, and the system was not able to process all DSP, producing an audible blip, this blip will end up on your final render.
The fact that this simple problem is not being understood by some long-time members of the community shows how encompassed they are in their niche use-cases and how they are detached from what a majority of practicing musicians would require.
This is not at all meant as a criticism, instead it is just a statement of fact that one needs to take into consideration. A person with niche use-cases (in fact, a person like myself) could find that Linux Audio has enabled him to explore realms that were unattainable through the lens of a standard DAW. But if one wants to simply produce "normal music", the attitude of people who write the software becomes critical.
A more typical situation found in modern Windows and Mac programs is an all-in-one software - a DAW (Digital Audio Workstation). Unfortunately, the only notable free DAWs on Linux platforms, if one wishes to exclude clones of old school tracker programs such as Milky Tracker, are Ardour, LMMS and Renoise. The latter does actually come from a family of trackers, but its ancestry is quite irrelevant at this point. Renoise is a modern and powerful DAW. It is, however, not open-source and not fully free, but usage for free is possible if the end result is rendered through a modular setup.
There is also a very popular sequencer called Qtractor, but it is not positioned as a DAW and I found it difficult to use in this fashion. Still, Qtractor is my sequencer of choice on Linux.
Either way, the two truly free DAWs are Ardour and LMMS.
Ardour 5
Ardour is a very serious commercial level DAW. A while back it had only audio recording, but starting version 3 it has midi channels as well, so now it is a proper all-in-one DAW. Current version is 5. Its source code is free, but getting a compiled version costs money. I have not been using anything after Ardour 3, but from what I understand it is a professional-grade package. If you are not coming from Pro Tools, though, you might find using it quite difficult and not necessarily suited for the type of workflow that many DAWs like Abelton and FLStudio have in mind. I found it too complicated for my needs.
LMMS
LMMS is regarded as a clone of early FL Studio, although closer inspection reveals some original UI decisions. It has stock synthesizers, samplers, event editing, patterns, a song editor and is capable of saving a project and rendering it.
It supports LADSPA, which is the first incarnation of an open source audio plugin standard, and is very basic. For instance, a LADSPA plugin cannot talk to the host program and synchronize to the host tempo, it has no support for presets, no support for custom GUIs and its stock GUI is unimaginative and difficult to work with. Nevertheless, this collection does have usable plugins.
The second generation of plugins - LV2 standard - is not supported. VST support in the Windows version is broken. After a sudden departure of the main developer from the project, the community struggles to put together a robust developer team, which unfortunately leaves LMMS with no major updates for quite some time now.
In general, LMMS is a very capable tool and solves many problems of the modular approach. However, it has no recording capability, poor plugin situation (although plugins are a more general problem of Linux Audio, as described in the next section) and no active development of core features.
I have produced several tunes as a demonstration of what the software is capable of. I have to say working on these tunes was genuinely fun. LMMS is not a bad DAW and I do recommend it, although I would not recommend moving to Linux having only LMMS in mind.
There is another option - Tracktion. Its earlier version - T5 - is available free of charge. I don't have experience with Tracktion and am unable to comment on it. Feedback that has reached me tells me that it feels a little raw compared to T7. T7 is definitely a better product and also quite affordable.
The situation with audio plugins on Linux is as complicated as everything else.
First of all, there are VST plugins that can be run through WINE, and also the so-called "Native VST plugins". Their reliability and support is inconsistent across Linux Audio sequencers, but using tools such as Festige and Carla, one can run a small selection of VST plugins fairly reliably. In my estimation, over 50% of plugins won't work at all. Those that do work might have problems loading or saving presets, crashing, having memory overflows, etc., but generally if a plugin starts - it will probably be pretty stable.
Linux-specific plugin standards include LADSPA, DSSI and LV2.
As mentioned above, first generation LADSPA plugins are extremely basic and difficult to use. A typical ploy to derail you from enjoying yourself is to present a value of a knob not as 120, but as 119.999999999. Any parameters that represent timing will almost never present themselves in units of bpm. Rather, most of them are in milliseconds, requiring you to calculate ms to bpm first. Lack of presets functionality is the bigger problem, especially in a modular setup.
Several LADSPA plugins in LMMS with an amusing approach of
duplicating controls across both channels
DSSI is an extension of LADSPA that covers instruments, whereas LADSPA is only for effects. DSSI do have presets support and custom GUIs.
LV2 plugins were introduced as a replacement to both LADSPA and DSSI. LV2 is considered to be the modern Linux Audio standard, while LADSPA and DSSI are more of a thing of the past. LV2 supports everything that is expected from a VST or Audio Unit on Mac.
However, regardless of the plugin standard, a practicing Linux musician faces a problem of grave magnitude - that of the plugin collection itself.
Truth of the matter is that the quality of plugins is extremely variable. Very well made effects are kept in the same repository as plugins akin to someone's C++ homework. In fact, LADSPA collection contains mostly poor quality plugins and only a small selection of somewhat usable effects.
The fact that bad plugins are not discriminated against creates an elaborate illusion that Linux Audio has a gigantic plugin library. When LV2 format was completed, this collection of mostly garbage was promptly ported to LV2, replicating the illusion there as well. Currently an audio focused distribution will provide around 600 LV2 plugins, which sounds like an impressive number.
In reality, however, the plugins that are good are few and far between. Most plugins would be something simplistic, like a "frequency shifter", which will have just one knob and allow to shift the frequency of an incoming signal up. Something that exists as a small pitch knob in any DAW - on Linux is released as a separate plugin. And even there the functionality is for some mysterious reason limited to shifting the frequency up, but not down.
To save the day a plugin called "AM pitchshifter" bursts onto the scene. It also provides just one knob, but this time you can shift the pitch both ways. Impressive evolution!
It is clear, of course, that both plugins are unimportant, and can at best be considered building blocks of a huge modular patch, but they do take up space in the plugin collection and keep being ported and included in repositories, year after year.
Indeed, if one were to search the plugin collection for "shifter", 8 plugins would be listed:
The probability that clicking on a random name in the list would produce a one or two knob plugin that performs some superficial function akin to a quick example of DSP coding is high.
Having custom GUI does not guarantee better usability. At times custom UI would be either broken or very unresponsive, in which case going back to stock UI is a more practical decision. To be fair, this would happen with badly built VST instruments as well. Stock UI is not overly enjoyable, but gets the job done.
4 band filter LV2 with a broken GUI
How same 4 band filter looks with a stock GUI from Carla plugin rack
There are some usable units. CALF plugins are a collection of carefully made effects and synthesizers. They are not groundbreaking by any stretch of imagination, but solid and mostly reliable. In fact, CALF Delay seems to be the only delay plugin that produces a clear and expected result. All other delays in the infamous garbage collection are, literally, delays - they take in anything you play and just repeat it with a delay "helpfully" set in milliseconds.
A collection of effect plugins taken from the ZynAddSubFX synthesizer is not bad. Its reverb is satisfactory, although in my personal opinion it compares well only against stock reverb effects of your typical DAW. As an ambient composer my preferences might be uncommon here, so feel free to ignore my opinion.
There are good looking GUIs as well
Synthesizer plugins are mostly weak. ZynAddSubFX, available both as a standalone and as an LV2 plugin, continues to be the only software synthesizer, comparable in its complexity and results to its commercial counterparts, although GUI with its billion windows leaves much to be desired.
ZynAddSubFX: both the name and appearance are a mouthful
Other experiments quickly fade out of active development (phasex is a good example) and frequently are too CPU intensive to be used in a real-time setting.
Ports of open source VSTs to the LV2 format do add considerable value, and in general LV2 is a much more robust collection than LADSPA and DSSI, but the amount of more or less acceptable LV2 instruments does not exceed 30. Compared to the rich world of VST instruments, this number is not even registering on the meter. A person moving from Windows to Linux has a good chance to be devastated.
It is clear that such poor situation with plugins makes a lot of electronic music work challenging. Modern electronic music is built on manipulating sound and using a lot of effects to achieve interesting results.
I am less aware of how usable many of these plugins are for purely audio recording work. My research of equalizers has shown that most of them are of low quality and introduce noise into equalized sound. A sound engineer that was asked to help could find only one decent plugin, but the problem with it was that it proved to be too unstable: any project where it was used could no longer be loaded.
There are also effect racks - Guitarix and Rakarrack. I have personally been using the latter as my effects processor. Some of these effects are available as LV2, some are not.
Audacity is probably the most known free software sound editor out there. I find it generally capable, but way too basic and very difficult to use. I am a person who does lots of sound editing, for videos and for podcasts. Audacity did not work out for me, but I do know many people who use it, be it on Linux or Windows.
There is a sound editor I really like called ReZound, but it is no longer maintained and was last updated back in 2007 - when Obama wasn't even president yet. So I am left with a Windows sound editor called Gold Wave which runs well on WINE.
Mixxx 2.0
For a long time DJ tools were in an even worse state. There was not a single package that tried to be Traktor or Serato.
Today, however, things have considerably changed with Mixxx 2.0. A dizzying upgrade brought us 4 decks, beat grids, support for an impressive list of controllers, effects, sampler decks, harmony mixing and all that other good stuff. As of the moment of writing I am in the process of testing Mixxx 2.0 and so far it looks very very solid.
Unlike commercial development where failure to fix critical bugs punishes software producers by a diminishing customer base, hobbyist software does not have such a problem. Additionally, technically savvy people would be able to come up with workarounds and patches. As a result, critical bugs in software available in official repositories might stay unfixed for years.
That patches could be available is good, yet applying them is not always easy, and is sometimes straight impossible without serious changes to your system. Even finding out that a patch is available might require a lot of research.
Reliability of packages is capricious, especially in case of a modular setup. Since it relies on many separate packages, the probability that an update would render one of them inoperable is actually much higher than with an all-in-one DAW, which typically relies on more or less fixed and tested environment. Therefore, modular Linux Audio setup is a wild jungle of music software. Anything is possible at any moment. Preserving working setup for as long as possible is key. I typically stay with a working desktop system until I have problems getting newer software.
Although it does not happen often, it happens enough to mention it - developers would occasionally leave, for whatever reason, and the growth and maintenance of the program that you are relying on will cease. At times someone may step in and continue working on the project, or the project may get forked. But either way it is not uncommon for such unmaintained pojects to be completely broken for years - and yet still be included in repositories.
Not forced by market pressure, some developers will comfortably hold bizarre views about software design. If you like a program, but its developer believes that MIDI is an outdated format, and instead offers OSC - you would have to find or write an OSC-to-MIDI bridge. The abovementioned support of JACK Transport or support of a session manager might be rejected by an author of a given music program because he/she does not believe in the standard, or thinks it is unimportant, or doesn't care if it is important. The mantra "if you don't like it - fix it yourself" is used often. This happens not because people in the Linux Audio community are bad or unhelpful - they are not - but because the culture is essentially that of a software development community. There are no customers.
The popular open source idea that users can "ask developers to write software for them" or crowdfund something is mostly a myth. It is very rare that users agree on what they want, and it is very rare that developers offer their services. Most of them are happy to work on their own project at their own pace. When they do agree to try to develop a feature you want, there is no guarantee it will actually happen. Asking for a price will usually yield a sum of money you are unlikely to have.
The whole relationship between developers and users greatly depends on the personality of a developer. Some developers would be serious about user feedback and try to react as best as they can. Some would straight out say that they are not going to fix any bugs or add any features.
Lately I see more and more people turning to commercial software offerings that are available on Linux. This option is impossible for people who decided to switch to Linux for ideological reasons of not using "proprietary" software. But if one is not limited by such considerations, then Linux can offer much more than what was described above.
In the past the only known commercial DAW for Linux was energyXT. It is a very niche piece of software. I considered using it at the time, but having tried the demo I realized it is not really production ready. It does have a small community of dedicated users and its benefit is simplicity.
Today, however, the choice of commercial Linux products is considerable.
Tracktion is a low-cost and robust DAW. I personally have not used it, but many people have and are very happy with it. Tracktion also provides a set of internal plugins and, as mentioned above, its T5 version is free of charge.
Bitwig is being used very extensively by Linux musicians today and is a cross-platform DAW created by people who left Ableton to pursue their own vision. Thus, Bitwig is very much like an alternative version of Ableton with some very interesting concepts and professional-grade quality.
Renoise is a commercial DAW that can be considered.
Harrison Mixbus is a product built upon Ardour and is commercially available.
There are also a number of Windows DAWs that have remarkable performance through WINE. I am personally using my FL Studio 12 through WINE with great success. There are some things that don't work, but in my estimation over 95% of the functionality is there. I have seldom stumbled upon problems and most of those have been easily resolved. Most VST plugins I own work well from within FL Studio.
Reaper is another example of a DAW that works very well through WINE.
After paragraphs upon paragraphs of brutal honesty about how a lot of things are bad, here is a section that explains why Linux Audio can be one of the best things that can happen to a musician.
It is very possible that unique tools that exist on Linux would fit your needs so well that no other system can replicate that.
In my case, modular Linux Audio setup along with several cool programms such as Kluppe have topped up my ambient game infinitely. A synthesizer called "din" has been a game changer. Pure Data allowed to me to realize some of my aleatoric tools (although Max is arguably a much better product and can be purchased for Windows and Mac). My whole project "droning" was started and inspired by the capabilities of Linux Audio and its unique raw workflow. This was exactly what I wanted for ambient.
The ability to build your own setup can be important if you are focused on experimental genres of music. By playing around with routing and synths that are available I have written a lot of inspired music. Even working with low quality simplistic Linux synths can be rewarding because you are challenged to think creatively. I had to take existing software and try to use it differently to achieve what I want.
My software of choice throughout the years had been Rakarrack, din, Qtractor, Ardour 2, Kluppe, HarmonySEQ, seq24, Carla, Patchage, Nekobee (still use it as a plugin in FL Studio and consider it to be a notable TB-303 emulator), Hydrogen, Petri-foo, QMidiArp, WhySynth DSSI, Zyn, Giada, Pure Data, JACK Keyboard and many more.
Coupled with the possibility to do "normal music", Linux Audio can be a great addition to a musician's setup. I do not regret learning Linux Audio and standing by it. I did struggle to make it the center of my music production. But now that I don't need this to happen, I am very happy to use FLStudio in combination with what Linux Audio offers.
To this day I turn to Linux Audio for new ideas. It is just such an exceptional playground for experimentation!
It is quite impossible to give an accurate overview of Linux Audio without committing to extensive research. Something that can be relevant for one person might seem inconsequential for another. Therefore, this article is but a personal opinion, told through a lens of 7 years of experience, but also influenced by a set of biases and preferences. For instance, I did not talk about notation editors or orchestral samplers.
My hold on the latest news in the Linux Audio world is definitely much weaker than it had been a couple of years ago. And things have changed.
I personally am skeptical of an imminent Linux Audio revolution. If history of Linux Audio has taught me something, then it is this - it always has been and is likely to stay a community of people who enjoy communal software development. It is not a community of musicians.
The only thing I can see happening is that Linux Audio community will no longer be the leading force in defining what a musician is capable of on the Linux desktop. The share of that is now being pulled towards cross-platform commercial offerings.
Additionally, Linux Audio visibly benefits from cross-platform hobbyist projects that initialy reside on Windows. Since Windows user base is magnitudes higher (despite what "free" software proponents tell us) these projects tend to grow fast and their success spills over to Linux.
By virtue of being really good, such products present too big a temptation for those who want to make music. Learning the intricacies of modular setup is not comparable to launching Bitwig and starting making music right away. Unless flexible custom setup is what you are looking for, you are more likely to opt-in for something like LMMS or Tracktion 5, and then, unsatisfied with its limitations, purchase Tracktion 7 or Bitwig or something that runs well under WINE.
Practicing musicians who want to move from Windows/Mac to Linux for reasons other than finding a custom audio setup to satisfy a niche use-case, are to exercise caution and research the state of their DAW on the WINE emulator, look through the commercially available DAWs running on Linux that can serve as a replacement, and make sure very early on whether the VST plugins that are central to their setup work well under WINE.