5

I have this kind of music containing a melisma:

\relative
{
  c'4. e8 g4 c a c8 a g2
}
\addlyrics {
  Al -- le Vö -- gel sind schon __ _ da,
}

I get this:

enter image description here

The melisma extender line (after schon) is present, but barely noticeable.

How do I force it to be longer? (which will result in a larger distance between the two eighth notes, of course)


I know how to force the hyphenation to be longer:

Adding \override LyricHyphen.minimum-distance = #4.0 before the notes will give

enter image description here

, so I thought there is a similar option for the melisma extender line. But \override LyricExtender.minimum-length = #4.0 doesn't change a thing, so it's probably not the right option.


Following Richard's answer, I wrote this

\relative
{
  c'4. e8 g4 c a c8 a g2
}
\addlyrics {
  Al -- le Vö -- gel sind 
  \override LyricSpace.minimum-distance = #8.0
  schon __ _
  \revert LyricSpace.minimum-distance
  da,
}

and got this:

enter image description here

The length of schon__ and the distance between its corresponding notes are exactly what I want, but the distance to the next note (the one corresponding to da) is too large. I want that distance to be default. I tried reverting the LyricSpace override right after the __ (before _) but the result is the same.

1
  • The point of a melisma extender is to remind the singer that the syllable continues even though it's visually shorter than the notes that it covers. But that isn't the case in your example; the syllable is already very nearly as long as the notes. If I had to sing from this score, the tiny line would distract me more than it helps. Sep 21 at 21:43
5

You're almost there! Using \override LyricSpace.minimum-distance = #1.0 is what you're looking for. This changes the space between the words (or syllables) themselves, in doing so also changing the distance for the melisma line.

Like with change the LyricExtender, you can change #1.0 to whatever value best fits your scenario.

2
  • Tried it, but ran into problems. See question (updated).
    – Kjara
    Sep 21 at 18:41
  • @Kjara Unfortunately, I'm not sure I can help with the updated issue...
    – Richard
    Sep 22 at 0:28
0

I found this piece of information in LilyPond Internals Reference regarding LyricExtender:

minimum-length (dimension, in staff space): 1.5

Try to make a spanner at least this long, normally in the horizontal direction. This requires an appropriate callback for the springs-and-rods property. If added to a Tie, this sets the minimum distance between noteheads.

After googling a bit, I found a snippet that showed how to do that callback. So I wrote

\addlyrics {
  \override LyricExtender.minimum-length = #8.0

  % do the callback
  \override LyricExtender.springs-and-rods = #ly:spanner::set-spacing-rods
  
  Al -- le Vö -- gel sind schon __ _ da,
}

and got:

enter image description here

So forcing a minimum length this way works and does not affect the distance between the last note of the melisma and the next note (as Richards solution does).

But it's still not what I want. I didn't say this in the question, but in fact I want

  • a minimum length of the melisma (done!) and
  • the end of the melisma extender line and the last note of the melisma should be aligned (not done!).

I found a way using LyricExtender.right-padding. Unfortunately, it requires trial and error to find a good value and the value needs to be changed whenever any other spacing changes (e.g. by changing paper size or doing a manual break somewhere in the notes). But a bad solution is better than none. Here goes:

\addlyrics {
  \override LyricExtender.minimum-length = #8.0
  \override LyricExtender.right-padding = #2.0
  % do the callback
  \override LyricExtender.springs-and-rods = #ly:spanner::set-spacing-rods
  
  Al -- le Vö -- gel sind schon __ _ da,
}

which will produce

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.