I'm sorry; I was banging my head against this for so long that I just
emailed out of frustration.

So that's how you re-use a Lyrics. That works, but is a bit ugly in that
you have to create new voices over and over. So I tried re-using a voice
using that \context trick:

\version "2.16.1"

altonotes = \relative c' {
  fis2\p e | d cis | d cis | b
  << \new Voice = "altoone" { \voiceOne fis'8( a) b4~ | b a( fis d) | fis1 }
    { \voiceTwo fis2~ | fis4 e( cis8 b a4) | a1 } >> \oneVoice
  r4 d\f d4. fis8 | fis1 | r1 |
  << \context Voice = "altoone" { \voiceOne d8[^\markup { \italic "cresc.
poco a poco" } e] fis2.~( | fis2 e4.) }
    { \voiceTwo r1 | r2 cis8 d e } >> \oneVoice
  e8~ | e4
}

altowords = \lyricmode {
  cooled my head and warmed my heart
  doo __ doo __ on
  this road to -- night.
  Nev -- er run,
}
altoonewords = \lyricmode {
  doo __ doo __ doo __ on
  Car -- ry on, __
}

\score {
  \new ChoirStaff <<
    \new Staff = "alto" <<
      \new Voice = "alto" <<
        \altonotes
      >>
      \lyricsto "alto" \new Lyrics \altowords
      \lyricsto "altoone" \new Lyrics \with { alignAboveContext = alto }
\altoonewords
      \set Staff.instrumentName = A
    >>
  >>
  \layout {}
}

But the words don't show up the second time. Must I create a new voice each
time and put in a new new \lyricsto for each split?

Thanks,

Avi


On Sun, Apr 14, 2013 at 6:11 AM, Thomas Morley <
thomasmorle...@googlemail.com> wrote:

> 2013/4/14 Avi Drissman <a...@drissman.com>:
> > I'm trying to type up a vocal piece. At several places, the part splits
> > (with completely different notes, rhythms, and lyrics), and returns to
> > unison. During the splits, I'd like the lyrics to go above the staff for
> the
> > high part, and below the staff for the low part.
> >
> > At first, I split using:
> >
> > << { ..notes.. } \\ { ..notes.. } >>
> >
> > When you do that, though, you get no lyrics. Bummer. So I started
> explicitly
> > specifying the second voice:
> >
> >   ..notes.. << { \voiceOne ..high notes.. }
> >     \new Voice { \voiceTwo ..low notes.. } >> \oneVoice ..notes..
> >
> > Better, as you get your lyrics, but not ideal: the lyrics are attached to
> > high notes and are printed below the staff.
> >
> > Next attempt: explicitly name the voice. I went a little unorthodox here,
> > making the upper voice the new voice and making the lower voice continue
> the
> > original:
> >
> >   << \new Voice = "altoone" { \voiceOne ..notes.. }
> >     { \voiceTwo ..notes.. } >> \oneVoice
> >
> > and added on the lyrics to that part:
> >
> >     \new Staff = "alto" <<
> >       \new Voice = "alto" <<
> >         \global
> >         \altonotes
> >       >>
> >       \lyricsto "alto" \new Lyrics \altowords
> >       \lyricsto "altoone" \new Lyrics \with { alignAboveContext = alto }
> > \altoonewords
> >       \set Staff.instrumentName = A
> >     >>
> >
> > which worked well. Awesome! But doing it a second time didn't get me
> lyrics
> > on the second split:
> >
> >   ..notes..
> >   << \new Voice = "altoone" { \voiceOne ..notes.. }
> >     { \voiceTwo ..notes.. } >> \oneVoice
> >   ..notes..
> >   << \new Voice = "altoone" { \voiceOne ..notes.. }
> >     { \voiceTwo ..notes.. } >> \oneVoice
> >   ..notes..
> >
> > The first instance of "altoone" was decorated with lyrics, but the second
> > instance didn't get any. So I thought that perhaps I needed to name the
> > voices differently:
> >
> >   ..notes..
> >   << \new Voice = "altoonei" { \voiceOne ..notes.. }
> >     { \voiceTwo ..notes.. } >> \oneVoice
> >   ..notes..
> >   << \new Voice = "altooneii" { \voiceOne ..notes.. }
> >     { \voiceTwo ..notes.. } >> \oneVoice
> >   ..notes..
> >
> >     \new Staff = "alto" <<
> >       \new Voice = "alto" <<
> >         \global
> >         \altonotes
> >       >>
> >       \lyricsto "alto" \new Lyrics \altowords
> >       \lyricsto "altoonei" \new Lyrics \with { alignAboveContext = alto }
> > \altooneiwords
> >       \lyricsto "altooneii" \new Lyrics \with { alignAboveContext = alto
> }
> > \altooneiiwords
> >       \set Staff.instrumentName = A
> >     >>
> >
> > But that doesn't work, as "altoonei" and "altooneii" are positioned at
> > different heights. I want one consistent position for all of the lyrics
> > above the staff.
> >
> > I'm stuck at this point, and am out of ideas. Any suggestions?
> >
> > Thanks,
> >
> > Avi
>
> Hi Avi,
>
> _please_ post a _compilable_ example!!
> I tend to ignore posts without compilable code. Or I have to make a guess:
>
>
> \version "2.16.2"
> mI = \relative c' { \repeat unfold 8 c'4 }
> mII = \relative c' { \repeat unfold 4 d2 }
>
> altowords = \lyricmode { \repeat unfold 10 foo }
> altoonewords = \lyricmode { \repeat unfold 8 bar }
>
> altonotes = \relative c' {
>         <<
>           \context Voice = "altoonex" { \voiceOne \mI }
>           { \voiceTwo \mII }
>         >>
>         \oneVoice
>         e1
>
>         <<
>           \context Voice = "altoone" { \voiceOne \mI }
>           { \voiceTwo \mII }
>         >>
>         \oneVoice
>         e1
> }
>
>     \new Staff = "alto" <<
>       \new Voice = "alto" <<
>         %\global
>         \altonotes
>       >>
>       \lyricsto "alto" \new Lyrics \altowords
>       \new Lyrics = "lyr" \with { alignAboveContext = alto } \lyricsto
> "altoonex"  \altoonewords
>       \context Lyrics = "lyr" \with { alignAboveContext = alto }
> \lyricsto "altoone"  \altoonewords
>       \set Staff.instrumentName = A
>     >>
>
> -Harm
>
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to