For reasons, I'm setting the lyrics of a song with \lyricmode instead of \lyricsto. However, I'm having trouble getting a long melisma to work in this mode. Something like this:

melisma example

is easy to achieve with \lyricsto by using an __ as detailed in the manual here, but I haven't found any reference describing how it might be done with \lyricmode. Everything I've tried so far produces errors. Here's an example of one of these failures:

\version "2.19.12"
\language english

lyricMelody = \relative c' {
  \time 4/4
  \key c \major
  \tempo 4=120
  c2 d( | %m1
  e2 f | %m2
  g2) a | %m3

textOne = \lyricmode {
  A2 long__ | %1
  __1 | %2
  __2 note | %3

\score {
  \new Voice = "vocals" { \autoBeamOff \lyricMelody }
  \new Lyrics \lyricmode { \textOne }

Note that an extender line is some sort of articulation/accent on the previous syllable. So you are looking for

textOne = \lyricmode {
  A2 long2*4__ % 2.5
  note2 | %3

It's a bit awkward that you cannot split this note into parts with a more natural length. You could write something like

textOne = \lyricmode {
  A2 long$(make-duration-of-length (ly:music-length #{ 2 | 1 | 2 #})) %3
  note2 | %3

and the guts of that could be turned into a some Scheme function, but the | in its argument obviously would just be window dressing.

Now if you try this, you'll find that there just isn't an extender line. The reason for that is that the extender line gets its extent from corresponding notes and your lyrics no longer are associated with any particular Voice or other context.

So in order to have the extender line appear (and have lyrics arranged to match the actual notes rather than more or less the time), you also need to write

  \new Lyrics \with { associatedVoice = "vocals" } \lyricmode { \textOne }

in your score. \lyricsto and \addlyrics automatically set associatedVoice (well, with \addlyrics it's sometimes hit&miss) so you don't need to do so yourself. But when your durations are not picked from the Voice, you still need it for the attachment points.


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.