5

The number of tones (or notes) per 8ve is just one of many potentially customisable aspects of any instrument. Standard midi, however, is pretty much clamped to western 12-tone equal temperament. Escaping it's confines implies external mapping devices or software, but these deal with effects rather than causes.

The General MIDI Level 2 spec would seem to have been around since 1999. As a latecomer to all this, has any alternative emerged in the meantime that allows native, dedicated mappings to NON-12 tone notes/8ve and OTHER than equal temperaments?

I'm specifically NOT looking for hardware or software workarounds but for a more worldly view in the form of improved standards.

I imagine something along the lines of a tones- (or notes-) per-8ve indexing system, whereby the enharmonic notes in each octave are a multiple of the lowest octave's note indexes, alternative temperaments being expressed by mappings to their parallel cent, frequency or similar values. Much the same as midi, but with flexible indexing...

Glad for any info.

5 Answers 5

7

The MIDI Tuning Standard allows for arbitrary remapping of all 128 note values. It was ratified in 1992, and can be implemented by both GM and GM2 devices. (Very few do, however.)

There are also Scale/Octave Tuning messages, which allow slight adjustments to the 12 tones in an octave. Only these are required by GM2.

3
  • Midi, with a 127 bit indexing limit, seems likely to fall apart for real-world, long-necked and/or higher-order microtonal (26, 31, 43, 50, 53 TET) world music instruments and scales, yet these are my area of interest. Jul 8, 2015 at 5:57
  • 1
    Note that MTS isn't supported by very many software synths.
    – endolith
    Jan 17, 2016 at 4:35
  • It’s also not widely supported in hardware synths Sep 7, 2021 at 14:26
4

There's scattered support for other 12-tone temperaments, but MIDI just isn't going to be able to work with tuning systems with more notes. It's an issue of the amount of information that a MIDI message can encode--the existing standard is for a 7-bit (128-value) note number, which is enough to encode over 10 octaves of 12-tone, but only 5 octaves of quarter tones, which isn't going to cut it. You could design a new format based on MIDI that makes this kind of extension, but it won't be backwards-compatible with MIDI 1.0, and once we've given that up, we might as well move on entirely.

2
  • Agree entirely. My impulse is to work with a simple n-tone-per-octave indexing system, mapping to midi where it makes sense (more or less those systems representable using the graphical elements of standard music notation) but otherwise waiting until the world catches up. Mappings are a palliative, standards the cure. :-) Jul 8, 2015 at 9:16
  • The MIDI Tuning Standard allows sending arbitrary frequencies for each note, so I don't think it matters how many MIDI notes there are.
    – endolith
    Jan 17, 2016 at 4:34
3

I know that you state that you are not looking for "workarounds", but I should point this out.

There is indeed not a properly-supported means of doing microtonality within the MIDI specification itself. However, there is an extremely well-established and widely-accepted and implemented system for microtonality with synthesizers and virtual instruments called Scala, and it's easy to use and its microtonal tuning tables are portable and reproducible across many pieces of music software and hardware. Scala supports a myriad of historical tunings and temperaments, as well as avant-garde experimental tunings and any arbitrary tunings you might devise yourself.

Don't wait for the MIDI standard to be upgraded or extended for microtonal scales; people who want and need them have been content to use the Scala system to achieve this instead.

You can read about it at the Scala website.

Here is the Wikipedia article on Scala.

There are many commercial and freeware software virtual instruments that support Scala directly. Examples include Native Instruments, the Garritan Personal Orchestra, and Pianoteq. These products come with libraries of Scala historical temperaments and ethnomusicological tuning tables already available as presets. You don't need to know how to program your own Scala tuning tables to get started, but the Scala system has free software for building your own tunings if you are so inclined, and you can import your own library of Scala tunings into these virtual instruments.

Beyond that, the Scala system includes software that can export Scala tunings (simpler ones of no more than 12 pitches per octave at least) into MIDI specification-format data that can be uploaded into many hardware synths that support the MIDI tuning spec. There is a long list of hardware synths going back to the Yamaha DX7 that support the MIDI tuning spec and will work with the Scala software.

So please don't discount "workarounds"; the Scala system can do what you want.

enter image description here

The Pianoteq virtual instrument digital piano comes with many Scala microtonal tuning tables, or you can import your own Scala files from disk.

enter image description here

7
  • Scala is anchored to a specific OS. Have you examples of successful Scala datafile usage in a cloud/browser context? If flexible and proven, there would be a strong argument for their integration (in the form of load and handling functions) into data visualization libraries such as d3.js, allowing them to be exploited with much the same ease as -say- the widely used json or csv formats. Jul 8, 2015 at 6:02
  • 1
    Scala's datafiles have indeed been integrated into a javascript library. More recently, the same developer seems to have been taking a crack at a public API. Looks promising. Jul 8, 2015 at 9:06
  • The Scala creation software is available for Windows, Linux and Mac OS X. huygens-fokker.org/scala/downloads.html. However most people who use Scala files just rely on the presets available with the particular virtual instrument. They never go near the creation software.
    – user1044
    Jul 8, 2015 at 15:33
  • 1
    Here's a tip. The freeware sforzando sample player by Plogue, a standalone virtual instrument and plugin in all common formats for Windows and Mac OS X, supports playback using Scala tables. plogue.com/products/sforzando
    – user1044
    Jul 8, 2015 at 15:44
  • @user2165086 those .scl files use a very simple text-based format. You can create them with any text editor or scripting language, don't need Scala or any specific library. For instance, here's 31-edo. Jul 8, 2015 at 21:54
1

(February 7th, 2019) I believe at NAMM recently, MIDI 2.0 was announced. It will be much more powerful, allowing (though current MIDI is just fine and the new one will be backwards compatible) more possibilities and features than are currently necessary. Perhaps microtonal music will be supported more fully in this new system. Adam Neely explains this new MIDI much better than I can.

0

Unfortunately, the Scala format seems to be taking over. Developers who know nothing about tuning just throw it in there, close their code and call it a day. The problem with this is that you still have to limit yourself to a finite set of pitches that you have to decide before you compose. None of the software I've found that supports Scala offers any way to automatically update the loaded scale. Clickety-clickety-click, you'll be clicking away. It didn't have to be this way. MTS not only offers per-note tuning for 128 notes, but any of them can be changed on the fly. Scala is great for playing. For complete tuning freedom, it isn't that useful. I've seen instruments in Csound and Pure Data that had a perfect system: same standard MIDI note numbers, but with decimals. If you want 60, like most musicians, you put in 60 and get out middle C. If you want 17 cents up from middle C, you tell it 60.17. Seems obvious, and this would be a cinch to implement in almost all existing MIDI software, but you have to actually know something about tuning to realize that it would be better. 64-bit audio samples are already standard in commercial DAWs. Why do they still force 7 bits of pitch precision?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.