You are browsing the microtonal tag

Learn tuning theory

John Moriarty, a member of the global xenharmonic/microtonal music movement, has been making videos to explain modern tuning theory concepts. The ideas are presented in a very visual way with narration and musical examples. I would be interested to know how tuning theory newbies get on with these vids. It’s a heavy topic, both wide and deep with details. Anyway, enjoy John’s playlist!

And I’m sure there’s more to come in the future.

Tony Dubshot goes deep in Deep

Tony Dubshot - deepHere’s something new from the Dubbhism Netlabel, a naughty lil’ instrumental album called Deep by the demented dub scientist Tony Dubshot. Sometimes I get the appetite for trippy electro dub, and Deep has got me feeling full right now.

(Stream Deep on Soundcloud)

Actually Deep is the instrumental counterpart to the 6-track EP High that is set to come out soon, featuring Sarah Winton, MK-Ultra and I-Lo. I can’t wait to hear that one when it drops. (September 8th – digital stores)

Until that time comes, let’s dive down to the depths of Deep. It’s a 42 minute spin out across 10 tracks, which blend together into one oceanic ODDyssee. All united by profoundly bassy bass, and dripping wet with analog dubbiness.

Good Morning Sunshine and Mixup kick off the journey, both tracks bringing jolly vibes and a wobbly kind of sound.

From Madd Science, the album goes into a phase of space-faring utopia jams. That segue between Aura and The Capricorn Speaks!!! Can’t get enough. This is like a story told in dub.

Every track on the album seems to directly lead to the next with no gaps. The effect is like listening to a DJ set, only the transitions are totally abrupt. It works surprisingly well and keeps the whole playlist shuffle-proof.

You’re a Fish sounds like flipped out Crash Bandicoot music. Then comes Soul Fire—I caught the vocal version of this track on the radio, featuring Sarah Winton from the forthcoming High EP, and loved its funky, steadfast groove with all the stops and starts.

United in Battle… I subconsciously make screw faces as the descending bassline rips through me. Also, there’s something distinctly fresh about this. Ah that’s right, Tony Dubshot is in the know about the art of xen (aka microtonal music). A few years ago I wouldn’t have guessed that any music could sound alien yet funky, at least in the same way this does.

Knock knock… I almost can’t take it, this is too low. My brains are trying to break out of their monkey skull prison. Just like the previous track, Knock Knock is xen, owing to its tropical punch. Deep reaches a chill conclusion with Anti-Matter.

I’m deeply impressed over here. Dubshot is raising the bar higher for himself with his every release. Get this freebie album immediately and listen for yourself.

Download Deep here:

How to play microtonal scales on a Max/MSP synth

Those of you who have built synths in Max/MSP or Max 4 Live will have used the mtof (MIDI-to-frequency) object. This clever little object waits for you to send it a MIDI note number (0-127), then it spits out a frequency (Hz). Perfect if you’re working within the confines of 12-tone equal temperament—or rather limiting if you wish to use all kinds of expressive intonation systems outside of the Western common practice.

A simple sine wave generator using mtof: MIDI to frequency

There is a very simple way to get microtonal scales out of your Max/MSP synths. We simply replace the mtof object with coll.

The coll object


What is the coll object, anyway?

Coll can be used to store and edit collections of data. The data is stored in a text file. Each item of data contains an index followed by some content. For example, we could use coll to remember the release years for various killer synths.

Example of coll's use

Above, the coll object is waiting to receive an index (either YamahaDX7 or Theremin) before it spits out the data we want. I just clicked the “YamahaDX7” button, so “1983” was sent via the first outlet of coll.

To see and edit all the data inside the coll, just double-click on the coll object. It will bring up the data entry window. Here’s what’s inside the above coll object:

OndesMartenot, 1928;
RolandTB-303, 1982;
Theremin, 1920;
YamahaDX7, 1983;

Neat trick. Mind you it’s not very useful for our goal of exploring crazy scales.

Here’s how we can use coll as a replacement for mtof. First we need to understand our data structure. We send a MIDI note number (0-127) to the coll object. We want coll to spit out a frequency in Hz. So we double click coll, and we start inputting data for what frequency corresponds to what MIDI note number.

# Lines that start with a # symbol are comments.
# This is a simple scale which starts at 100 Hz on MIDI note 0.
0, 100.0;
1, 200.0;
2, 300.0;
3, 400.0;
4, 500.0;
5, 600.0;
6, 700.0;


127, 12800.0;

(Interesting note: This scale is a harmonic series with a fundamental of 100Hz. Kinda trippy if you’ve never heard this kind of scale before, so try it out).

To test this out, let’s send the number 0 to the coll. This is the lowest possible MIDI note number, and according to our data we should receive the float value 100.0 from coll’s first outlet.

Testing the coll object

A success! It’s pretty simple to get it to work, but the only problem is that the tuning data took us a looooong time to type… 128 lines in total! Luckily coll can read .txt files, and there is a much better way to generate tuning data in this format. For this tutorial, we’ll be using Scala tuning software to create .txt files that coll can read.


First create or load some tuning data into Scala. (For now we’ll just load a file from Scala’s huge database)

Loading a scala file from the huge Scala database

Then type the following command into Scala:

set synth 135

Scala will say “Synthesizer 135: Max/MSP coll data, via text file”. You’re doing just great.

Now click File → Export synth tuning as shown below.

How to export a .tun file from Scala

This will bring up a familiar save file dialog, and you can save your .txt file anywhere. Once your .txt file is saved somewhere convenient, your can load it into your coll object.

Create a message button which contains the word “read”. Connect this up to the coll object (as shown below). You can click the “read” button to bring up an open file dialog. Use this to load the file you just exported from Scala.

Load .txt file into coll but using a message box titled "read"

Once you’ve loaded the .txt file into coll, you can check that the data went in correctly by double-clicking the coll object.

# Tuning file for Max/MSP coll objects created by Scala
# Sean "Sevish" Archibald's "Trapped in a Cycle" JI scale
0, 8.1757989;
1, 8.4312926;
2, 9.1977738;
3, 9.5384321;
4, 10.2197486;
5, 10.7307361;
6, 11.2417235;
7, 12.2636984;


Congrats, you’ve just replaced the mtof object with your very own, microtunable coll! Enjoy playing microtonal scales in Max/MSP.

Big up to Manuel Op de Coul, the creator of Scala, who added support for Max/MSP coll files on my request. Much appreciation that his project is still being maintained.



  1. Recreate my sine tone generator above, using coll.
  2. Download and install Scala, then get to grips with creating your own scales.
  3. Max 4 Live users—download my device Boom. Look at the source and see how I used coll to load tuning data.
  4. Make your own simple synth and have a jam in 5-EDO.
  5. The mtof object will accept float values in its input. Find a way to abuse this feature to microtune Max/MSP without using coll at all.

Synth plugins for playing and composing microtonal music

This article has been updated in 2023 to tell you more ways to make microtonal music with software synthesisers.

Many software plugins (VST, AU, RTAS etc.) allow you flexible control over intonation, which can be used to create music with any tuning system you like. There is no one single method, so depending on your synth, you’ll be able to get at those microtones with one or more of the following:

  • Synth that supports reading in a ‘tuning file’ from the hard disk. (Usually a .tun or .scl file).
  • Synth that supports MTS-ESP. (To be used with an MTS-ESP master plugin, more on that later).
  • Synth that supports MPE (MIDI Polyphonic Expression), which means each note can have pitch bend applied independently of other playing notes.
  • Synth that understands received MTS (MIDI Tuning Standard) data as MIDI SysEx messages.
  • Synth that allows direct data input into the synth interface.

Plugins that don’t support any of the above may still be tuned by systematically using the pitch bend, however this only works for monophonic parts (unless you use multiple instances of the same plugin).

To find out how your synth can be microtuned, look it up in this table of microtunable software plugins. From there you’ll also find a few free VST downloads to experiment with.

Using tuning files: .tun .scl and others

If your softsynth loads .tun files (AnaMark, Linplug instruments, Omnisphere, etc.) then check out my tutorial on how to create a .tun file using Scala.

If you’re using something like Surge XT, PianoTeq, ZynAddSubFX, Plogue chipsounds or Garritan Personal Orchestra 4 (amongst others), these synths can load .scl files. It’s simple to find this kind of file for download on the internet, and they are easily created using Scale Workshop.


Synths that support MTS-ESP will need an MTS-ESP master plugin to control the tuning. Some examples of MTS-ESP master plugins:

  • MTS-ESP Suite
  • Entonal Studio
  • Infinitone DMT
  • There are various others

Using MIDI Tuning Standard (MTS)

The MTS never really took off in the same way that MTS-ESP and MPE is taking off in recent years. In my experience, a lot of the MTS-capable synths are hardware and not software.

Synths such as Xen-Arts’ instruments can be tuned by using MIDI tuning messages. Such data can be generated by software like Scala, alt-tuner, CSE or LMSO. Then, the data is either sent to the synth in real-time or dumped into a file to be read later.

One approach is to include the MIDI tuning messages in a MIDI track within your DAW. The MIDI track should output to all tracks which contain an instance of the synth. This approach works well in a DAW like Reaper, which has powerful routing. Unfortunately this approach won’t work in Ableton Live or FL Studio, because these DAWs filter out all SysEX data, thereby stopping your synth from receiving the MIDI tuning messages.

How to import MIDI tuning data into Xen-Arts' IVORAnother approach is to create a MIDI tuning dump. This is a .mid file containing only MIDI tuning messages. Some synths, such as XenFont, IVOR, and Xen-FMTS 2, conveniently import this kind of file. The tuning dump can also be created using Scala.

[Note: Xen-Arts synths are no longer available]

Synths that support direct note input

Direct note input is not a common feature of synths, but there are a few:

  • Surge XT
  • Pianoteq
  • ZynAddSubFX

TLDR: just tell me the best free microtonal synth I should use

Surge XT

Further reading