Enhancement ideas of Custom Key Signature Editor
We are looking forward for better Custom Key Signature editor.
Here are some ideas. It is not official, of course, just my attempt.
Any comments are welcome!
Goals:
- clef adaptation
- transpositions
Simple design proposal
Main panel:
Other clefs panel:
As You can see, many controls are not there for other clefs, as it is intended only for potentially adjustment of already created keysig.
Lets assume, key navigation is already implemented as suggested https://musescore.org/en/node/328994
If not, navigation buttons can be present.
Or may be vertical buttons for note / octave change on left side:
Other clefs variant vith navigation buttons:
Clef adaptation
(There are only three bacis clefs at the moment, but other clefs could be added with same logic.)
User insert accidentals in treble clef.
Default vertical placement is as in classic keys. (Naturals would be at same positions as sharps.)
Deafult horizontal placement is as follows: 1.st added accidental: x=0, 2.nd accidental x=1, …
User can adjust positions (octave and x position).
Than can check and, if needed, adjust positions in other clefs.
Custom adjustment is ported to other cleffs
Example:
User creates F# and Bb, in default positions. In bass cleff, it is represented:
If user creates F# in treble clef in lower octave, it is represented similar in bass clef (F# lowered octave down).
If user adjust x position, it is ported to other clefs too.
Transpositions
If "transposable" is ticked, only usable accidentals are enabled
Custom key can be interpreted as altered majority. So KeySig with F# and Bb could be interpreted as C major with augmented 4 and diminished 7.
This way it can be as easily transposable, as convential keys are.
G major with augmented 4 and diminished 7.
If some note already have „tonal“ accidental, alter it with custom accidental.
Accidentals alteration logic is as follows:
Flat altered by sharp creates natural (-1 + 1 = 0), flat altered by double sharp produces sharp (-1 + 2 = 1), ...
(At the moment only half step accidetals up to double flat and double sharp are included, but with same logic, quatertone accidentals can be included too: flat altered by quater sharp produces quater flat: -1 + 0,5 = -0,5 ...)
1) „Tonal“ accidentals takes first place.
2) Followed by custom accidentals.
3) If place is already taken, alterate custom accidental and remove tonal accidental.
4) If empty space is created, move all following accidentals left.
There are at least two more ways, how to interpret accidentals in transpositions:
1) If accidentals cancels each other, both are removed (no natural added)
2) Natural takes "convential" postion
But I dont like theese, because info of potential custom shift (octave, or x position shift) would be lost.
Custom Clef data
Only alterations from default positions are stored.
Deafult positions in other clefs are always relative to positions in treble clef.
Default positions in other transpositions (treble clef) are always relative to positions in C (0) transposition (treble celf).
Default positions in other clefs in transposition are always relative to positions in treble clef in coresponding transposition (positions in G basss cleff are relative to positions in G treble cleff).
Example of defaut positioned signature:
Example with shifted accidentals:
Thank You!
Comments
I’ve been wanting this sort of functionality. Note that there are more than 3 clefs, though.
In reply to I’ve been wanting this sort… by bb94
It would adapt keysig to all clefs.
Major three clefs are in editor to allow user modify appereance (octave switch, ...) in this three clefs.
See https://github.com/musescore/MuseScore/pull/10621