[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