Another Stanza problem

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

Another Stanza problem

uunail

Hello forum,

using the satb template from the manual I created the following file which is an old choral.

The problem with this arrangement is that each voice has different lyrics.

Thus I want to show the lyrics for two stanzas directly connected to each voice. The first stanza works perfect. However if I attach the second stanza to the voice I get a junking event: `LyricEvent' warning and the output is incorrectly showing again the lyrics for the first stanza with the number 2 in front.

Here is my .ly file. The problem line is marked.

\version "2.6.4"
#(set-global-staff-size 18)
\header {
        title = "Vom Himmel hoch da komm ich her"
        arranger = "Johann Eccard, 1553-1611"
        footer = "Martin Luther, 1483-1546 gekürzt"
}

\include "deutsch.ly"
global = {
\key f \major
\time 2/2
}

sopIMusic =  \context  Voice = "sopranI" {
        \dynamicUp \stemUp \slurUp
        \set Staff.instrument="Soprano I"
        \set Staff.midiInstrument="choir aahs"
        \clef treble
        \relative c' {
                \partial 4 f'4
                e2 d
                e c
                d e
                f r4 f4
                f2 c
                c a
                c b
                a r4 a4
                d2 d
                c e
                f d
                c r4 f4
                e2 d
                c c
                b4 (a) g2
                f1
                }
        \bar "|."
        }

sopIIMusic = \context  Voice = "sopranII" {
        \dynamicDown \stemDown \slurDown
        \set Staff.instrument="Soprano II"
        \set Staff.midiInstrument="choir aahs"
        \clef treble
        \relative c' {
                \partial 4 a'4
                c2 h
                c4 g a2.
                h4 c c
                c2 a4 b2 (a8 g a2)
                g f4 f
                e a2 g4
                a a c c
                b1
                g2 a4 c2
                (h8 a h2)
                c r
                r4 c2 b4
                a2 g
                f4 f2 e4
                f1
                }
        \bar "|."
        }

altoMusic = \context  Voice = "alt" {
        \dynamicUp \stemUp \slurUp
        \set Staff.instrument="Alt"
        \set Staff.midiInstrument="choir aahs"
        \clef treble
        \relative c' {
                \partial 4 f4
                g2. g4
                g2 f2.
                d4 g2
                a f
                f1
                c2 c2.
                f4
                d
                e
                f2. e4
                g g f2
                r2 e
                a4 a g2
                e4 c2 h4
                c2 r4 g'2
                f e4
                d c c4. c8
                c1
                }
        \bar "|."
        }

tenorMusic = \context Voice = "tenors" {
        \dynamicUp \stemUp \slurUp
        \set Staff.instrument="Tenor"
        \set Staff.midiInstrument="choir aahs"
        \clef bass
        \relative c' {
                \partial 4 c4
                c2 d
                c4 c2 a4
                f2 g4 c
                c a c d
                c2. f,4
                g2 r
                r r4 g
                d' d c2
                d2. f2
                (e8 d c4) c
                d1
                r4 a g f
                g4. (e8 f4) g
                a4. (b8 c2)
                f,8 (g a f g2)
                a1
                }
        \bar "|."
        }

bassMusic = \context Voice = "basses" {
        \dynamicDown \stemDown \slurDown
        \set Staff.instrument="Bass"
        \set Staff.midiInstrument="choir aahs"
        \clef bass
        \relative c {
                \partial 4 f4
                c2 g'
                c, f
                d c
                f4 f f d
                f1
                e2 f4. (g8
                a4) f g2
                r4 d a' a
                g2 b
                c4. (b8 a4. g8
                f2) g
                c,4 f e d
                c2 r
                r r4 c
                d8 (e f4) e2
                f,1
        \bar "|."
               
        }
}

SopIVerseI = \lyricmode {
        \set stanza = "1." Vom Him -- mel hoch da komm ich her, ich bring euch gu -- te neu -- e Mär,
                                der gu -- ten Mär bring ich so viel, da -- von ich singn und sa -- gen will.

}
SopIVerseII = \lyricmode {
        \set stanza = "2." Euch ist ein Kind -- lein heut ge -- born von ei -- ner Jung -- frau aus -- er -- korn,
                                ein Kin -- de -- lein so zart und fein, das soll euer Freud und Won --ne sein.

}
 
SopIVerseIII = \lyricmode {
        \set stanza = "3." Es ist der Herr Christ, un -- ser Gott, der will euch führn aus al -- ler Not,
                                er will euer Hei -- land sel -- ber sein, von al -- len Sün -- den ma -- chen rein.

}

SopIIVerseI = \lyricmode {
        \set stanza = "1." Vom Him -- mel hoch da komm ich her, ich bring euch gu -- te neu -- e Mär, neu -- e Mär,
                                der gu -- ten Mär bring ich so viel da -- von ich singn und sa -- gen will.

}

AltVerseI = \lyricmode {
        \set stanza = "1." Vom Him -- mel hoch da komm ich her, ich bring euch gu -- te neu -- e Mär,
                                der gu -- ten Mär, der gu -- ten Mär bring ich so viel da -- von ich singn und sa -- gen will.

}

BassVerseI = \lyricmode {
        \set stanza = "1." Vom Him -- mel hoch da komm ich her, ich bring euch gu -- te neu -- e Mär,
                                der gu -- ten Mär bring ich___ so viel, da -- von ich singn und sa -- gen will.

}
\score {
\context ChoirStaff <<
        \override Score.RemoveEmptyVerticalGroup #'remove-first = ##t

        \context Lyrics = sopranI { s1  }
        \context Staff = sopranI <<
              \context Voice =
                        sopranI { \voiceOne << \global \sopIMusic >> }
                \context Voice =
                        sopranII { \voiceTwo << \global \sopIIMusic >> }
        >>
        \context Lyrics = sopranII { s1 }
        \context Staff = alt { \global \altoMusic }
        \context Lyrics =alt { s1 }
        \context Lyrics = tenors { s1 }
        \context Staff = men <<
                \clef bass
                \context Voice =
                        tenors { \voiceOne <<\global \tenorMusic >> }
                \context Voice =
                        basses { \voiceTwo <<\global \bassMusic >> }
        >>
        \context Lyrics = basses { s1 }
        \context Lyrics = sopranI \lyricsto sopranI   \SopIVerseI
% This is the problem line
        \context Lyrics = sopranI \lyricsto sopranI   \SopIVerseII
%
        \context Lyrics = sopranII \lyricsto sopranII \SopIIVerseI
        \context Lyrics = alt \lyricsto alt \AltVerseI
        \context Lyrics = tenors \lyricsto tenors \SopIVerseI
        \context Lyrics = basses \lyricsto basses \BassVerseI
        >>

\layout {
   \context {
      % a little smaller so lyrics
      % can be closer to the staff
      \Staff minimumVerticalExtent = #'(-3 . 3)
   }
}
        \midi { \tempo 2  = 96 }

}


I hope someone can help me.

Regards

Uwe Nagel
Reply | Threaded
Open this post in threaded view
|

Re: Another Stanza problem

Mats Bengtsson-6
If you specify the same name of two different Lyrics contexts, they will
be treated as one and the same. So, you have to give a new name to the
Lyrics context used for the second verse. Note that you also have to declare
it first above the soprano stave if you want it placed there:

\score {
\context ChoirStaff <<
        \override Score.RemoveEmptyVerticalGroup #'remove-first = ##t

        \context Lyrics = sopranI { s1  }
        \context Lyrics = sopranIverseII { s1  }
        \context Staff = sopranI <<
                      \context Voice =
                        sopranI { \voiceOne << \global \sopIMusic >> }
                \context Voice =
                        sopranII { \voiceTwo << \global \sopIIMusic >> }
        >>
        \context Lyrics = sopranII { s1 }
        \context Staff = alt { \global \altoMusic }
        \context Lyrics =alt { s1 }
        \context Lyrics = tenors { s1 }
        \context Staff = men <<
                \clef bass
                \context Voice =
                        tenors { \voiceOne <<\global \tenorMusic >> }
                \context Voice =
                        basses { \voiceTwo <<\global \bassMusic >> }
        >>
        \context Lyrics = basses { s1 }
        \context Lyrics = sopranI \lyricsto sopranI   \SopIVerseI
% This is the problem line
        \context Lyrics = sopranIverseII \lyricsto sopranI   \SopIVerseII
%
        \context Lyrics = sopranII \lyricsto sopranII \SopIIVerseI
        \context Lyrics = alt \lyricsto alt \AltVerseI
        \context Lyrics = tenors \lyricsto tenors \SopIVerseI
        \context Lyrics = basses \lyricsto basses \BassVerseI
        >>

\layout {
   \context {
      % a little smaller so lyrics
      % can be closer to the staff
      \Staff minimumVerticalExtent = #'(-3 . 3)
   }
}
        \midi { \tempo 2  = 96 }

}


It's actually possible to simplify this even further, using the new
alignAbove and
alignBelow properties introduced in  version 2.6:

\score {
\context ChoirStaff <<
        \override Score.RemoveEmptyVerticalGroup #'remove-first = ##t

        \context Staff = sopran <<
                      \context Voice =
                        sopranI { \voiceOne << \global \sopIMusic >> }
                \context Voice =
                        sopranII { \voiceTwo << \global \sopIIMusic >> }
        >>
        \new Lyrics \lyricsto sopranI {\set alignAboveContext =
#"sopran" \SopIVerseI }
        \new Lyrics \lyricsto sopranI {\set alignAboveContext =
#"sopran" \SopIVerseII }
        \new Lyrics \lyricsto sopranII \SopIIVerseI
        \context Staff = alt { \global \altoMusic }
        \new Lyrics \lyricsto alt {\set alignAboveContext = #"alt"
\AltVerseI }
        \context Staff = men <<
                \clef bass
                \context Voice =
                        tenors { \voiceOne <<\global \tenorMusic >> }
                \context Voice =
                        basses { \voiceTwo <<\global \bassMusic >> }
        >>
        \new Lyrics \lyricsto tenors {\set alignAboveContext = #"men"
\SopIVerseI }
        \new Lyrics \lyricsto basses \BassVerseI
        >>
  ...
}


   /Mats


uunail (sent by Nabble.com) wrote:

>
> Hello forum,
>
> using the satb template from the manual I created the following file
> which is an old choral.
>
> The problem with this arrangement is that each voice has different
> lyrics.
>
> Thus I want to show the lyrics for two stanzas directly connected to
> each voice. The first stanza works perfect. However if I attach the
> second stanza to the voice I get a junking event: `LyricEvent' warning
> and the output is incorrectly showing again the lyrics for the first
> stanza with the number 2 in front.
>
> Here is my .ly file. The problem line is marked.
>
> \version "2.6.4"
> #(set-global-staff-size 18)
> \header {
>         title = "Vom Himmel hoch da komm ich her"
>         arranger = "Johann Eccard, 1553-1611"
>         footer = "Martin Luther, 1483-1546 gekürzt"
> }
>
> \include "deutsch.ly"
> global = {
> \key f \major
> \time 2/2
> }
>
> sopIMusic =  \context  Voice = "sopranI" {
>         \dynamicUp \stemUp \slurUp
>         \set Staff.instrument="Soprano I"
>         \set Staff.midiInstrument="choir aahs"
>         \clef treble
>         \relative c' {
>                 \partial 4 f'4
>                 e2 d
>                 e c
>                 d e
>                 f r4 f4
>                 f2 c
>                 c a
>                 c b
>                 a r4 a4
>                 d2 d
>                 c e
>                 f d
>                 c r4 f4
>                 e2 d
>                 c c
>                 b4 (a) g2
>                 f1
>                 }
>         \bar "|."
>         }
>
> sopIIMusic = \context  Voice = "sopranII" {
>         \dynamicDown \stemDown \slurDown
>         \set Staff.instrument="Soprano II"
>         \set Staff.midiInstrument="choir aahs"
>         \clef treble
>         \relative c' {
>                 \partial 4 a'4
>                 c2 h
>                 c4 g a2.
>                 h4 c c
>                 c2 a4 b2 (a8 g a2)
>                 g f4 f
>                 e a2 g4
>                 a a c c
>                 b1
>                 g2 a4 c2
>                 (h8 a h2)
>                 c r
>                 r4 c2 b4
>                 a2 g
>                 f4 f2 e4
>                 f1
>                 }
>         \bar "|."
>         }
>
> altoMusic = \context  Voice = "alt" {
>         \dynamicUp \stemUp \slurUp
>         \set Staff.instrument="Alt"
>         \set Staff.midiInstrument="choir aahs"
>         \clef treble
>         \relative c' {
>                 \partial 4 f4
>                 g2. g4
>                 g2 f2.
>                 d4 g2
>                 a f
>                 f1
>                 c2 c2.
>                 f4
>                 d
>                 e
>                 f2. e4
>                 g g f2
>                 r2 e
>                 a4 a g2
>                 e4 c2 h4
>                 c2 r4 g'2
>                 f e4
>                 d c c4. c8
>                 c1
>                 }
>         \bar "|."
>         }
>
> tenorMusic = \context Voice = "tenors" {
>         \dynamicUp \stemUp \slurUp
>         \set Staff.instrument="Tenor"
>         \set Staff.midiInstrument="choir aahs"
>         \clef bass
>         \relative c' {
>                 \partial 4 c4
>                 c2 d
>                 c4 c2 a4
>                 f2 g4 c
>                 c a c d
>                 c2. f,4
>                 g2 r
>                 r r4 g
>                 d' d c2
>                 d2. f2
>                 (e8 d c4) c
>                 d1
>                 r4 a g f
>                 g4. (e8 f4) g
>                 a4. (b8 c2)
>                 f,8 (g a f g2)
>                 a1
>                 }
>         \bar "|."
>         }
>
> bassMusic = \context Voice = "basses" {
>         \dynamicDown \stemDown \slurDown
>         \set Staff.instrument="Bass"
>         \set Staff.midiInstrument="choir aahs"
>         \clef bass
>         \relative c {
>                 \partial 4 f4
>                 c2 g'
>                 c, f
>                 d c
>                 f4 f f d
>                 f1
>                 e2 f4. (g8
>                 a4) f g2
>                 r4 d a' a
>                 g2 b
>                 c4. (b8 a4. g8
>                 f2) g
>                 c,4 f e d
>                 c2 r
>                 r r4 c
>                 d8 (e f4) e2
>                 f,1
>         \bar "|."
>                
>         }
> }
>
> SopIVerseI = \lyricmode {
>         \set stanza = "1." Vom Him -- mel hoch da komm ich her, ich
> bring euch gu -- te neu -- e Mär,
>                                 der gu -- ten Mär bring ich so viel,
> da -- von ich singn und sa -- gen will.
>
> }
> SopIVerseII = \lyricmode {
>         \set stanza = "2." Euch ist ein Kind -- lein heut ge -- born
> von ei -- ner Jung -- frau aus -- er -- korn,
>                                 ein Kin -- de -- lein so zart und
> fein, das soll euer Freud und Won --ne sein.
>
> }
>  
> SopIVerseIII = \lyricmode {
>         \set stanza = "3." Es ist der Herr Christ, un -- ser Gott, der
> will euch führn aus al -- ler Not,
>                                 er will euer Hei -- land sel -- ber
> sein, von al -- len Sün -- den ma -- chen rein.
>
> }
>
> SopIIVerseI = \lyricmode {
>         \set stanza = "1." Vom Him -- mel hoch da komm ich her, ich
> bring euch gu -- te neu -- e Mär, neu -- e Mär,
>                                 der gu -- ten Mär bring ich so viel da
> -- von ich singn und sa -- gen will.
>
> }
>
> AltVerseI = \lyricmode {
>         \set stanza = "1." Vom Him -- mel hoch da komm ich her, ich
> bring euch gu -- te neu -- e Mär,
>                                 der gu -- ten Mär, der gu -- ten Mär
> bring ich so viel da -- von ich singn und sa -- gen will.
>
> }
>
> BassVerseI = \lyricmode {
>         \set stanza = "1." Vom Him -- mel hoch da komm ich her, ich
> bring euch gu -- te neu -- e Mär,
>                                 der gu -- ten Mär bring ich___ so
> viel, da -- von ich singn und sa -- gen will.
>
> }
> \score {
> \context ChoirStaff <<
>         \override Score.RemoveEmptyVerticalGroup #'remove-first = ##t
>
>         \context Lyrics = sopranI { s1  }
>         \context Staff = sopranI <<
>                       \context Voice =
>                         sopranI { \voiceOne << \global \sopIMusic >> }
>                 \context Voice =
>                         sopranII { \voiceTwo << \global \sopIIMusic >> }
>         >>
>         \context Lyrics = sopranII { s1 }
>         \context Staff = alt { \global \altoMusic }
>         \context Lyrics =alt { s1 }
>         \context Lyrics = tenors { s1 }
>         \context Staff = men <<
>                 \clef bass
>                 \context Voice =
>                         tenors { \voiceOne <<\global \tenorMusic >> }
>                 \context Voice =
>                         basses { \voiceTwo <<\global \bassMusic >> }
>         >>
>         \context Lyrics = basses { s1 }
>         \context Lyrics = sopranI \lyricsto sopranI   \SopIVerseI
> % This is the problem line
>         \context Lyrics = sopranI \lyricsto sopranI   \SopIVerseII
> %
>         \context Lyrics = sopranII \lyricsto sopranII \SopIIVerseI
>         \context Lyrics = alt \lyricsto alt \AltVerseI
>         \context Lyrics = tenors \lyricsto tenors \SopIVerseI
>         \context Lyrics = basses \lyricsto basses \BassVerseI
>         >>
>
> \layout {
>    \context {
>       % a little smaller so lyrics
>       % can be closer to the staff
>       \Staff minimumVerticalExtent = #'(-3 . 3)
>    }
> }
>         \midi { \tempo 2  = 96 }
>
> }
>
>
> I hope someone can help me.
>
> Regards
>
> Uwe Nagel
> ------------------------------------------------------------------------
> Sent from the Gnu - Lilypond - User
> <http://www.nabble.com/Gnu---Lilypond---User-f1722.html> forum at
> Nabble.com:
> Another Stanza problem
> <http://www.nabble.com/Another-Stanza-problem-t780255.html#a2032838>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>lilypond-user mailing list
>[hidden email]
>http://lists.gnu.org/mailman/listinfo/lilypond-user
>  
>

--
=============================================
        Mats Bengtsson
        Signal Processing
        Signals, Sensors and Systems
        Royal Institute of Technology
        SE-100 44  STOCKHOLM
        Sweden
        Phone: (+46) 8 790 8463
        Fax:   (+46) 8 790 7260
        Email: [hidden email]
        WWW: http://www.s3.kth.se/~mabe
=============================================



_______________________________________________
lilypond-user mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Another Stanza problem

uunail
Thank you very much for your help. With the "alignAboveContext" I now managed to set the piece with three stanzas attached to five voices in three staves (one for sopranoI and sopranoII, one for alto and one for tenor and bass).

This means that I have six lines of lyrics between the alto- and the mens- staff which makes it difficult to read and allocate to the voice.

Thus I wanted to have a blank line as a separator between the alto- and tenor- lyrics. The workaround I'm using is to put another stanza written in white (= invisible) at this place. Is there another, perhaps more elegant way to achieve that?

Uwe
Reply | Threaded
Open this post in threaded view
|

Re: Another Stanza problem

Mats Bengtsson-6


uunail (sent by Nabble.com) wrote:

>
> Thus I wanted to have a blank line as a separator between the alto-
> and tenor- lyrics. The workaround I'm using is to put another stanza
> written in white (= invisible) at this place. Is there another,
> perhaps more elegant way to achieve that?


Try something like

\score{
<<
  ...
  \lyricsto "alto" \new Lyrics \with {minimumVerticalExtent = #'(-4.0 .
2.4) } \altolyricsIII
  \lyricsto "tenor" \new Lyrics \tenorlyricsI
  ...
 >>
}

See  "10.1.6 Vertical spacing" in the manual for more details. The default
minimumVerticalExtent for Lyrics is (-1.2 . 2.4).

    /Mats


_______________________________________________
lilypond-user mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-user