From Xenharmonic Wiki
Jump to: navigation, search

This page discusses the relative merits of various Digital Audio Workstations (DAWs - Wikipedia article) 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.

Advantages and didadvantages of various DAWs:


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


(Longer list of more reasons 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: http://stash.reaper.fm/v/8772/reaper-vkbmap.txt

The appearance of the piano roll on the midi editor can be completely customized, e.g. more than 12 notes per octave.


A less cluttered example:


With short black keys, so that the note name can be displayed on the midi note:


How to do it: 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" or "3\19" or "green C" or "D^" or "E+". 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", but you coud use anything. Here's how to do special characters on a mac, don't know about a PC:


Once you get one block character in, you can cut and paste it. 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 2 screenshots have long black keys made of 6 block characters. The last one has short keys of just 1 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 can use actual accidentals like ♯ and ♭. 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

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.

FL Studio (Fruity Loops)

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 (see link). forums.presonus.com/posts/list/31118.page

Approaches to microtonal composition in a DAW

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

Many DAWs can load instrument plugins. A plugin is a software synthesizer which can be accessed within the DAW, affording the user more sounds. Usually the plugin is loaded on a MIDI track. Some instrument plugins are capable of being microtuned. By using such a plugin, it is possible to make microtonal music within a DAW that otherwise cannot be microtuned.

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. 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.

Native Instruments Kontakt - 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.