MIDI has served musicians well for decades, but everyday microtonalists are struggling to make electronic music within the limitations of the MIDI spec. These limitations may not be apparent to your everyday musician, so I thought I would highlight some of the problems that are faced by those working in this field.
The existing MIDI standard allows you a mere 7 bits to store the value of the note being played. That gives us 128 notes in total. Oh don’t get me wrong, 128 notes is more than enough for standard tuning, but this isn’t 1890 anymore. People are starting to want something more than standard tuning.
128 notes simply isn’t enough for large microtonal scales. If I have 200 notes per octave, then to get a full piano range of 8 octaves I already need 1600 notes. If we were to represent every pitch of this scale with a MIDI note number, then note numbers would have to be represented by at least 11 bits (2048 notes).
But having all those note numbers (and a tuning table with 2048 values) isn’t an efficient solution. Bandwidth is now cheap – so let’s forget about MIDI note numbers altogether! We can just send frequencies directly as single floats.
Consider that we have a MIDI 2.0 system where frequencies are sent instead of note numbers. On a standard MIDI 2.0 keyboard controller you press middle A and it sends a note on message with a frequency value of 440.0. A connected MIDI sound module receives the message and starts outputting a sound at 440 Hz.
Now consider how easy it is for the microtonalist – they only need to purchase a single MIDI keyboard controller that allows them to set up microtonal tunings, and then it automatically works with every MIDI 2.0 sound module! That’s a great leap ahead of the mess we have today, where all MIDI controllers output note numbers 0-127 and each sound module has its own quirky method of assigning frequencies to those notes.
Pitch bend in the current MIDI spec is monophonic, so it affects all notes on the channel at the same time. This is fine if you’re playing lead keyboard for an 80’s disco funk band, not so cool in the 2010s. If I’m playing a chord and I want to bend one pitch up while another pitch gets bent down, the only way to do it is to put each note on its own individual channel. It’s quite an insane way to work, and you can see why it’s difficult to use pitch bend to play microtonal polyphonic music.
If it were possible to assign pitch bend data for each individual note, then even synths which didn’t support microtonality could be forced to play microtonal scales easily – as long as they supported the pitch bend correctly.
The only way to play polyphonic microtonal music using the pitch-bend method today, is to put each voice on to its own MIDI channel, of which there are a maximum of 16. So already you’re now limited to 16 note polyphony, and this will only work with multitimbral synths (i.e. they can receive data on all 16 channels and output all notes at the same time).
We can always write to developers thoughtfully, and ask them to add features the microtonalists need, with reasons why those features are helpful.
For now we’re stuck with the original MIDI, which to be fair is still an awesome spec. It allows us to connect pieces of kit from various manufacturers, and it all just works. So if you’re looking for ways to make microtonal music with MIDI instruments, here they are:
If you’re using hardware, then try to get hardware that can load and store tunings. Some synths support the MIDI tuning standard (MTS) which uses SysEx data to send note frequencies. It’s not commonly supported in most synths, so do your research before you buy.
If you’re working in a DAW, there are many VST instruments that can support microtonal scales. Sure you’re limited to 128 notes and monophonic pitch bend, but these instruments can set any frequency you like to each of the 128 notes. That’s a good start, and should keep you busy until we get a very microtonal MIDI 2.0.
EDIT: I’ve just been made aware of a new tuning method for MIDI synths. Worth a read!
I have written about my own workflow for microtonal composition using Ableton Live, Scala, and VSTs.