MIDI & Microtonality

Last check of all links: 2018-07-11

Here's how to implement microtonality in a Standard MIDI File using pitch-bends instead of the official MIDI Tuning Standard specification, which is not supported by a lot of hard- and software.

Microtonality is a large field of musical options, possibilities and concepts. The following instructions only work for mono-timbral music based on a 12-tone scale with adjacent pitch classes (i.e. rising chromatically), e. g.

C | C#/Db | D | D#/Eb | E | F | F#/Gb | G | G#/Ab | A | A#/Bb | B

F | F#/Gb | G | G#/Ab | A | A#/Bb | B | C | C#/Db | D | D#/Eb | E

I know two pieces of free software to implement microtonality in a Standard MIDI File using pitch bends. The first one, Scala, runs fine under modern windows, but its solution is not fully compatible with e. g. Vienna Instruments. The second one, Harmonic/PianoTuner, produces 100%-compatible microtonal Standard MIDI Files, but you have to install a DOS emulator before you can run this ancient pieces of software on a modern PC. I won't show you how to do this here, but, believe me, there's plenty of good tutorials out there in the web.

Eibelstadt, July 2018

Stefan Hetzel

Table of Contens


Here's how to implement microtonality in a Standard MIDI File via pitch-bending using Manuel Op de Coul's software Scala (free software for Windows, tested unter Windows 7 Home Premium Service Pack 1):


  1. After you have downloaded and installed Scala and the associated scales archive scales.zip, launch Scala.
  2. Click Open and choose your scale file (*.scl)
  3. Click Tools / Retune MIDI file...
  4. Select the Standard MIDI File you want to retune from your hard disk.
  5. Specify a name and a location for your output Standard MIDI File.
  6. Click OK.
  7. Done.

If your scale doesn't start on middle C (as is the case for e. g. La Monte Young's tuning for "The Well-Tuned Piano", which starts on Eb), execute steps 1 to 5 above, then click Edit Mapping, set Key for 1/1 to (in this case) 63 and click OK and continue with step 6.

In Tom's MIDI Player, the result looks like this:


In the screenshot above, Scala only uses seven MIDI channels (1 - 6 + 8) to retune the Standard MIDI File, but Young's scale has twelve different pitch classes, so obviously some MIDI channels are used for several pitch classes. Anyway, when rendering the output file with e. g. Vienna Instruments, audible pitch-bendings occur.

To avoid this, you have to use Harmonic/PianoTuner which allocates a MIDI channel to each pitch class.


Harmonic / PianoTuner

Here's how to permanently implement microtonality in a Standard MIDI File via pitch-bending using Fred Nachbaur's software package Harmonic/PianoTuner (free software for MS-DOS, no longer in active development):

Take your desired scl file out of Scala's archive and load it in Harmonic. It will look like this:


In the screenshot's utmost right column, you can see how in this scale all Es are raised by approx. 77 Cents, all Fs are raised by approx. 4 cents, all F#/Gbs are lowered by 60 Cents etc.

(Notice that this scale doesn't ascend uniformly. The G#s will sound a little bit lower than the Gs and the C#s a little bit lower than the Cs. In this case, you will have to manually assign pitch classes to MIDI channels using the "+" and "-" keys on your computer keyboard, so that G#s are placed beneath Gs and C#s beneath Cs.)

Now, you can convert the scale to Harmonic's proprietary file format dat and hand that file over to PianoTuner.

PianoTuner will assign all notes of your previously specified input Standard MIDI File (which has to be Type 0) to different MIDI channels according to their respective pitch class. Each pitch class is then retuned by inserting a single pitch bend message before the respective channel's first note is played. So, while the music is playing, there is no pitch-bending intermitting.

In Tom's MIDI Player, the output looks like this:




... by Brad Smith (free software for Windows, no longer in active development, tested under Windows 7 Home Premium Service Pack 1) "allows you to alter the tuning of your MIDI device. [...] It works by sending out each note to its own MIDI channel, where a pitch bend may alter the pitch as per the tuning you specify." This is a simple to use software to experimentally implement microtonality in realtime to existing Standard MIDI Files. The Standard MIDI File itself remains unchanged by intun. Great for rehearsals and live performances.