Author Topic: Temperament/Tuning for MIDI Playback  (Read 2471 times)


  • Guest
Temperament/Tuning for MIDI Playback
« on: 2 Jan '22 - 21:34 »

First of all let me acknowledge that XMPlay is a great product, and its MIDI playback capabilities specifically are very good. Now for the question. On my synth keyboard I can adjust temperament by choosing one of the presets (with the base note, e.g. "Kirnberger C") or directly specifying detuning (in cents) for each of the 12 notes in the octave. This tuning is then applied to the playback of all notes.
E.g. C (0) C# (-2) D (+5) E (+6), and so on.
What are chances of such feature being added to the MIDI plugin? Some types of music require certain tuning, and on top of that being able to switch temperament before or during playback without modifying the MIDI file itself sounds like a cool feature.


Ian @ un4seen

  • Administrator
  • Posts: 25882
Re: Temperament/Tuning for MIDI Playback
« Reply #1 on: 3 Jan '22 - 13:49 »
The MIDI plugin does support scale/octave tuning sysex messages in MIDI files, but there isn't currently any way to manually override that stuff. It may be possible to add something to the MIDI mixer window, but I wouldn't want it to get too fiddly. What option(s) did you have in mind, and were you thinking of applying them to all channels or per-channel?


  • Guest
Re: Temperament/Tuning for MIDI Playback
« Reply #2 on: 6 Jun '22 - 20:40 »
Many thanks for answering! And sorry for my being absent in this thread for too long.

I was talking about the same setting for all-channels, like in Korg PA global setup. The idea is that the user can pick a tuning preset from a dropdown list and then select the base note to which the tuning is applied (e.g. "Kirnberger | C"), or create a custom tuning by entering +/- numbers for the twelve notes.

As for the UI, maybe a "Tuning" button can be added somewhere to the left of the "Mixer" button. It could open a popup dialog with the following elements: 1) a dropdown with preset names (Equal, Pythagorean, Werckmeister, Kirnberger, etc.) 2) a dropdown for picking the base key (C, C#, D, D#, ...), 3) twelve per-note deviations in cents in numerical edit boxes.

Here is a link to the reference table of temperaments with per-note deviations in cents:

These can be used to initially fill the dropdown:

Equal Tempered, Perfect Octave
Equal Tempered, Perfect Fifth
Just Tempered (Schugk)
Just Tempered (Barbour)
Bach (Kellner, Well-Tempered)
Kirnberger II
Kirnberger III
Neidhardt I
Neidhardt II
Werckmeister II
Werckmeister III

Other presets can be added by the user if he wishes so.

Thanks again for reading my post!