Sevish Music

Microtonal piano roll for Ableton Live

Here’s a tutorial to help you make microtonal music in Ableton Live. We’re going to mod Ableton Live’s piano roll to play 22-tone equal temperament (aka 22-edo). You can apply this technique to other piano roll designs, with some limitations discussed later. Abletonalists unite!

First I should provide some context as to why this tutorial will be so useful. Check out this mindblowing M-Audio Keystation 88 with the keys rearranged to play 22-edo. It was a little project of William Lynch‘s a few months ago.

William Lynch's 22-tone per-octave M-Audio Keystation 88

This keyboard layout is Steve Rezsutek’s design as discussed in Paul Erlich’s paper Tuning, Tonality, and Twenty-Two-Tone Temperament.

There are gaps between some white keys because white keys actually come in different shapes and sizes, making things look a little messy when rearranged. You also need extra black keys to make this work, so you can see a few missing at the upper end of the keyboard. Spare keys can be found on second-hand broken keyboards or bought as replacement from the manufacturer. Soon we’ll be able to 3D print each key for any given piano roll layout (this could be a great project for a music technology student). Obviously this is all very DIY, but at this point in time nobody is mass producing microtonal instruments. Everybody in the microtonal scene right now hacks and invents their own unique stuff.

Truth be told, I’m planning to use some of my Rhythm and Xen album sales to buy a new keyboard and make one of these for myself.

The goal of this tutorial is to recreate Rezsutek’s keyboard layout in the Ableton Live piano roll. Erlich suggests to remove all the E notes, so that you have something that looks like below:

22-tone-temperament-Rezsutek-keyboard-layout

ableton-live-microtonal-piano-roll-22

Not only will this tutorial show you how to make a dope 22-note piano roll like above, but you’ll also be able to actually HEAR and PLAY music in this novel tuning system. It’s a beautiful system that includes such wonderful intervals as the subminor third, the 7th and 11th harmonics, and near-quartertones, plus a variety of rich chords, progressions and comma pumps.

This technique isn’t specific to 22-edo; you can adapt the method for other tunings too.

To make this happen, we will be using the piano roll ‘Fold’ function, as well as taking a few other steps to make everything sound correct.

Making the layout in Live

This is the easiest part, and you might know this trick already if you’re knowledgeable with Ableton Live. We will create a MIDI clip that has one massive chord containing every note except for all the Es. Then we will enable Fold so that the Es disappear from the piano roll. So let’s look at it step by step:

Create yourself a new MIDI clip and make sure that Fold is disabled. Then start building up a chord containing all the notes except for the Es:

ableton-live-22-edo-piano-roll-tutorial-1

It’s easiest to work up from the bottom. Once you have made one octave you can copy and paste to fill in the rest of the notes.

ableton-live-22-edo-piano-roll-tutorial-2

Once you have added all the notes from C-2 to G8 you can move the whole chord to the left, so that it is outside of the range of the clip. This way, you won’t hear an almighty cluster of pain when you play the clip.

ableton-live-22-edo-piano-roll-tutorial-3

Ctrl+A to select all the notes in the chord, then tap 0 to disable all the notes. This will protect you from hearing these notes if you have MIDI Editor Preview enabled.

Then click on the Fold button to enable it. All of the Es will disappear from the piano roll.

ableton-live-22-edo-piano-roll-tutorial-4

Just ignore the note names (C4, C#4 etc.) because they don’t have any relation to 22-edo.

Making the tuning file

Now we have our custom piano roll layout set up in Ableton Live, but that doesn’t mean that the notes will play a 22-edo scale. You can’t just drop Operator on to the MIDI track and expect everything to be tuned to 22-edo automatically. At this point, you should make sure that you have some kind of MIDI instrument or VST/AU plugin that supports microtonal scales.

I will use Scala to design a tuning file with 24 notes in total. Each note will be tuned to a note from 22-edo, and 2 of the notes will be duplicates that fill in the missing Es.

First we type ‘equal 22’ into scala and hit enter. This generates the scale. Then we click on ‘Edit’ to see all of the notes that were generated. By Scala tuning standards, 1/1 will fall on middle C at ~261 Hz unless a keyboard mapping is specified. So we can assume 1/1 is C, and therefore the notes 218.18182 and 818.18182 should be duplicated to fill in the missing Es.

ableton-live-22-edo-piano-roll-tutorial-5

You can just select 218.18182 and 818.18182, then Ctrl+C and Ctrl+V to duplicate them. Finally, click on the ‘Ascending’ button to make sure that all the pitches are in the correct order. Click OK when done, and save your progress.

Or if you’re too lazy for all of this, save the below text as a .scl file:

! 22-edo-no-Es.scl
!
22-EDO with no Es
 24
!
 54.54545
 109.09091
 163.63636
 218.18182
 218.18182
 272.72727
 327.27273
 381.81818
 436.36364
 490.90909
 545.45455
 600.00000
 654.54545
 709.09091
 763.63636
 818.18182
 818.18182
 872.72727
 927.27273
 981.81818
 1036.36364
 1090.90909
 1145.45455
 2/1

All that’s left is to export this scale for the synth you’re using. You can read your synth’s manual to determine which format of tuning file it needs. Then export the correct format file using Scala. Watch my YouTube video tutorial below to find out how to export various kinds of microtonal tuning files with Scala.

Making it all come together

Head back to Ableton Live as quick as possible, then drop an awesome VST instrument on to the MIDI channel you used earlier. Load the tuning file you created into the VST, then jammmmmm. The setup is finished, so start writing!

Remember that octave transpose works differently now because your scale actually spans (what Live thinks of as) 2 octaves:

Ctrl+↑ to move a note up by a tritone.
Ctrl+↑↑ to move a note up by an octave.
Ctrl+↓ to move a note down by a tritone.
Ctrl+↓↓ to move a note down by an octave.

Make sure to read Paul Erlich’s paper Tuning, Tonality, and Twenty-Two-Tone Temperament for more insight into the musical possibilities of this scale.

Download an example project

Update: I made an example project with one MIDI clip already set up for you. In the project folder you’ll also find tuning files in 3 different formats.

Applying this to other tuning systems

I suspect that the Fold method will work easily for any scale less than 12 notes. It will also work for any even-numbered scale with 12 to 24 notes in total, as long as the pattern of white and black notes repeats every 12 MIDI notes. This is because the “octave transpose” function (Ctrl+↑ or Ctrl+↓) in Ableton Live’s piano roll transposes by 12 notes and ignores folding. So an asymmetric piano roll layout will be broken by octave transposition.

Music in 22

There’s a long list of 22-tone music on the Xenharmonic Wiki. And here’s a song I created in 22-tone equal temperament back in 2010:

Further exercises

  1. Use the Fold method to create piano roll layouts for other tuning systems.
  2. Find out if absolutely all piano roll layouts are possible with the Fold method. Why/why not?
  3. Recreate this software piano roll in hardware by disassembling a MIDI keyboard and re-arranging the black and white keys by hand. (How to remove keys from an M-Audio Keystation)
  4. If you’re still trying to figure out why the piano roll needs to be modded in the first place, read my article about why DAW developers should design a better piano roll.
  5. Start evangelizing to audio technology developers, asking them to support microtonal piano layouts and microtonal tunings.

2 thoughts on “Microtonal piano roll for Ableton Live”

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>

*