lilypond-user
[Top][All Lists]
Advanced

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

Technique for aligning lyrics with voices in different staves --HOWTO


From: Eduardo Vieira
Subject: Technique for aligning lyrics with voices in different staves --HOWTO
Date: Sat, 27 Jan 2007 14:59:00 -0200
User-agent: Internet Messaging Program (IMP) 3.2.4

Dear list,

Sometimes the alignment of lyrics and notes can be very tricky for _any_ music
software.
Lilypond does a good job in solving the problem below. I'd like to hear comments
from users. For I know that there are different solutions.

Problem: How to cause the lyrics that belong to the tenor be in the same line as
the lyrics for the soprano?
One solution, that I've seen people do with programs like Finale is this:
- Create invible notes for the soprano staff and then assign the lyrics to it.
But, then the sound output can be affected. This aproach can be used in
Lilypond, too.

Another solution, which seems to be ideal to me, is shown is this example:

%%%Begin Code %%%
\version "2.11.13"
melody = \relative c' {
        a4 b c d g1
}

tenbass = \relative {
        a4 b c d \new Voice = "bs" { e4 e d e }
}
text = \lyricmode {
        Aaa Bee Cee Dee Ear
}

texalt = \lyricmode {
        \skip 1 good point here
}

\score {
  <<
        \new Staff  <<
        \new Voice = "one" {  \melody }
                    >>

        \new Staff = bass  <<
        \clef bass
        \new Voice = "two" { \tenbass }
        \new Lyrics = firstline \with { alignAboveContext = bass } \lyricsto 
"one"
\text
        \context Lyrics = firstline \lyricsto "bs" \texalt
                           >>

  >>
}
%%%End code

This solution looks simpler, but in version 2.10.2, the lyrics for the tenor
become leftaligned (a bug?):

%%Code
\version "2.7.32"
melody = \relative c' {

   a4 b c d g1
}

tenbass = \relative {
         a4 b c d \new Voice = "bs" {\voiceTwo e4 e d e }
}
text = \lyricmode {
   Aaa Bee Cee Dee Eee
}
texalt = \lyricmode { \skip 1 good point here }

\score{
        <<
 \new Staff  <<
      \new Voice = "one" {
           \melody
      }
   \new Lyrics = firstline \lyricsto "one" \text

   >>

 \new Staff  <<
 \clef bass
      \new Voice = "two" {
           \tenbass
      }

   \context Lyrics = firstline \lyricsto "bs" \texalt
   >>

>>
}
%%End

Interestingly, as I run the snippet above, I don't get from jEdit`s lilypond
console this full warning message:
[...]
Layout output to `C:silverg.ps'...
Converting to `C:silverg.pdf'...
`gs -q   -dDEVICEWIDTHPOINTS#595.28 -dDEVICEHEIGHTPOINTS#841.89 
-dCompatibilityLevel#1.4  -dNOPAUSE -dBATCH -r1200  -sDEVICE#pdfwrite
-sOutputFile#"C:silverg.pdf" -c .setpdfwrite -f "C:silverg.ps"' failed (1)
C:/Program Files/LilyPond/usr/bin/../share/lilypond/current/ly/init.ly:37:1:
error: GUILE signaled an error for the expression beginning here
#
 (if (or (pair? toplevel-scores) output-empty-score-list)
C:/Program Files/LilyPond/usr/bin/../share/lilypond/current/ly/init.ly:37:5:
error: syntax error, unexpected '(', expecting '='
#(if
     (or (pair? toplevel-scores) output-empty-score-list)
programming error: Parsed object should be dead: static scm_unused_struct*
Prob::mark_smob(scm_unused_struct*)
continuing, cross fingers
programming error: Parsed object should be dead: static scm_unused_struct*
Context_def::mark_smob(scm_unused_struct*)
continuing, cross fingers
programming error: Parsed object should be dead: static scm_unused_struct*
Grob::mark_smob(scm_unused_struct*)
continuing, cross fingers
error: failed files: "C:\\silverg\\leftedlyr2staves.ly"


%%%%%%


Have a good day!

Eduardo Vieira
___________________________________________________________________________________
Nas suas férias, de um telefone fixo ou do celular, faz um 21. A Embratel tem
tarifas muito baratas para você ligar para quem você gosta, contar como estão
as férias e economizar. Faz um 21 e aproveite.





reply via email to

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