lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: No solution for ...


From: Wilbert Berendsen
Subject: Re: No solution for ...
Date: Thu, 21 Jan 2010 12:57:31 +0100
User-agent: KMail/1.12.4 (Linux/2.6.31-17-generic; KDE/4.3.4; i686; ; )

Hi,

the main problem is that the lyrics are attached to the first music 
expression, creating an implicit Voice context. Then \\ is used which again 
creates a nested implicit Voice context, losing contact with the lyrics it 
seems.

Op donderdag 21 januari 2010 schreef David:

> Example 1 was rather horrid, since \addlyrics was entered in global
> context (I am surprised that you do get lyrics at all in a somewhat
> sensible manner).

Actually the \addlyrics attaches itself to the preceding music expression.

So:

StaffAVoiceA = \relative c' { c4  d  e  f | g  a  b  c | c  b  a  g | f  e  d  
c \bar "|." }

\addlyrics {
        "la" "le" "li" "lo" "lo" "li" "la" "le" "la"
        "le" "li" "le" "lo" "li" "la" "li"
}
\addlyrics {
        "ma" "me" "mi" "me" "mo" "me" "ma" "mi" "ma"
        "me" "mi" "me" "mo" "mi" "ma" "me"
}

Will assign everything to the StaffAVoiceA variable. But it will also create 
an implicit Voice context. I would rather avoid using addlyrics for generated 
scores.

Just do something like this, defining all input first and only then combining 
stuff into properly nested contexts:


StaffAVoiceA = \relative c' {
  c d e f g
}

StaffAVoiceB = \relative c' {
  a b c d e
}

LyricsVoiceAOne = \lyricmode {
  la lo la li la
}

LyricsVoiceATwo = \lyricmode {
  ma mi mo mi ma
}

StaffBVoiceA = \relative c {
  c c c c c
}

StaffA = \new Staff {
  \clef treble
  \time 4/4
  <<
    \new Voice = "voiceA" {
      \voiceOne
      \StaffAVoiceA
    }
    \new Voice = "voiceB" {
      \voiceTwo
      \StaffAVoiceB
    }
  >>
}

StaffB = \new Staff {
  \clef bass
  \time 4/4
  \StaffBVoiceA
}

LyricsAOne = \new Lyrics \lyricsto "voiceA" \LyricsVoiceAOne

LyricsATwo = \new Lyrics \lyricsto "voiceA" \LyricsVoiceATwo


\score {
  <<
    \StaffA
    \LyricsAOne
    \LyricsATwo
    \StaffB
  >>
}

    
  


best regards,
Wilbert Berendsen

-- 
Frescobaldi, LilyPond editor for KDE: http://www.frescobaldi.org/
Nederlands LilyPond forum: http://www.lilypondforum.nl/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]