Serious bugs in fixed do solfège notehead scheme
To my dismay I discovered that the fixed do solfège syllables in MuseScore 4 are unfortunately seriously wrong in two ways:
-
The fixed do standard is "si" since this is simply the note name in Latin languages such as Italian, French and Spanish. ("ti" was an invention by an American music teacher in the late 19th century who wanted to start each note with a different letter, perhaps unaware of the note names in other languages.)
-
The new scheme introduces syllables that are nonexistent in fixed do ("me," "ra," "te," etc.). These were also arbitrary inventions that deviated from the basic note names in Latin languages.
Since fixed do solfège with only do, re, mi, fa, sol, la, si is the international standard, may we kindly request a notehead scheme containing only these seven syllables? Any other syllables besides these seven only confuse music students around the world.
Thanks so much in advance.
P.S. If this isn't currently feasible, could someone point out the file in the source code that we might edit?
Comments
Agree. In this part of the world (using solfège notes instead of letters), di , ri , ti and so on feels a bit ridiculous.
Probably to be found in src/engraving/types/typesconv.cpp
// note name
{ NoteHeadGroup::HEAD_DO_NAME, "do-name", muse::TranslatableString("engraving/noteheadgroup", "Do (Name)") },
{ NoteHeadGroup::HEAD_DI_NAME, "di-name", muse::TranslatableString("engraving/noteheadgroup", "Di (Name)") },
{ NoteHeadGroup::HEAD_RA_NAME, "ra-name", muse::TranslatableString("engraving/noteheadgroup", "Ra (Name)") },
{ NoteHeadGroup::HEAD_RE_NAME, "re-name", muse::TranslatableString("engraving/noteheadgroup", "Re (Name)") },
{ NoteHeadGroup::HEAD_RI_NAME, "ri-name", muse::TranslatableString("engraving/noteheadgroup", "Ri (Name)") },
[...]
Or maybe better in src/engraving/dom/note.cpp
[...]
else if (scheme == NoteHeadScheme::HEAD_SOLFEGE) {
int degree = tpc2degree(tpc, key);
int alteration = tpc2alterByKey(tpc, key);
if (degree == 0 && alteration == 0) {
group = NoteHeadGroup::HEAD_DO_NAME;
} else if (degree == 0 && alteration == 1) {
group = NoteHeadGroup::HEAD_DI_NAME;
} else if (degree == 1 && alteration == -1) {
group = NoteHeadGroup::HEAD_RA_NAME;
} else if (degree == 1 && alteration == 0) {
[.. ]
Wikipedia agrees on this https://en.wikipedia.org/wiki/Solf%C3%A8ge . See the entry about fixed do solfège.
There are 4 corresponding translatable strings on transifex:
all 4 Ti tralslated as Ti in Italian, only the Walker variant translated to Si in French, the plain and the Walker one as Si in Spanish, all but Ti (Name) to Si in Potuguese, all 4 to Si in Brasilian Portuguese
Quite a mess... but up to you to fix as you see fit.
In reply to There are 4 corresponding… by Jojo-Schmitz
There is also the HEAD_SI_NAME in typesconv.cpp:
{ NoteHeadGroup::HEAD_TI_NAME, "ti-name", TranslatableString("engraving/noteheadgroup", "Ti (Name)") },
{ NoteHeadGroup::HEAD_SI_NAME, "si-name", TranslatableString("engraving/noteheadgroup", "Si (Name)") },
In reply to There is also the HEAD_SI… by graffesmusic
So, instead of this:
it should be
So a G# is called a SI in As Is ....
Note that this was correct in MS3
So I guess you'd need to report this on GitHub