lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Lyric extenders in/out of alternatives


From: Jean Abou Samra
Subject: Re: Lyric extenders in/out of alternatives
Date: Mon, 4 Oct 2021 00:32:41 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0



Le 03/10/2021 à 11:34, Lukas-Fabian Moser a écrit :
Folks,

in my quest to maybe get rid of the recommendations of "\skip 1" for lyrics in the NR I stumbled upon the following example in http://lilypond.org/doc/v2.23/Documentation/notation/techniques-specific-to-lyrics.html:

% If you wish to show extenders and hyphens into and out
% of alternative sections these must be inserted manually.

\version "2.23.4"

\relative {
  \time 2/4
  \repeat volta 2 { b'4 b ~}
  \alternative {
    \volta 1 { b b }
    \volta 2 { b \repeatTie c }
  }
  c4 c
}
\addlyrics {
  Here's a __ verse.
  \repeat unfold 2 { \skip 1 } % btw: why this line?
}
\addlyrics {
  Here's "a_"
  \skip 1
  "_" sec -- ond one.
}

(I simplified the input code a bit - which I actually also would like to propose for the NR -, but the gist of the original example remains unchanged.)

Now this looks kind-of decent in the NR, but once you issue ragged-last = ##f, the limits of that hack show clearly (see attached image). And there should be a difference between a LyricExtender and an underscore as part of literal lyrics.

Of course the problem is exacerbated if the second alternative extends the melisma with multiple notes.

The best I could come up with is:

\relative {
  \time 2/4
  \repeat volta 2 { b'4 b ~}
  \alternative {
    \volta 1 { b b }
    \volta 2 { b \repeatTie c }
  }
  c4 c
}
\addlyrics {
  Here's a __ verse.
}
\addlyrics {
  Here's \set ignoreMelismata = ##t a __
  "" "" \set ignoreMelismata = ##f
  \markup\null __  sec -- ond one.
  % \markup\null doesn't kill melismata,
  % in contrast to ""
}

This has the advantage of being more-or-less semantically correct input, and it works with longer melismata:

\relative {
  \time 2/4
  \repeat volta 2 { b'4 b( | c8 b a g | }
  \alternative {
    \volta 1 { b4) b }
    \volta 2 {
      \shape #'((-3 . 0) (-2 . 0) (-1 . 0) (0 . 0)) Slur
      a8( b c b) | }
  }
  a8 g g4
}
\addlyrics {
  Here's a __ verse.
}
\addlyrics {
  Here's \set ignoreMelismata = ##t a __ _ _ _ _
  "" ""
  \set ignoreMelismata = ##f \markup\null __  sec -- ond one.
}

Does anybody see a better solution that might be good enough for the NR?


Well-invented. I don't see anything better.


Of course, the ideal solution would be a possibility to tell the Lyrics context that it should "take" the second alternative and make it skip the first alternative automatically (and suspend the LyricExtender along the way). But my feeling is that this would be not so easy to implement.

Probably doable, and probably a fair bit of work.

Best,
Jean



reply via email to

[Prev in Thread] Current Thread [Next in Thread]