From Xenharmonic Wiki
Jump to navigation Jump to search
English Wikipedia has an article on:

This page discusses the relative merits of various digital audio workstations (DAWs) from a microtonal perspective. Since many keyboards and a few softsynths are retunable via sysex, and most keyboards and softsynths are only retunable via multiple-MIDI-channels-with-pitch-bends, special focus is given to how each DAW handles channels and sysexes.


e.g. 19 notes per octave!
a less cluttered example
shorter-looking black keys allow the note name to be displayed conveniently on the MIDI note

(Longer list of more reasons why Reaper is great)

  • Extremely flexible MIDI and audio routing. No built-in softsynths except ReaSynth. No problems with sysexes or multiple MIDI channels.
  • Has several built-in programming languages for extra power. Very easy to write your own MIDI effects.
  • The QWERTY keyboard can be used as a MIDI keyboard, like most DAWs. But in Reaper, you can assign any MIDI note to any key. So you aren't stuck with 7 white & 5 black keys. Here's how.
  • The appearance of the piano roll on the MIDI editor can be completely customized (e.g., other than 12 notes per octave).

Piano Roll Customization

Click on a MIDI item to pull up the built-in MIDI-editor. The Reaper menu on top should change. For example the 3rd option should change from View to Navigate. In the new menu, go to View and choose Mode: Named Notes. Then double-right-click a note on the far left of the edit window (where the black and white keys were) to rename it. Type in anything. Hit tab to go on to the next key. Then go to File and choose Customize Note Names / Save Note Names To File. That makes a little text file that you can even edit directly. In your next project you can load this file, using Customize Note Names / Load Note Names From File. There's also Customize Note Names / Merge Note Names From File, and Customize Note Names / Clear All Note Names.

You can put in any text. You can put in "5/4", "3:19", "H♯", "I♭", "D^" or "E+" among others. You might even be able to control the font with Reaper themes. To make a black key, you put in a special character. This example uses "█" (Unicode 2588 / "full block") ahead of the actual note name but you could use anything. Just copy-paste that. For other special characters, you may use Character Map on Windows, or refer to this tutorial for Mac.

This example uses underscores to make the note names on the white keys line up with the black key names. An octave was done this way in Reaper. Then the file was saved and TextEdit was used to cut and paste more octaves. The note numbers were edited to run 0-127. If your keyboard has MIDI notes 21-108 (standard 88 keys), you can delete lines 0-20 and 109-127. Then after you load it, choose View / Show/Hide Note Rows / Hide Unnamed Rows. Less to scroll through.

The first two screenshots have long black keys made of six block characters. The last one has short keys of just one block, so you can choose View / Piano Roll Notes / Show Note Names On Notes and directly see which notes are the black key notes.

You could use gray block characters to get three colors or more. Many possibilities! The text files containing the note names used for the screenshots are here: www.TallKite.com/misc_files/19-tonePianoRolls.zip

See also https://www.youtube.com/watch?v=hLO8KqDXhKk

Background colors

Piano roll background can also be customized via dummy tracks: video by User:Userminusone.

Useful Scripts

No doubt some of you are using the workflow of multiple instrument clones on multiple channels that is required for microtonality with certain instruments/methods.

I want to make you aware of two absolutely incredible scripts for workflow, available from the Actions menu.

-Copy and Paste fx functions (various versions including replace) for cloning your VSTi across tracks after a tweak - no more drag cloning one track at a time.

-More significantly, a control synchronizer which automatically maps all plugin controls from your chosen master track to all others. Now you can play the controls on one synth and have all your slaves follow! Installable from ReaPack: X-Raym_Set selected tracks FX parameters values from last focused FX (real-time).lua , NOTE the tracks must share a folder to sync

Logic Pro

- Logic's built-in instruments are of very high quality. There's a global setting for tuning them, and you can also import a .scl file. But they accept only 12-note-octave-repeating scales with max. +/-100 cent deviations from 12tet pitches. Logic only understands .scl files with this limitation. Logic is also incapable of changing the tuning via MIDI or automation, and you can only have one tuning per song.


- won't let you export its MIDI to any other DAW except Logic Pro. In other words it is a "MIDI trap". GarageBand won't load VST effects, only AU effects.

Ableton Live

AL merges all MIDI channels in track sends, effect outputs and max4Live outputs into channel 1, and filters out all sysex messages and all polyphonic aftertouch messages. MIDI effects, except for built-in MIDI effects and max4live MIDI effects, must be put in the audio effects section of the track. Receiving MIDI output from an effect requires creating an additional track and setting its input to that effect.

As per Live 11, MPE is supported, but channels get re-assigned arbitrarily.[1]

FL Studio (until 2003 known as FruityLoops)

FL filters out sysex messages (undocumented, see below).

- all softsynths require only a single instance to be retunable via the pitch bend method!


(official FL Studio forum, must register to view the full thread)

Excerpted from a July 2013 conversation with "Reflex", a site admin:

user: "The Voyager PlugSE (VST plugin) from Moog... doesn't work [in FL studio]."

Reflex: "VST plugins can send sysex out of FL, but can't receive it."

user: "Yes I guess it also receives Sysex, and so a bidirectional communication can't be established."

Reflex: "Then I don't know of any way to make it work in FL."

user: "Is it planned to add support for VST plugin to send Sysex?"

Reflex: "They already can. But they can't receive them. And that's not planned."


- has a MIDI insert plug-in for tuning. But it only accepts 12-note-octave-repeating scales with max. +/-100 cent deviations from 12tet pitches. However you can change the tuning in the course of a song, and have multiple tunings simultaneously (on several MIDI channels). However, the plug-in only works with two or three older VSTi's and not with the new, better instruments that come with Cubase 7, so in effect, it has been discontinued.

Cubase has a pitch key tracking setting for all the synths, and if that's set to .50 you get 24 keys per octave, etc., so various EDOs are possible or can be approximated.

Studio One

- doesn't allow recording or playback of sysexes. Apparently Studio One also doesn't allow multi-channel MIDI files. [2]


MIDI tracks in ProTools can't contain multiple channels of MIDI data.

Bitwig Studio

Bitwig Studio has native support for per-note microtuning within the piano roll. Each midi note event in the piano roll can be adjusted by +/- 1200 cents. All of Bitwig's built-in synthesizers & samplers support this form of retuning, however it does not affect VST instruments.

Bitwig also has a microtuning midi effect plugin which can adjust incoming midi notes to any desired scale. Again, this uses Bitwig's proprietary retuning messages, so it's only compatible with the built-in synths & samplers.

To use full-keyboard microtuning of VSTs via Scala files or MTS-ESP, there is a way to customize piano roll background using dummy tracks: video by User:Sevish.

Approaches to Microtonal Composition in a DAW

Software: Instrument plugins (VST/AU/etc.)

DAWs allow you to load samplers and other instrument plugins, some of which are capable of being microtuned. By using such a plugin, it is possible to make microtonal music within a DAW that otherwise could not have been be made.

Instrument plugins interface with your DAW through one of a handful of standards. Steinberg's VST is a standard supported by many DAWs, AudioUnit (AU) is widely supported on Mac computers and RTAS is used by ProTools. Put simply, you should check your DAW's user manual to see what kind of plugins you can run.

View a list of microtonal software plugins.

Plugin Microtuning Methods

Instrument plugins can be developed by anybody. As such, there is no standard way to set the tuning/scale of a plugin via user input. Navigating these competing methods of inputting microtonal scales can be rather messy. But generally we can group the methods like so:

Plugins which are microtuned by reading a 'tuning file' from hard disk

A very common method. These plugins ask the user to import a file from their hard disk, which we'll call a tuning file. Within the tuning file is the data for tuning the plugin. Such tuning files come in a variety of formats:

  • scl/kbm (in this case, the data is stored in 2 files not 1)
  • TUN
  • MIDI tuning dump (sysex)

You can know which type of tuning file is supported by your plugin by reading its manual or supporting documentation.

Tuning files can be created by using software. The two options are Scala or LMSO. If your plugin supports the scl/kbm format, then you can download a large database (scroll to the bottom of the page) of these files to start with.

Plugins which are microtuned via MTS (MIDI Tuning Standard)

Some plugins can accept MIDI data in the form of SysEx messages. These messages contain the tuning data. The issue with this method, is that many DAWs filter out SysEx messages. However some plugins, such as those created by Xen-Arts, allow the user to load a MIDI file (containing the SysEx messages within) directly into the plugin, thus bypassing the restriction from the DAW. (Such MIDI files can be generated by Scala).

One benefit of using MTS is that tunings can be changed during the course of a piece. This gives much flexibility in tuning for the composer. MIDI Tuning is also highly accurate. Furthermore, the user can send one set of MTS messages to several plugins/hardware synthesizers at once, thereby making the tuning process relatively convenient. However since many DAWs filter out these messages, the real benefit of MTS can not be realized by everybody.

Plugins which are microtuned by user's direct inputting of values

ZynAddSubFX will accept user inputted values. No need to generate a tuning file (though it ZynAddSubFX can also read scl files).

Plugins which are microtuned via other methods

Notes per Octave feature on NI Kontakt

NI Kontakt sports a rich support for microtuning. To access those features, within an instrument go to Script Editor. Under Preset head to Factory / Tuning. For example, the Notes per Octave option automatically (and very brilliantly!) turns the instrument from 12edo to any other equally tempered scale, from right within the sampler! no need to load any Scala files! With live adjusting of the nearest recorded sample for the desired microtuned note, this feature cannot be underrated. Other features exist, just have fun and experiment.

If desired, you may alternatively write a script to retune each note (or use Scala to generate one).

Plugins which have no support for microtuning

One workaround is to use pitch-bend to microtune a monophonic MIDI part. Polyphonic MIDI parts require multiple instances of the plugin.


LMMS supports microtuning for any track using the Microtuner, but this is only in the most recent versions. For older versions, microtuning is partially supported, it can be done either by using the built-in microtuning in the ZynAddSubFX plugin or by having multiple detuned tracks.