Non-last lyric syllables on slurred/tied notes are centered rather than left aligned

• Jul 4, 2012 - 12:26
S4 - Minor

- create a score
- enter a couple notes, some of which are tied or slured, e.g:

- add lyrics with multi sylable words, e.g:
2.png , here entered as "Sha--lom"

- Expected output: "Sha" is left aligned
- Actual output: it is centered instead

- compare with e.g.:
3.png , entered as "Sha__<ctrl>-lom", which could be used as a (nasty) workaround.

- discussion: LilyPond does it right, without the _ and gets tripped off with the _

Tested with 1.2 and de36470


It is common practice to left align syllables with the first note of a melisma as Jojo-Schmitz describes.

The senior editor at Faber Music, Elaine Gould writes: "The syllable should be ranged left under the first notehead. This draws the eye to the right--an important consideration, since the singer always needs to be looking forward" (Gould, Behind Bars, p. 439). Gould acknowledges that some editions center every syllable (regardless of whether it is a melisma), but argues "in general, this is not helpful. From time to time there may be an aesthetic case for doing so, in order to align vertically either the same text below different staves or different texts below the same voice part," but she does not adopt this practice in her samples.

Alfred Publishing Company also recommends the same practice: "Another help in reading a melisma is the proper alignment of the lyric. The word or syllable, instead of being centered under the note, should be aligned flush left with the left edge of the notehead" (Essentials of Music Notation, p. 43).

While some publishers continue to center all syllables (for example a publication I'm working on at the moment does this), it is not the most common practice and should not be the default in MuseScore. As far as I'm aware, all the major notation software align flush left for melismatic syllables by default. MuseScore incorrectly mixes both styles: left aligned for melismatic syllables except when they are followed by a hyphen.

Below I outline an algorithm that should systematically describe the conditions for centering vs. left-aligning a lyric syllable.

  • Is the current note followed by a rest? If so then the lyric syllable under it should always be centered
  • Is the current note the last note of a piece or movement? (In other words, is it either the last note of the last measure of the score, or immediately followed by a double bar or end bar?) If so then the lyric syllable under it should always be centered
  • Is the current note followed by another note?
    1. If the next note (following the current note) has no lyric syllable then assume a melisma and left-align.
    2. If the next note (following the current note) has a lyric syllable then it is not a melisma. Center the current lyric syllable.

Note: as you type syllables into the score, the alignment of the previous syllable will often need to update (and switch from flush left to center.

Also note that this algorithm is comprehensive, so the current code that switches to left-align when a word extender is added, is no longer needed (see )

Gould/Alfred's recommendation makes sense, I agree, even though as noted it is hardly universal. I might suggest making this a style setting, though (with the default as in Gould/Alfred), for the benefit of those producing manuscript for publishers who no etheless prefer centering everything - there are quite a number of them, and they include some pretty major ones.

Title non-last lyric sylables on slured/tied notes are centered rather then left aligned Non-last lyric syllables on slurred/tied notes are centered rather than left aligned

Still an issue with 1.3 and de657c0

I believe the place in the code where this align is done (or rather not in this case) is in libmscore/lyrics.cpp L225ff:

{syntaxhighlighter brush:cpp;first-line:225}
// left align if syllable has a number or is a melisma
if (_ticks == 0 && (textStyle().align() & ALIGN_HCENTER) && !_verseNumber)
x += symWidth(SymId::noteheadBlack) * .5;
else if (_ticks || ((textStyle().align() & ALIGN_HCENTER) && _verseNumber))
x += width() * .5;

I think that might be a bit premature, since there are lots of still-valid reasons to have adjusted things. One can always select all lyrics & reset if one is sure this is the only adjustment one made. Or, we could go ahead and add the option, but default to "off" for 1.3 scores.

Status (old) active fixed

I don't see any reason for MuseScore - or a human reader of the above score - to assume you intended that "lyric" to be sung as a melisma over all four notes. This is what extenders are for, and when used correctly, you get the correct results. The above is invalid input, and MuseScore's response is at least as appropriate as LilyPond's.

As far as I am concerned, if it doesn't have an extender or a hyphen, it should be centered, period. You are welcome to invent your own exceptions and manually adjust to handle them. But I can't think of any reason one would want to. In other words, there is no musically valid reason why anyone should create an example like yours above and expect it *not* to be centered. You've put a single-syllable word with under a single note, no hyphen or extender in sight. Just like all other single-syllable words under single notes with no hyphens or extenders, it should be centered by default.

For syllables with an extender, they should be left aligned, period. Again, you are welcome to invent your own exceptions and manually adjust to handle them.

For syllables with a hyphen, the situation is more complex.

In cases where there is no melisma, it is clear: center, period. Once more, you are welcome to invent your exceptions and manually adjust for them.

In cases where the hyphenated syllable is a melisma - and that is the *only* case at hand in this issue - there are multiple "correct" answers. Some editors chose to center always, some choose to left align always, and some choose to make the call based on context (including whether or note there are syllables on the same note in other verses and how they are aligned, but possible also the length of the current syllable, the length and alignment of the preceding or following syllables, etc). The people who choose to make the call based on context will need to adjust manually based on their own preferences.

So the *only* question here is what the default is in the case of hyphenated melismas. Previously, it was center. Now it is left. As has been mentioned, at some point we may consider offering a set of "advanced options" to control fine details like this.

Regarding comment #11 above, it looks like Lilypond and Finale assume the lyric is a melisma and left-align (Finale adds a melisma underline automatically), similar to the algorithm I outlined in comment #2.

Sibelius centers the lyric if you type nothing else (i.e. exit lyric mode), but left-aligns if you spacebar through the next notes.

Marc's algorithm catches the most important instances of melismas with hyphens and melisma underlines and leaves it centered when it is ambiguous.

ISTR that LilyPond left aligns automatically when the corresponding note is slurred or tied to the next, no need for an underscore at all, they even screwed it up on export from MuseScore

It would of course be *possible* to change MuseScore to assume that any syllable in which the next note has no syllable is a melisma. But in my opinion this would be a mistake. There are perfectly valid reasons why one might have notes with notes syllables even though the previous note is *not* meant to be a melisma. For example, those notes could be there for the benefit of other verses that do include syllables for those notes. In the case of tied notes, it's a bit less clear - there probably isn't a good use case for a single-syllable word under the first note of a tie that shouldn't be left aligned just as if an extender had been used. But still, why not simply use the extender? I would rather MuseScore not be in the business of "correcting" user scores that are entered incorrectly.

That said, a way of manually specifying that a note without an extender really *is* meant to be a melisma wouldn't be a bad feature to add. A checkbox in the Inspector, perhaps, or some sort of special "invisible extender" keystroke you enter while typing lyrics.

not any, just any slured/tied note. And using the extender threw off LilyPond, on 1.x .ly Export. That issue doesn't exist anymore, as MuseScore doesn't export to LilyPond directly anymore, but back then it did exist and I have no idea whther XML and xml2ly handles this correctly now (and am way too lazy to check :-))
And those notes without a sylable should have something, preferably a rest of suitable length preferably

Slurred notes should not get special treatment. A single-syllable word with no extender under a single note is *not* meant to indicate a melsima, ever. Writing that and expecting a human musician to sing a melisma where none is actually indicated is just wrong, so nor should MuseScore treat it as a melisma. As I said, those notes might exist with no notes for other reasons - like to support syllables in other verses.

Ties are, I would agree, potentially a case where we *could* assume an extender was meant. but still, why assume? It's incorrect notation to write this without an extender. As I have said, I don't think MuseScore should be in the business of trying to "correct" music for you. However, if someone were to go in to the code and change it to do so in this one case only - treating a single syllable with no hyphen or extender on a tied note as if it had the extender it is supposed to have - I wouldn't coimplain. If they did so for any other case, though, I'd consider that a bug. It needs to be possible to support multiple verses with different syllables for each. We can't break correctly-entered scores just to get a particular result for incorrectly-entered ones.

For ties I see it being done in publications (well, one publication, "Band- und Chorbuch zum Gotteslob"), but not consistently, sometimes the extender is used, sometimes not, but in either case left aligned. Same publication centers non-last syllables though. My guess is the software used didn't support this and the few left aligned slured sylables had been corrected manually.

What I would expect is if the syllable is long enough that it actually covers *two* notes, then it would be assumed to be an unmarked melisma and thus left aligned. This is something touched on in #5261: Lyrics for melismas should not respace notes if there is room before next syllable. Currently MuseScore will only try to put a syllable under two notes if it knows it a melisma, and it only knows it is a melisma if an extender is used.

I could easily see adding code to handle hyphenated melisma as well, just as I did for the issue at hand here. See And I could see making it so both of these spots in the code - the code responsible for the left-alignment, and the code responsible for spacing notes - treated tied notes specially in this same way. It seems like it would be harmless.

I could *also* see a *manual* way of telling MuseScore you'd like a lyric with no hyphen or extender to sit under multiple non-tied notes - that is, to exempt the syllable from automatic spacing, and also left-align it. This would require an extra checkbox in the Inspector or soem other means of specifying you want this override, and also would involve adding a new tag to the score file. Not something I'd undertake as lightly.