alignAboveContext for alto

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

alignAboveContext for alto

David Olson
Dear Lilyponders,

Suppose I have a ChoirStaff with four voices,

and stanzas are sung by everybody, but distributed between the voices (less cluttered).

<<
           \new Voice = "one" { \sopranoMusic }
           \new Lyrics \lyricsto "one" \stanzaOne
           \new Voice = "two" { \altoMusic }
           \new Lyrics \lyricsto "two" \stanzaTwo
       <<
       >>
           \new Voice = "three" { \tenorMusic }
           \new Lyrics \lyricsto "two" \stanzaThree
           \new  Voice = "four" { \bassMusic }
   >>

However, soprano & tenor have 8 measures rest; ideally those lyrics (14 syllables) can be set with reference to the alto voice.

When compiling, the order matters:
"two" (alto) has been read when "three" (tenor) is compiled, so stanza three lyrics appear below tenor rests.

But "one" cannot reference "two", so no lyrics will appear if   
           \new Voice = "one" { \sopranoMusic }
           \new Lyrics \lyricsto "two" \stanzaOne

           Warning: cannot find Voice `two'


Alternatively:  alignAboveContext

(what is the "context"?)

{ alignAboveContext = "two" }
{ alignAboveContext = "Voice" }
{ alignAboveContext = "altoMusic" }


           \new Voice = "two" { \altoMusic }
           \new Lyrics
\with { alignAboveContext = "two" } {\lyricsto "two" \stanzaFirst }
           \new Lyrics \lyricsto "two" \stanzaTwo

This just prints the "stanzaFirst" section below alto.

Assistance will be greatly appreciated,

David Olson
Los Angeles, California



Puzzled_by_The_Marcellas.ly (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

re: alignAboveContext for alto

Remy CLAVERIE

David,

 

If I correctly understand your problem, you need to have the Lyrics of the alto voice above the Staff after the eight bar.

I think the best solution is to use the 'alignAbovecontext' which sould be applied to a 'Staff' context. You will find a proposal attached to this email.

 

If you would like a more appropriate solution, tell me know.

 

Have a nice day,

 

Rémy

 

 

> Message du 08/12/19 20:42

> De : "David Olson" <[hidden email]>
> A : "lilypond-user" <[hidden email]>
> Copie à :
> Objet : alignAboveContext for alto
>
>
Dear Lilyponders,
 
Suppose I have a ChoirStaff with four voices,
 
and stanzas are sung by everybody, but distributed between the voices (less cluttered).
 
<<
>            \new Voice = "one" { \sopranoMusic }
>            \new Lyrics \lyricsto "one" \stanzaOne
>            \new Voice = "two" { \altoMusic }
>            \new Lyrics \lyricsto "two" \stanzaTwo
>        <<
>        >>
>            \new Voice = "three" { \tenorMusic }
>            \new Lyrics \lyricsto "two" \stanzaThree
>            \new  Voice = "four" { \bassMusic }
>    >>
>
However, soprano & tenor have 8 measures rest; ideally those lyrics (14 syllables) can be set with reference to the alto voice.
 
When compiling, the order matters:
"two" (alto) has been read when "three" (tenor) is compiled, so stanza three lyrics appear below tenor rests.
 
But "one" cannot reference "two", so no lyrics will appear if   
>            \new Voice = "one" { \sopranoMusic }
>            \new Lyrics \lyricsto "two" \stanzaOne
 
           Warning: cannot find Voice `two'
>
 
Alternatively:  alignAboveContext
 
(what is the "context"?)

>
{ alignAboveContext = "two" }
{ alignAboveContext = "Voice" }
{ alignAboveContext = "altoMusic" }
 
 
           \new Voice = "two" { \altoMusic }
>            \new Lyrics
> \with { alignAboveContext = "two" } {\lyricsto "two" \stanzaFirst }
>            \new Lyrics \lyricsto "two" \stanzaTwo
>

>
This just prints the "stanzaFirst" section below alto.
 
Assistance will be greatly appreciated,
 
David Olson
Los Angeles, California
 

>
> [ Puzzled_by_The_Marcellas.ly (4.9 Ko) ]

Puzzled_by_The_Marcellas.ly (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: alignAboveContext for alto

David Olson
Thank you!

Yes. This works perfectly!

With deep appreciation,

David



From: "Remy CLAVERIE" <[hidden email]>
To: "dadadharma @dslextreme.com" <[hidden email]>, "lilypond-user" <[hidden email]>
Sent: Monday, December 9, 2019 12:50:16 AM
Subject: re: alignAboveContext for alto

David,

 

If I correctly understand your problem, you need to have the Lyrics of the alto voice above the Staff after the eight bar.

I think the best solution is to use the 'alignAbovecontext' which sould be applied to a 'Staff' context. You will find a proposal attached to this email.

 

If you would like a more appropriate solution, tell me know.

 

Have a nice day,

 

Rémy

 

 

> Message du 08/12/19 20:42

> De : "David Olson" <[hidden email]>
> A : "lilypond-user" <[hidden email]>
> Copie à :
> Objet : alignAboveContext for alto
>
>
Dear Lilyponders,
 
Suppose I have a ChoirStaff with four voices,
 
and stanzas are sung by everybody, but distributed between the voices (less cluttered).
 
<<
>            \new Voice = "one" { \sopranoMusic }
>            \new Lyrics \lyricsto "one" \stanzaOne
>            \new Voice = "two" { \altoMusic }
>            \new Lyrics \lyricsto "two" \stanzaTwo
>        <<
>        >>
>            \new Voice = "three" { \tenorMusic }
>            \new Lyrics \lyricsto "two" \stanzaThree
>            \new  Voice = "four" { \bassMusic }
>    >>
>
However, soprano & tenor have 8 measures rest; ideally those lyrics (14 syllables) can be set with reference to the alto voice.
 
When compiling, the order matters:
"two" (alto) has been read when "three" (tenor) is compiled, so stanza three lyrics appear below tenor rests.
 
But "one" cannot reference "two", so no lyrics will appear if   
>            \new Voice = "one" { \sopranoMusic }
>            \new Lyrics \lyricsto "two" \stanzaOne
 
           Warning: cannot find Voice `two'
>
 
Alternatively:  alignAboveContext
 
(what is the "context"?)

>
{ alignAboveContext = "two" }
{ alignAboveContext = "Voice" }
{ alignAboveContext = "altoMusic" }
 
 
           \new Voice = "two" { \altoMusic }
>            \new Lyrics
> \with { alignAboveContext = "two" } {\lyricsto "two" \stanzaFirst }
>            \new Lyrics \lyricsto "two" \stanzaTwo
>

>
This just prints the "stanzaFirst" section below alto.
 
Assistance will be greatly appreciated,
 
David Olson
Los Angeles, California
 

>
> [ Puzzled_by_The_Marcellas.ly (4.9 Ko) ]