Implement the name attribute in lyric tag
The present behavior of Musescore when it encounters the name attribute in a lyric element is to ignore all lyric elements except the ones from the last name attribute encountered.
For example:
<lyric name="Hebrew" number="1">
<syllabic>begin</syllabic>
<text>1.דוּ</text>
</lyric>
<lyric name="Hebrew" number="2">
<syllabic>begin</syllabic>
<text>2.בַא</text>
</lyric>
<lyric name="Russian" number="1">
<syllabic>begin</syllabic>
<text>1.Ду</text>
</lyric>
<lyric name="Russian" number="2">
<syllabic>begin</syllabic>
<text>2.Ба</text>
</lyric>
<lyric name="English" number="1">
<syllabic>begin</syllabic>
<text>1.Doo</text>
</lyric>
<lyric name="English" number="2">
<syllabic>begin</syllabic>
<text>2.Ba</text>
</lyric>
Will display:
1.Doo
2.Ba
As we see, the number attribute works fine. We need a way to choose the name attribute of which text we are working with and want displayed, and hide the ones we don't want to see.
We use this for transliteration of lyrics into different languages, but there are many other uses for this feature including alternate words for the same tune, etc...
The name and number attributes of the lyric tag are part of the musicXML standard. It would be nice if the name attribute function would be implemented as the number attribute already has been.
Comments
How should it get displayed? Like this?1
1.דוּ
2.בַא
1.Ду
2.Ба
1.Doo
2.Ba
In reply to How should it get displayed? by Jojo-Schmitz
It should get displayed as you have suggested, then for printing, I would hide all the languages (name attributes) except the one I need for this printing. I know there are all kinds of workarounds, but let's implement the name attribute instead of letting the text get overwritten when the name attribute changes. Those workarounds can get messy when there is a chorus then two or three verses. The name attribute IS part of the spec.
It'd probably just work if in number="x" that x would be 1,2,3,4,5,6 rather than 1,2,1,2,1,2
At least that is what'd need to happen internaly, the lyrics are kept in an array with array index being number-1. So currently it doesn't really ignore all but that last set, but rather overwrites them