Skip to main content

Just Intonation (and other tunings)


This question came up in user support the other day. I thought it might be a good idea to ask if someone actually did this already so we might publish a (written) tutorial?

Basically one can use any tuning with 12 semitones that repeats every octave. Synfire has no SYSEX capability, so you would need to dump these tunings to your hardware (or software instruments) with some MIDI utility before you start. It would be interesting to learn which utility you use for that.

Key changes will sound detuned of course, as D# maps to a different frequency than Eb, for example. If you stay close to the key for which the tuning is optimized, things should be fine. Synfire will hint at harmonic functions in other keys in the circle and on a palette. You would ignore or disable them.

Have you done this already?
What MIDI utility would you use?
Interested in writing a short tutorial?

Tue, 2023-09-05 - 19:30 Permalink

As you know of course, Synfire itself does not support any microtuning, and it is limited to 12 different tones per octave. However, there are ways.

Some time ago I did some initial tests with  MTS-ESP by ODDSound. That is a protocol where there is one global MTS-ESP master plugin that remote-controls the tunings of all the instruments in other tracks. Supported are instruments with native MTS-ESP (examples listed here incl. many well-known brands); instruments with MPE support (with some intermediate aux plugin) and some other microtonal protocols.

Now, the cool part is that the MTS-ESP master plugin can dynamically change the tuning of all the other instruments on the fly during the course of a piece. That way, it is possible to have more than 12 tones per octave. The changes of the tuning can be remove controlled via MIDI, see the relevant docs for details). For example, some just intonation tuning that might be in tune for a certain key can be changed with MIDI messages from Synfire (e.g., a note with the current tonic in the master plugin track) to the current key.

Unfortunately, I will not have the time to write a tutorial on this. Hopefully, however, for those interested the pointers above together with the available MTS-ESP docs might provide a starting point. For example, here is some demo just showing the system in action in Ableton Live. Also, check out the videos by ODDSound, in particular perhaps the one on the transpose macro. 

One more Synfire-specific tip: AFAIK, Synfire does not support MIDI plugins preprocessing the MIDI data that some instrument receives. This is fine for all instruments directly supporting MTS-ESP (see link above), but for MPE instruments some MIDI preprocessing is needed with a MIDI plugin. I am doing that in Synfire with a plugin hosting plugins, e.g., Blue Cat's PatchWork.

Hope this helps.

Tue, 2023-09-05 - 22:11 Permalink

If you use NI Kontakt instruments, you can simply use the built-in tuning functions. You can define different tuning presets there, which you can then certainly switch via automation or midi controller, thus also via Midi CC from Synfire.

Wed, 2023-09-06 - 19:36 Permalink

you can simply use the built-in tuning functions

Sure, various instruments support static tunings to select or even user-definable tunings. However, if you write a piece for multiple instruments, you need to make sure you select the right tuning for every instrument. And you are limited to 12 tones per octave.

Switching between available tuning presets could be some poor man's approach to dynamic tuning, but usually you would not have multiple tunings that are designed to complement each other for switching.


Wed, 2023-09-06 - 20:01 Permalink

usually you would not have multiple tunings that are designed to complement each other for switching

Don't quite understand that comment, because if you create user defined tuning presets it is your job to design them in a way that they complement each other, isn't it? 

Of course my suggestion above would work only for Kontakt based instruments, but a solution that works for all plugin types isn't possible anyway, I guess.

poor man's approach

Musicians are usually quite poor. So if they don't have anything to eat, they can at least still switch tunings. :)

Wed, 2023-09-06 - 22:34 Permalink

Apologies, following is a slightly longer message, hope that is OK.

Perhaps I missed something, but in my understanding Andre initially implicitly asked for ways to let Synfire support alternative tunings with more than 12 different tones per octave. 

Andre specifically mentioned the difficulty how to realise microtonal key changes (modulations). As long as you stay in a single key, then having some static microtonal scale with up to 12 tones might be sufficient (and static tunings as supported by, say, Kontakt are then enough).

If, however, you want to use Synfire's true harmonic prowess and want to allow for arbitrary modulations of your microtonal scale, then you most likely need more than 12 tones per octave. As you likely know, this is the reason why back in Renaissance and early Baroque times we had keyboards with more than 12 keys per octave (in tunings before 12-tone equal temperament, enharmonic variants like Eb and D# where actually different pitches). Likewise, we typically also need more than 12 tones per octave if we do not simply want to resurrect the traditional meantone temperament and more justly tuned diatonic harmony of the Renaissance, but want to allow for more complex chords that use intervals not found in 12-tone equal temperament, but still want to allow for modulations with Synfire.

I proposed some approach that could address this difficulty: allow for arbitrary microtonal scales of up to 12 tones per octave (Synfire knows only about 12 different tones at a time), but additionally allow to freely modulate that scale. 

if you create user defined tuning presets it is your job to design them in a way that they complement each other

By "complementing each other" I meant tunings that are variations of each other that might be used in the same piece. For example, to allow for arbitrary microtonal scales with up to 12 tones that could be modulated to all the tones of the scale, we would need up to 12 different variations of the tuning that detune the scale pitches so that the set of scale tones for each modulation is available. 

The universe of alternate tunings is vast. For example, the Scala scale archive provides several thousand tunings, but all these tunings do not really complement each other in this sense above -- each of them is its own tuning world so to speak.

Now, if you have some instrument that allows for user-defined tunings (e.g., custom 12 tones in Kontakt) and where you can switch between the tunings via MIDI messages, then the usual tuning presets are also not complementing each other in the above sense (e.g., they are not modulations of each other), but are independent tuning worlds. 

Of course, you could now manually define a set of user tunings that complement each other as modulations. However, that is a lot of work, and the approach I suggested above predefines not only those variations of tunings, but very many more. For example, with the MTS-ESP Suite you can freely switch between unrelated tunigs -- different tuning worlds -- and then modulate (change keys for) each of these as needed; or you freely morph between two tuning worlds and additionally modulate the morphed tuning; or you randomise your tuning; or you have some tuning model -- like Wilson's Moment of Symmetry -- and on the fly during the course of your piece you change certain parameters of your tuning plus modulating that tuning; or ... see docs for more details. Anyway, if you want that kind of of tuning flexibility, you cannot really realise that by switching between manually defined static tunings.

poor man's approach

Apologies, I just used that as a figure of speech as in "a poor man's algorithm" (e.g., some brute force search that finds a solution eventually, but takes a lot of time). I did not mean to imply the financial situation of any user. ;-) 

But then again, the full MTS-ESP Suite does indeed cost some money (~ 110 EUR). Of course, Synfire itself and many instruments cost much more, but... Anyway, there is also a free version, MTS-ESP Mini, which can also detune all instruments on all tracks, i.e. allows for a central tuning control, but unlike the full suite the Mini version does not support dynamic tunings. For example, no easy modulations, as discussed above.