Global microtuning and microtonal notation in MuseScore
Most music software these days is locked in to 12-tone equal temperament. Even if some music software does support microtonality and/or pitch bend to some extent, none of them really support microtonality as intuitively as they could. Pitch bend is usually represented as a deviation from 12-tone equal temperament, and no DAW (with the possible exception of Reaper) allows for piano rolls that are based on a scale other than 12-tone equal temperament.
This brings me to my proposal on how to allow MuseScore to support microtones in the best way possible:
First, there needs to be a special kind of tuning file for MuseScore which maps different configurations of notes and accidentals to their corresponding pitches, and includes a reference pitch. For example, 5-tone equal temperament, with A4 = 440Hz, could be defined as
0 - C
240 - D
480 - E
480 - F
720 - G
960 - A4 (440Hz)
1200 - B
1200 - C
(Note: all accidentals should be able to be represented in this tuning file. For example, the quarter tone sharp accidental could be represented by "t", and the natural three syntonic commas down accidental could be represented by "vvv".)
Second, the actual MIDI notes would have to be derived from this file. For example, to get the MIDI note represented by F6, MuseScore would search for the pitch of the note corresponding to "F" (ignoring the octave), and would find that F4 is 480 cents above C4 while A4, at a constant 440Hz, is 960 cents above C4. (If there was a note with some accidental in the score, such as "Bv", and the same note with the same accidental appeared in the tuning file, MuseScore would be able to detect that and tune the note accordingly.) From this, MuseScore would find that F4 is 480 cents below A4. Finally, MuseScore would find that F6 is two octaves above F4, or 2*1200c above F4. (The custom tuning file should be allowed to define an interval of equivalence other than the octave, so if the second C was given the value 1204 instead, F6 would be 2408 cents above F4 instead of 2400 cents above F4. This would allow for the representation of scales which do not repeat at the octave, such as the Bohlen-Pierce scale). Finally, MuseScore would calculate that F6 is 4.8 semitones below A6, which corresponds to the MIDI note 88 with a pitch bend of +20 cents. The playback of notes with different pitch bend amounts shouldn't be a problem for MuseScore since MuseScore already supports accurate playback of per-note pitch bend, although it would be nice if MuseScore could also support MPE to make this per-note pitch bend more compatible with certain VST plugins.
Note: This MIDI note is only played, not shown on the score. The note shown on the score isn't the MIDI note, but is rather a "wrapper" for the MIDI note to make it appear more intuitive in the context of a microtonal composition. Euwbah's EDO Retuning Plugin ( https://musescore.org/en/project/5-117-edo-retuning-transposing-plugins… ) already does this to an extent, but it only works with specific EDOS (and not equal divisions of a non-octave or unequal scales) and has to be activated every time new notes are added to the score. The dream for me is that the retuning happens automatically and "under-the-hood", which would greatly streamline the process of creating microtonal music.
One big hope I have is that the keyboard shortcuts would align with the tuning defined in the tuning file. The up/down keys would step up/down through the notes listed in the tuning file (skipping over any notes that are the same pitch as the current one), ctrl up/ctrl down would transpose up/down by one interval of equivalence (which, as I said before, should not necessarily be an octave), and J would cycle through all the notes that are mapped to the same pitch in the tuning file. (It might be necessary to implement some kind of priority system, so that a note like Bbb wouldn't get chosen over A when stepping up/down through the notes)
Another hope I have is that this global microtuning will carry over to the piano roll, where the piano isn't just a 12 note per octave piano roll, but rather a piano roll that can support any number of notes per octave. (For tunings with more than 12 notes, this would mean that the piano roll would have to have more than 127 total notes) It would be cool if the notation defined in the tuning file could be represented on the piano roll directly, or perhaps by some alternative like color. Given that MuseScore syncs the notation with the piano roll, it's important that this synchronization continues even with the complexity of having global microtuning in place.
Lastly, there would have to be a way to map MIDI notes coming from MIDI controllers to notes defined in the tuning file, but I don't know exactly how that might work.
To conclude, I am aware that this is a big and complicated feature request that probably won't be implemented in MuseScore for a while (if ever), but I think this specific way of supporting global microtuning is the most intuitive, since it will seamlessly integrate with the notation and the piano roll. I will try my best to answer any questions about this feature request that arise, and I hope that some aspects of this feature request will be considered for a future version of MuseScore. I wish the MuseScore development team good luck in their development of MuseScore 4!
Comments
I guess I'm not understanding any expectation that notation software could represent microtonality. Wouldn't it be better to develop software for that purpose?
In reply to I guess I'm not… by bobjp
I see your point. However, the reason MuseScore has the potential to represent microtonality well is because it not only has per-note pitch bend but also has quite a handful of microtonal accidentals. Thus, it would make sense to utilize both of these existing elements in a system which tunes different notes with different accidentals according to some global user-defined scale. Yes, microtonality isn't for everyone and not everyone will want to make music in any scale besides 12-tone equal temperament, but it would be nice if some form of global microtuning was at least provided in the form of an add-on, so that the users who want to have global microtuning are able to have it. (I'm aware that there are already plugins that are able to perform global microtuning in MuseScore, but these plugins are still not as capable or as efficient as a built-in global microtuning system would be)
@userminusone: You might be interested to try my software, Tonescape. Unfortunately it is currently a dead project, development stopped in 2007, and it runs only on Windows. However, it was created specifically as a tool for analyzing and composing microtonal music. There is no default tuning - you must load a tuning file before creating a new musical piece. It shows the tuning on a lattice-diagram allowing the user to choose from a variety of different geometries. The "Pitch-Height" window is exactly the type of piano-roll you describe, with however many notes-per-octave are in the tuning, and if they are unequally-spaced it shows that too. I have a YouTube channel which features many videos I've made with Tonescape, just search Joseph Monzo Tonescape and you'll find them. It can be downloaded from my website. PLEASE READ EVERYTHING ON THE TONALSOFT HOMEPAGE BEFORE TRYING TO INSTALL, and read the relevant Support pages before installing. Many people who have tried to use Tonescape tell me that it will not install, or if it does install, it does not run - I have been using it in Windows XP, Vista, and 10 with no serious problems, and unfortunately cannot offer any further help.
http://tonalsoft.com
In reply to @userminusone: You might be… by monz
I have also been trying to get a suggestion to the MuseScore developers to incorporate my HEWM notation system of microtonal accidentals. It works exactly like HEJI, which has been incorporated, but the symbols are very simple: just plain ASCII text characters. It was originally developed for 11-limit JI but has now been extended to 53-limit JI, and a simpler version based on the 11-limit works perfectly for 72edo.
http://tonalsoft.com/enc/h/hewm.aspx