Theoretical key support

• Nov 18, 2017 - 19:06

Hello everyone,

It would be a nice addition if theoretical keys (with 8 or more (i.e. involving double) sharps/flats, e.g. G-sharp major or F-flat major) were supported in MuseScore. It can help both with adjusting the parts for transposed instruments (showing in an enharmonical keys), or just for score writing (e.g. one of my composition begins in A-flat major and ends in G-sharp major, with meaning "things are returned to their places but the situation has significantly changed", so I cannot just use A-flat since it would ruin the whole main idea. Currently, I've sticked to using C-sharp major and explicitly writing all double sharps).

Although I'm a C++ developer, I'm not sure that I can contribute to this (and that community will accept it).

Thank you in advance and sorry for my bad English.


Welcome aboard... you wrote: composition begins in A-flat major and ends in G-sharp major, with meaning "things are returned to their places but the situation has significantly changed", so I cannot just use A-flat since it would ruin the whole main idea.

For listening/playback purposes how does the whole main idea get ruined by only using A-flat? Doesn't the A-flat major scale sound the same as the G-sharp major scale?... Especially nowadays, with equal temperament tuning. ;-)

However... and here's the distinction:
The A-flat major key signature does look different from the G-sharp major key signature; and, as Jojo mentioned, custom key signatures can be created and then saved to a custom palette for future use:


This way, you can look at the G-sharp major key signature to see that ..."the situation has significantly changed". (Such as for harmonic analysis of the written score in order to comprehend the whole main idea.)

The link above (and Jojo) mentions:
Playback of custom key signatures is not directly supported. (Though strictly for playback purposes, A-flat major should suffice, yes?)
If you insist upon playback, together with G-sharp major notation, you can 'fake it' with a hidden staff. Listen to the following attachment: A_flat_G_sharp.mscz

(After listening, open the MuseScore menu item: Edit / Instruments, then tick the 'Visible' box to see the invisible staff.)


In reply to by Jm6stringer

Yes, you're right, it works, but looks (and sounds) pretty like a "dirty hack" (or as a not-so-good workaround at least). And also, it doesn't solve the problem with transposing instruments. For example, how to write in concert E major for a transposing instrument in A-flat? Either using 4 flats (which results in F-flat major) or 8 sharps (which results in written G-sharp major) will require theoretical keys, so is impossible in MuseScore.

In reply to by trolley.813

Not sure what you mean here about transposing instruments. If you have a transposing instrument in Ab, you are welcome to write in concert E for it, and MuseScore will transpose for you when you turn off the concert pitch button. While that should theoretically produce a key with 8 sharps, the universal standard in such matters is to simplify and instead represent this as 4 flats, and that is precisely what MuseScore does.

In reply to by trolley.813

True... the MuseScore playback does not truly recognize the (G-sharp major) custom time signature; and the playback does need to be 'faked' when notating as such - which is what I demonstrated (kludged).
Also, it's true what you write: that theoretical key signatures do not work in cases like this:

Still (and probably a rarity for most MuseScorers) a theoretical time signature can be notated in a score, saved to a custom palette, and printed out, if absolutely necessary.

(I'm curious as to how often you encounter these cases. )


In reply to by Jm6stringer

I'm currently hitting this case and I am not a power user. My case is a cover band I am in. We are doing the song "Hard to Handle", the Black Crows version in B. I am playing the Baritone Sax so the key works out to G# Major for me. Musescore defaults to displaying in Ab Major. While this works, I believe every single note in my part has some sort of accidental on it, be it a # or a double #. If I could get Musescore to display my part in G# Major, it would clean it up a lot. Since there is also a tenor and Trumpet, they transpose to C# major, it is certainly strange to see some parts with sharps and other with flats. I did try using the Custom Key. My problem there is that I am technically writing this score in the key of B, not Ab/G# Major, it is musescore that is transposing to my Eb pitched Baritone part.
Hopefully this makes sense. Is there a way that I can keep the Trumpet/Tenor parts in their transposed C# Major key and display my Bari part in G# major? When I tried to force the Bari into G# Major, technically it worked, but the Tenor and Trumpet parts also were forced into G# Major which is incorrect.
In the end, I can leave the Bari part in Ab Major, I just think it looks really awkward.

In reply to by stauf

Sounds like you probably need to adjust the transposition fo the staff, to diminished seventh instead of major sixth, for example. Or just use the "J" command or other means to respell the pitches. if you attach your score, we can understand and assist better. I really doubt you'd rather read in G# major, but that's certainly possible too with similar manual adjustments, and again, if you attach your score, we can help.

In reply to by Marc Sabatella

I'm not sure how it works legally attaching stuff like this but this section of the tune is plenty to see what I am talking about. Notice the Bari part where every single note is articulated. If written in G# Major, it is all clean and only one more sharp than the Tenor part (like I am used to seeing). Sure, there is a double sharp in the key signature, which is weird, but then the Bari and the Tenor wouldn't look like they were playing such disjointed parts. Maybe there is a better way to do this than I am understanding, but I tried using the J command and all the variants are as bad, if not worse from a continuity perspective.
Again, this isn't "wrong", I just feel like it would be a lot cleaner written in G# Major.

Attachment Size
Hard.mscz 7.23 KB

In reply to by stauf

As I suggested, setting the transposition to diminished seventh in Staff/Part Properties gives you the result you want very simply.

"J" works also but sometimes you'd need to do it a note at a time, not on the whole selection. That's because it cycles through all the possible spellings, and some notes have two but others have three, so the cycling gets "out of sync". However, in this particular case it actually works flawlessly. Not sure what you might have done wrong, but select the full contents of the bottom staff and pressing "J" exactly once - it does exactly the right thing.

The other method of respelling entire passages that usually works well is to select all then press Up followed by Down to respell with flats, or conversely to respell with sharps.

Having a double sharp in the key signature is more than weird. It is essentially unheard of in this context. That is, you probably will not find a single published pop/jazz arrangements that does this, and probably 99.99% of baritone saxophones have never seen such a thing and would freak out at it. I cannot recommend strongly enough you not attempt this. But, that said, it is possible using a custom key signature.

In reply to by Marc Sabatella

Thank you very much for the reply and what you are suggesting does work for me. Part of the reason I am going through the effort to do all this is personal exploration of music theory and learning. I've been away from music for a long time and recently picked up an instrument again and joined a band and formed a horn section. While I get having a double sharp in the key signature would be "more than weird", it was only a year or so ago that I even learned a double sharp was a thing. The work I have been doing in musescore taught me that. There is a piece of me that wants to push this through to a logical extreme. Maybe I will never use it, but this exploration in musescore has helped me learn a lot of music theory that I never knew before and it has been quite helpful.
Is there a place with info on how I would go about doing this with a custom key signature? I manually created a custom key signature and applied it to my score. Problem is, there seemed to be no way to apply it to just the Bari part. I didn't see how to make a transposed part (like my Bari part here) transpose to the custom key signature I created.

Theoretical key signatures are very rare. Musicians can't read them, and arrangers would rather use enharmonic key signatures, so I suspect this won't be a priority of the developers...

Also, the G♯ major key signature would go like this: C♯, G♯, D♯, A♯, E♯, B♯, F𝄪 (optionally with a courtesy F♯ beforehand if coming from a key without any sharps, like the courtesy naturals of other key signature changes).

I'd like custom key signatures to work as written for other reasons (combined with expanded microtonal accidental functionality), but I imagine it would be more effort than it's worth right now...

In reply to by mike320

I just did a quick test. I put a saxophone quartet in 5 sharps in concert pitch, then disabled and re-enabled concert pitch with the button. Now different instruments are in different keys.

Yes, I can see that functional theoretical keys are indeed useful now.

In reply to by to7m

Perhaps, but a more important solution is simply to remember the keys properly to restore them later. A;lso important to respell notes appropriately in these cases as well. There is a related open issue for this: see #18147: When silently changing the key to enharmonic equivalent during transposition, change notes too . This should be addressed regardless of whether or not someone ever chooses to force to a saxophonist to read 8 or 9 sharps.

In reply to by to7m

to7m wrote > G♯ major key signature would go like this: C♯, G♯, D♯, A♯, E♯, B♯, F𝄪

In G# would every note be sharp ... and F double sharp?

UPDATE: Oops. Never mind. Now I see the F double sharp. (In my browser is is small and at the baseline of the font. I thought is was a trailing comma.)

I have a slightly different problem, I am transposing a piece of of music for saxophones and I am in the key of Concert B. That puts the Bb instruments into the key of C# and the Eb instruments into the key of G#. Luckily, Musescore automatically changed the G# into Ab, but I would rather the Bb instruments to read in Db and not C#: is there anyway to change that?

Do you still have an unanswered question? Please log in first to post your question.