|
From: | Avi Drissman |
Subject: | Re: Lyrics both above and below the staff with splits? |
Date: | Sun, 14 Apr 2013 13:02:19 -0400 |
2013/4/14 Avi Drissman <address@hidden>:
Hi Avi,> 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
_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
}%\global
\new Staff = "alto" <<
\new Voice = "alto" <<
\altonotes\new Lyrics = "lyr" \with { alignAboveContext = alto } \lyricsto
>>
\lyricsto "alto" \new Lyrics \altowords
"altoonex" \altoonewords
\context Lyrics = "lyr" \with { alignAboveContext = alto }
\lyricsto "altoone" \altoonewords
\set Staff.instrumentName = A
>>
-Harm
[Prev in Thread] | Current Thread | [Next in Thread] |