Sevish

Making microtonal music on Linux computers

This article explains some software and hardware I used to write a few of my albums. The workstation runs Linux, Bitwig Studio and various audio plugins. I also cover many alternative software choices here as your preferences might differ to mine. Updated 2023.

[The old article about my previous workflow for making microtonal music with Ableton Live is still available though quite out of date as Ableton have improved their microtonal support in recent years.]

Illustration of a penguin holding a microtonal keyboard with longing expression

Overview

Hardware

You could probably get away with using a few year old laptop for sure. I have some kind of Intel Core i7 and 16GB DDR4 RAM.

If you want to record in from microphones or hardware synths then you’ll also want to get an audio interface. I just got a cheap one that said it was USB class compliant. 2 ins, 2 outs.

USB MIDI keyboards seemed to universally work for me on Linux. Isomorphic keyboards such as my C-Thru AXiS-49 work well for microtonal music because scale and chord fingerings remain the same in each key, whereas a standard MIDI keyboard requires you to learn a different fingering for each key. The keys are all nerdy lil hexagons, it’s cute. It just plugs in via USB and my system recognises it instantly as a MIDI input device.

Photo of an AXiS-49 MIDI keyboard showing an array of hexagonal keys

I bought a second hand M-Audio Keystation 88es for 50 quid. Good deals can be had if you buy used. It’s my preferred MIDI controller; I even prefer it over the AXiS-49! There’s something about the traditional 1-D style keyboard that feels natural to play.

Which Linux distro?

Which Linux distribution is a personal preference and I can’t hope to do the question justice. To replicate my setup you want any Debian-based distro so you can use the KXStudio repository (more about the KXStudio suite of tools later).

Screenshot of Bitwig Studio and Cadence on a computer running KDE Neon operating system

The distro I’m using is KDE Neon which is based on Ubuntu. I find KDE Plasma to be familiar, fast, with possibly too many options for customisation. Of course audio software demands that your desktop environment be as lightweight as possible. XFCE and MATE are two other lightweight and popular desktop environments worth trying.

If you just want sane defaults for audio work then Ubuntu Studio gives you get the low latency kernel and other audio tweaks set up by default. Think they have PipeWire now and of course KDE so I’m thinking to switch to Ubuntu Studio next time I nuke and pave.

For Arch-based distros, the AUR has an impressive selection of audio software.

General setup and audio tools

I’ve been using KXStudio applications to deal with audio on my Linux music workstation. There are quite a few tools in KXStudio so here are the ones I find especially useful:

Cadence

Cadence is a set of tools for audio production all in one application. It performs system checks, manages JACK, calls other tools and make system tweaks. It launches automatically when I boot, so I can then launch my DAW and get straight to doing music.

Carla

Carla is a plugin host that can load up various Linux synths and effects. There’s even a way to load Windows VSTs with it but I haven’t taken the time to figure that out – I’m happy with Linux-native software currently. The reason Carla is so crucial for me is that it can be loaded not just as a standalone app but also as a Linux VST. This is extremely useful if your DAW only supports VST plugins but you want to use LV2 plugins too – Carla acts as a VST-LV2 bridge in this case.

KXStudio repository

You can install the KXStudio apps by first setting up the KXStudio repo in your package manager. The repo also contains a large number of music plugins so you can install them via your package manager rather than compiling manually. This is so useful! It even contains all the u-he Linux synths (you still need to pay for a license as they are proprietary) and Zyn-Fusion (the new interface for ZynAddSubFX)!

General setup

When doing any kind of real-time audio processing or recording, you’ll want to use the low latency kernel rather than the generic kernel. This may help prevent crackling and reduce your system’s audio I/O latency. If you’re using a distro that is designed for audio work such as Ubuntu Studio then you already have this kernel. Otherwise if you’re using a generic distro you should search online for how to install and use the low latency Linux kernel.

You should also add your user to the audio group. This gives your Linux user permission to use desktop audio devices.

Digital Audio Workstations (DAWs)

These days I’m using Bitwig Studio as my DAW. I will explain why below and also mention a few alternatives.

Bitwig Studio

As a former Ableton user I found it easy to switch over to Bitwig Studio. Bitwig has a native Linux version which works well with the apps I installed from KXStudio. It is not free software – you buy a license and then get 1 year of upgrades. You can continue to use your copy after the license expires but you don’t get feature updates until you redo the license.

Bitwig Studio supports Linux VST plugins, but note that it does not support Linux LV2 plugins. This is disappointing because many libre audio plugins use the LV2 standard and not VST. And this is why the Carla plugin host is so essential – it allows me to bridge LV2 plugins into Bitwig Studio!

Editing polyphonic pitch-bend using Bitwig Studio's piano roll

Bitwig’s built-in synths support MPE polyphonic pitch-bend. Its piano roll allows you to detune each note individually using an intuitive interface. That does entail a lot of manual work but gives you unprecedented pitch control in a polyphonic setting. MPE is also quite future proof being that it’s part of the MIDI 2.0 spec. I’m waiting to see if future synths will work seamlessly with Bitwig’s implementation of polyphonic pitch-bend.

Some people will prefer using Bitwig’s polyphonic pitch-bend over my usual approach (which is to use plugins that can import tuning files – more on that further below)!

There are various alternatives to Bitwig Studio and I’ll mention a few below.

Ardour

Ardour is one of the most widely used free-and-open-source DAWs for Linux. Supports MIDI and synth plugins, so you can use plugins to get microtones.

Reaper

Screenshot of Reaper DAW

Reaper – I am told by many many people that it is simply the best DAW around. Its native Linux build is stable enough for serious use. The license is cheaper than most proprietary DAWs and the demo version gives full access to all features, including saving and loading projects, so you can try it fully before committing to support the devs.

Reaper also lets you customise the key colours and layout of the piano roll. This is one of those issues that only microtonalists seem to understand is useful!

Renoise

Renoise is a tracker style DAW that runs natively on Linux and can be microtuned using the SCL to XRNI tool. It also supports plugins so you can get at those microtones that way.

LMMS

LMMS comes bundled with a variety of synths, all of which support microtuning by default.

Plugins and softsynths

Many synths don’t support microtonal tunings (they are locked in to 12-tone equal temperament) so we’re only looking at synths that support custom tunings. Often times the synths that come bundled with your DAW don’t support it but there are exceptions, try it and see.

If you use synth plugins that have built-in microtonal support then it doesn’t matter which DAW you use, as long as your DAW supports plugins. Below is a showcase of Linux-native plugins with support for microtonal tunings.

Surge XT

Screenshot of Surge synthesizer

Surge XT is a powerful open-source synth with an excellent implementation of microtonal tuning via .scl and .kbm files. It’s cross-platform and can run as an LV2 or VST plugin. You can also use it with VCV rack.

Vital

Screenshot of the Vital synthesiser plugin

Vital is a wavetable synth which supports microtonal tuning via .tun or .scl/.kbm files. There is a free version and a paid version and I believe the source code has also now been released.

TAL-Sampler

Screenshot of TAL-Sampler audio plugin

TAL-Sampler is my sampler plugin of choice because it’s fun to play, not overly complicated and supports microtuning by tun file, MTS-ESP or MPE. That’s three ways to choose to get at those tunings!

The great people at TAL now support Linux for all their plugins which is extremely welcome because I was using them before I switched over. The sampler is especially important because there aren’t many of those supporting Linux. But I also get a lot of use from TAL-Chorus-LX, TAL-DUB-X and TAL-DAC.

Pianoteq

Modartt’s Pianoteq is well known in the music world for its rather good piano sound. It’s a physically-modelled piano – this has some benefits over sample-based pianos. First, it has a tiny footprint of just a few megabytes storage, as opposed to the gigs and gigs often required by sample-based pianos. Second, you can tweak the parameters of the physical model to get interesting variants on the typical piano sound. Here’s an example that will interest microtonalists: you could design a piano with quietened even harmonics (e.g. harmonics 2, 4, 6, etc.) so that the timbre will blend better with the Bohlen-Pierce scale (this scale features primarily odd harmonics). This kind of sound design possibility is pure excitement for nerds like me.

Pianoteq is a good example of how developers should implement Scala files support. It supports .scl files but also the .kbm format that allows the user to create any specific full-keyboard microtuning. Additionally they provide a tone circle graphic that allows you to visualise how the overtones of the piano timbre align with your tuning. That’s not necessary to have, but is a really nice feature.

Tip: on the tuning screen you usually must enable the ‘Full Rebuild’ option otherwise a great many tunings will sound unnatural and un-piano-like.

MTS-ESP is also supported as a method of microtuning, but last time I checked it had some sound quality issues. I’m recommending Scala files instead if you want to tune it.

Pianoteq supports Linux, macOS and Windows natively so it’s a good plugin for almost anybody who wants to write microtonal piano music. Just note that the Stage version has no microtonal support; you’ll need to get the Standard or Pro version if you want to retune the piano.

u-he plugins

Screenshot of u-he ACEScreenshot of u-he BazilleScreenshot of u-he DivaScreenshot of u-he Hive2Screenshot of u-he ReproScreenshot of u-he Zebra2

ACE – virtual semi-modular synthesizer
Bazille – virtual modular synthesizer
Diva – virtual analog synthesizer
Hive2 – wavetable synthesizer
Repro – virtual analog synthesizer
Zebra2 – various synthesizer

Many of the u-he synths have Linux versions available and can be microtuned using .tun file import.

Please be aware the Linux versions of our plug-ins are still considered beta. While the plug-ins are stable, we are not able to provide the same level of support for these products as we do for the macOS and Windows versions. Support is provided via the Linux and u-he communities on our forum.

I have a license for ACE and was using it on Windows for a few years. It’s nice to know that I can continue using it on my new setup.

EP MK1

Screenshot of Mike Moreno EP MK1

EP MK1 is a free, physically-modeled electric piano plugin by Mike Moreno Audio. It has two methods for microtuning – you can dial in any equal temperament you want via the interface or you can load a text file containing a list of frequencies. The text file can be easily generated by Scale Workshop (I’m not sure if any other tuning software supports Pure Data text files).

I think EP MK1’s electric piano simulation is actually pretty usable within a mix. And with the recent addition of support for Pure Data text files it’s possible to tune every MIDI note to an arbitrary frequency. I finally have good reason to use this plugin on my next album.

Zyn-Fusion (ZynAddSubFX)

Screenshot of Zyn-Fusion synth plugin

Zyn-Fusion is a powerful synth capable of additive, subtractive, FM and PM synthesis. Really though you want this because its thick PADsynth sound can’t be imitated elsewhere. Zyn-Fusion can be microtuned by importing Scala (.scl) files and keymap (.kbm) files. Alternatively you can enter tuning data directly via the UI which might be helpful to some. While the developer of the new UI put so much effort into it, I feel like Zyn-Fusion still bugs out a lot and has rough edges. So I don’t really recommend this synth plugin anymore but it’s worthy of mention.

v1 Suite

The v1 plugins (except for drumkv1) all support microtuning via .scl file.

synthv1 – a subtractive synth
samplv1 – a polyphonic sampler
padthv1 – an additive synth based on Paul Nasca’s PADsynth algorithm

As far as I’m aware samplv1 is the only microtonal-capable sampler plugin for Linux, so you will want to grab this!

kbm files are supported which means these synths can do full-keyboard microtuning. Your tuning can be saved per-instance or optionally saved as a system setting (in case you want to always use the same microtonal tuning in every instance).

This same developer also created the Qtractor DAW for Linux.

Amsynth

Amsynth is a subtractive synth and it’s quite easy to use.

Pure Data + Camomile

Pure Data is a visual programming environment for audio similar to Max/MSP. It is free and very powerful.

Camomile is a VST wrapper for Pure Data patches. In other words, it allows you to turn your Pd creations into VSTs that you can load in to your DAW! It is cross-platform, so your creations can run on Linux, macOS and Windows.

The combination of Pure Data and Camomile is comparable to Max 4 Live.

Calf Audio Vinyl

Vinyl by Calf Audio is a vinyl emulation audio effect. So what, you ask. Well, it has one useful feature called ‘drone’ which applies an oscillating pitch-drifting to whatever audio you feed into it. If you dial in a lot of ‘drone’ you can recreate that warbly lo-fi tape-wow sound, or if you use just a little you can add a subtle intonation drift that will add interest to an otherwise perfectly accurate digital synth sound. Those of you who have composed just intonation music using digital synths will know the buzzing periodicity/phase-locking kinda sound. Just a little ‘drone’ adds enough error to the intonation to prevent that buzzing from happening.

Tuning software

Most synths don’t provide any interface for customising your own microtonal scales – instead they load a tuning file that you have to create yourself. For that, you’ll need some special software.

Scale Workshop

Screenshot of the Scale Workshop web app for making tunings

If you’re just getting started, try Scale Workshop – it can generate microtonal scales and export to a variety of tuning file formats. It’s free and open-source (MIT license). Because it runs in your web browser it doesn’t require installation.

Scala

For serious experimenters, you might want to graduate from Scale Workshop and use Scala. It’s also free, and can be installed by following the instructions on their official website. It’s not as user friendly as the alternatives but it has about ten thousand cool features hidden away.

If you want to re-tune hardware synths or use MIDI Tuning Standard then you will want to get Scala and not Scale Workshop!

Load the tuning file into your chosen synth

This is the important bit!! Once you have created a tuning file using Scala or Scale Workshop, simply load it up in your synth of choice. Read your synth’s user manual for how to do this. Now you can jam away in your chosen microtuning.

Proof this all works

As of 2023 I have released 5 albums that were produced on this Linux-based setup. So I’m serious when I say I prefer this OS and it hasn’t held me back as an electronic musician. If you’re curious about my sounds then head to sevish.com and hit play.

Are you making music on Linux, or making any kind of microtonal music? Let me know in the comments what works for you and how you got it running! Everybody has a different workflow and we can all learn something from one another.

My thoughts on desktop Linux

My first experience with Linux was Fedora Core 3 in the early 2000s. It was neat but I wanted to play Stepmania and Rollercoaster Tycoon so I stuck with Windows. Later I got into music production. Again, Windows stuck. The spell was broken by Windows 10 which is literally so bad. I got back into Linux and saw how much it had matured. That’s when I committed to it.

(I do use macOS at work which is pretty good but this too is riddled with bugs and awkward design decisions).

The swap over to Linux was a gradual process as I had to learn a few things but I think I ended up with a solid system. Whenever I boot up the old Windows machine to revisit old projects I am quickly reminded how often I used to tolerate crashes on Ableton+Windows.

One issue remains with Linux that many audio software developers still target only Windows and macOS. I see this trend slowly reversing – and I have so much appreciation for developers who add support for native Linux. Have supported a few of these devs myself by purchasing their tools and sending in detailed bug reports when needed. Big respect to you all.

More articles by Sevish about making microtonal computer music


What you’re referring to as Linux, is in fact, GNU/Linux, or as I’ve recently taken to calling it, GNU plus Linux plus KDE plus JACK plus Bitwig Studio plus Carla plus Scale Workshop plus Surge XT.


15 thoughts on “Making microtonal music on Linux computers”

  1. Bob

    Do you retune your percussion samples to fit in with your synth tuning? Sometimes it sounds like they might not be, but I wouldn’t trust my ears on that :)

    Reply

    1. Sevish Post author

      Yes often I do tune percussion samples to match the synth tuning! But not always actually. It can really improve the overall sound if samples are tuned like the other instruments.

      Reply

  2. oddyotrax

    Great article.

    You might be interested in trying this synthesizer (the URL linked to my username) for learning and experimenting with microtonal scales. It is built with JUCE6. and available for Linux as a Standalone and VST3 instrument. The VST3 currently loads in Carla and Reaper and should be fully functional in the next beta release of Bitwig. The Standalone has ALSA and JACK support.

    If you have any ideas, suggestions or features you’d like to see added, please join the Slack discussion. The link is available at the bottom of the Surge Synth Github page.

    Thanks for mentioning Surge.

    Reply

    1. Sevish Post author

      Thanks oddyotrax.

      Recently, when folks have been asking for a recommendation for their first microtonal synth, I’ve been suggesting Surge. Seems to be going down really well.

      Reply

  3. Richi

    Hello can you help me installing scala in linux. Im on ubuntu studio, followed te instrucción but is not working so…. may be toi can ilustrate better the procedure. Thank for your post is really been helpful.
    I run supercollider and tidalcycles to renoise controlling hardware and it runs amazingly in linux… I just Miss scala to start experimenting with new keyss…

    Reply

  4. Richie

    maybe can you help me installing scala in linux, i followed the isntruction but didnt nailed it …. so how did u succesfuly install scala un ubuntu ?

    Reply

  5. AJS

    Superb article… your thorough and extensive overview of not only microtonal possibilities but also a succinct summary of what one needs to do to get Linux working well with audio is really appreciated.

    Long time Linux user here, but until relatively recently never explored its usefulness in that realm. Definitely feel your pain regarding Windows10 ;) Thanks again and keep up the great work!

    Reply

  6. Hostuu

    Thank you for this guide! I am a huge fan. You gave me my first impression of modern western microtonal music, and you’re also responsible for my love for it!

    Reply

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*