lilypond-user
[Top][All Lists]

## Re: Lyrics with slightly different rhythms

 From: Don Blaheta Subject: Re: Lyrics with slightly different rhythms Date: Tue, 15 Feb 2005 22:46:59 -0500 User-agent: Mutt/1.2.5.1i

```Responding to my own post, because I figured it out, and I hate it when
I search mail archives only to find a question sans answer:

Quoth Don Blaheta:
> I'm having a hard time getting LilyPond to do just what I want here.
> ... I have a song whose rhythm varies slightly to accommodate the
> lyrics in a second verse.
>
> [... various failed attempts ...]
> For my third attempt, I tried to play with the polyphony features, ...
> when I go ahead and actually name the contexts, the layout becomes
> tractable again, and the lyrics are in the right place, but we're back
> to clashing notecolumns and simply overprinting the other parts.

The key thing I missed here was that I invoked the polyphony stuff using
<< and >> but I never called \voiceOne for the main melody and \voiceTwo
(for downward stems) or \voiceThree (for upward stems) for the
alternate.  So something like

<< { a2 b2 } \\ { a4 b4 b b } >>

will generate error messages and overprint; but

<< { \voiceOne a2 b2 } \\ { \voiceThree a4 b4 b b } >>

will resolve the collisions appropriately.  (See below for a more
complete example.)

> Since I originally wanted the second part to have smaller note
> heads anyway, I thought maybe I'd just A) make them smaller and B)
> manually perturb the note heads.  But while I can use \set fontSize to
> solve the first problem, I haven't yet figured out what to poke to make
> the note head and stem all move together.  (I guess I could separately
> add the same offset to NoteHead and Stem, but that seems unsatisfactory.)

This may still be a problem if you want e.g. an a4 and an a8 to print
separate noteheads, and the solution is to override the force-hshift of
the whole NoteColumn.  A reduction of the whole solution, with alternate
rhythm, smaller notes, and offset noteheads, looks like this:
<<
\context Voice = "verse" {
\voiceOne
c4 c8 c   % etc... the "normal" music
}
\context Voice = "altverse" {
\set fontSize = #-3
\voiceTwo
s1 | s1 | ef4 ef2. |  %only set the different notes, skip the rest
s4*3 \once \override NoteColumn #'force-hshift = #1.1 f8 f8 |
%makes the first eighth note offset
}
>>
Then you can use the associatedVerse trick described in the manual in
order to line lyrics up with the altverse notes instead.

--