lilypond-user
[Top][All Lists]
Advanced

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

Re: Extending lyric extender


From: Yann
Subject: Re: Extending lyric extender
Date: Tue, 26 Nov 2013 12:16:05 +0100

> Two observations:
> 1. The “\set associatedVoice” needs to before the syllable PRIOR to the one 
> you actually want to “switch” to the new voice — one of my least favourite 
> things in Lilypond.
> 2. The X-offset tweak is to avoid the weird shift of the text (to match the 
> shift of the note in that voice), and thus may not be necessary in your 
> situation — comment it out to see the default output.
>
> Hope this helps!
> Kieren.

Hello ! Thanks a lot for your help.

I vaguely thought of something like that, but I would have liked to
find a more "generic" or "global" solution, because usually (I mean in
my templates) the variable containing the lyrics is used in different
versions of the scores (lead sheet, choir). But I can do something
maybe using tags or something similar, if no other solution is
available.

Here is an extract of the song I was trying to typeset :

\version "2.16.0"

\paper { ragged-right = ##f }

global = {
  \key f \major
  \time 4/4
}

melodie = \relative c' {
  \global
  g'4. g8 c,2 |
  f4 g a bes |
  a2 g |
}

alto = \relative c' {
  \global
  c4 bes c2 |
  c4 e f f |
  f2 f4( e) |
}

tenor = \relative c' {
  \global
  g4 f e2 |
  f4 c' c bes |
  c( b) c2 |
}

basse = \relative c {
  \global
  e4 d c( bes) |
  a4 c f8( e) d4 |
  c2 c |
}

refrain = \lyricmode {
   Glo -- ri -- a __ in ex -- cel -- sis De -- o, __
}

choirPart = \new ChoirStaff <<
  \new Staff \with {
  } <<
    \new Voice = "melodie" { \voiceOne \melodie }
    \new Voice = "alto" { \voiceTwo \alto }
  >>
  \new Lyrics \lyricsto "melodie" \refrain
  \new Staff \with {
  } <<
    \clef bass
    \new Voice = "tenor" { \voiceOne \tenor }
    \new Voice = "basse" { \voiceTwo \basse }
  >>
>>

\book {
  \score {
    \choirPart
    \layout { }
  }
}

______________
This is without modifying the voices assignment. My lyrics are in the
"refrain" variable".

Following your first advice, I tried :

refrain = \lyricmode {
  Glo -- \set associatedVoice = "basse" ri -- a __ in ex -- cel -- sis
\set associatedVoice = "alto" De -- o, __
}

However I get an error when compiling :
Interprétation en cours de la musique...
Test_extender.ly:47:43: Avertissement : trait d'union sans suite ; escamoté
  Glo -- \set associatedVoice = "basse" ri
                                           -- a __ in ex -- cel -- sis
\set associatedVoice = "alto" De -- o, __

Don't know how it is said in the english lilypond, something like
"hyphen without sequel".

So I tried to move the directive next syllabe :

refrain = \lyricmode {
  Glo -- ri -- \set associatedVoice = "basse" a __ in ex -- cel -- sis
\set associatedVoice = "alto" De -- o, __
}

Lilypond doesn't complain, but then the extender never finishes till
the end of the song.

Doing only the second with alto voice :
refrain = \lyricmode {
  Glo -- ri -- a __ in ex -- cel -- sis \set associatedVoice = "alto"
De -- o, __
  in ex -- cel -- sis De -- o.
}

works perfectly fine (needs some offset tweaking like you did, but it
does its job).
Is it because the bass voice is on a different voice ?

Anyways, any idea on how I can get this working ?

Thanks.
Yann



reply via email to

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