accidential policy

• Dec 20, 2010 - 19:46

There's something on the type-of-accidential-chosen-policy, which feels a bit odd.
If I get this right, at the moment in keys with sharps or no accidentials (e.g. C major, G major, D major, a minor, e minor, etc), there's sharps preferred over flats, like in no accidential key (C major) chromatic scale starting with C comes out as:
C, C#, D, D#, E, F, F#, G, G#, A, A#, B, C
On the other hand, keys with flats prefer flats, so with one b (F major) it's looks as following:
C Db, D, Eb, E, F, Gb, G, Ab, A, B, C (natural signs left out)

I think, the most convenient handling of this would be to have musescore handle accidentials in regard to the step (degree?) on the underlying scale, so for example when the note between 4th and 5th step in C major (which is F# or Gb, either an augmented 4th or a diminished 5th) is chosen to be a F# - which is a augmented 4th step in C major - it should be similiar in F major, where the augmented 4th is B natural in stead of C flat.

In my opinion (which isn't necessarily the right one), a good policy chooses the accidental type that leads to the least distant key (mode?), which is for example in C major, the G major and F major modes - distance in terms of circle of fifths.
So in C major the note leading to F major would be a B flat, the note leading to G major an F sharp.

We also have for each key the corresponding minor mode, which starts on the 6th step of the scale.
This would be in our example the a minor mode, which it's "neighbours" E minor and D minor.
In minor modes we often need a leitton (lead tone?), which is the augmented 7th step of the scale, this is a G sharp in A minor.
The lead tones of the neighbours would be the next nearest things we could want to use, so that's D sharp for E minor and C sharp for D minor.

Taken this all together we have

in major modes (C major):
the diminished 7th (B flat)
the augmented 4th (G sharp)

in minor modes (a minor)
the augmented 7th (G sharp)
the augmented 4th (D sharp)
the augmented 3rd (C sharp)

When we translate the minor mode steps to the corresponding major mode, this means we have:
diminished: 7th
augmented: 1st 2nd 4th and 5th (1st 2nd & 5th major = 3rd 4th & 7th minor)

So in F major (d minor) cromatic scale after input would look like follows:
F F# G G# A Bb B C C# D Eb E F (naturals left out)
Db major (Bb minor):
Db D Eb E F Gb G Ab A Bb Cb C Db
Gb major (Eb minor)
Gb G Ab A Bb Cb C Db D Eb Fb F Gb

G major (E minor)
G G# A A# B C C# D D# E F F# G
F# major (D# minor)
F# Fx G# Gx A# Ax B B# C# Cx D# E E# F#

I could try an implementation of it, but I would like to discuss before, if this is what we want or need.
Maybe this task is also not so urgent,
so please tell me what you think.

I know, this was much theory, if it helps, and some points are not clear, I could try to elaborate it a bit more.

Best regards,

(By the way, is there a "flip accidentials"-function anywhere? My approach is to use up and down keys as a workaround, which is also good, and it works on sections too.)


Yes, I was going to comment about this at some point as well, as well as wanting a flip accidentals function.

For me I found it annoying that while in Bb, if I play a B natural, it goes in as Cb

Probably MuseScore should have an understanding of major and minor keys before it can correctly guess the "most likely" accidentals for a given key. Maybe add a radio dial option for major or minor for the key signature selection in the new score wizard. And a "Key Signature Properties" dialog in the context menu that specifies major or minor for key signatures already in the score.

In reply to by David Bolton

I have to check what sibelius does in this case, I don't have finale, or capella to check them.

In my opinion, the decisions taken regarding wich accidental type to choose for a given input is in most cases - if not all - the same for major modes and there corresponding minor modes.
If different, it would be easy to change, but policy as it is now, is pretty anoying in most cases.

This approach is also completely context-insensitive, it only looks at the key signature of the section, when modulations occur, it is most likely wrong. And even with context-sensitive behaviour, it still will fail in many occasions, because a harmonic context is often not clear until the following chords, which can't be guessed during input.

Best approach for a non-context-sensitive policy would be empirical, I would take the time and count accidentals in different major and minor mode bach/mozart/händel/haydns (with modulations to not too distant keys).

Until then it would be nice not to have an Ex (double-sharp) in G major / E minor modes, or an Cb in F major / D minor

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