lilypond-user
[Top][All Lists]
Advanced

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

Typesetting bug(?) - polyphony + lyrics + \times 2/3 + \oneVoice = break


From: Peter Wright
Subject: Typesetting bug(?) - polyphony + lyrics + \times 2/3 + \oneVoice = breakage
Date: Sun, 10 Jul 2011 22:15:01 +1000
User-agent: Mutt/1.5.20 (2009-06-14)

Hi all,

I've run into a problem typesetting a choral piece, and was wondering
if anyone could either confirm whether this is (or isn't) a bug in
Lilypond. I'd also very much appreciate it if anyone could suggest a
better workaround than the one I'm currently using. :-)

I've generated a minimal example (see below) that demonstrates the
problem. The key bit is marked with: 'Uncomment "three" to break.'

Environment: Lilypond 2.14.1, built from source, running on Linux
(Debian Squeeze). Note: the problem also appears on the default
Lilypond 2.12.3 package for Debian Squeeze - I upgraded to 2.14.1 just
to see if this bug might've been fixed.


Background: I'm working on a SSAATTBB choral piece, but can
demonstrate the problem with just a sop1+sop2 in a single staff.
Slightly over half of the piece involves the two parts singing in
unison, so I'm trying to get lyrics both above and below the stave
when they're split, and only below the staff when they're unison.

That part turned out to be reasonably straightforward - but when I
"merge" (with "\oneVoice") two parts immediately after a "\times 2/3"
section, I end up with this message:

  programming error: bounds of this piece aren't breakable.

...and the bar after the "\times 2/3" section renders as empty (as in
the example below) or with some other weirdness - eg. two consecutive
notes render as a single chord. (You can see that happen by adding
another two notes to the end of the example.)

With the "three" commented out, it renders like so - without the word
"three" in the sopranoOne lyrics (above the staff):

http://flooble.net/~pete/bugdemo--unbroken.png

With the "three" uncommented, I get the following as part of the build
output:

  bugdemo.ly:28:10: programming error: bounds of this piece aren't breakable.
    One two
            three four.

...and the resultant PDF output looks like this - the word "three" now
appears in the sopranoOne lyrics above the staff, but the second bar
renders as empty:

http://flooble.net/~pete/bugdemo--broken.png


Currently I'm using a very unsatisfactory workaround which is to just
leave out the word "three". I also briefly considered replacing:

  One two three

with:

  One "two three"

...which does work around the problem, sort of, and doesn't look *too*
bad, but it's a really horrible kludge that makes me feel sick :-).

Any alternative suggestions would be much appreciated.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.14.1"
global = {
  \key c \major
  \time 2/4
}
sopranoNotes = \relative c'' {
  \global
  <<
    {
      \voiceTwo
      \times 2/3 { a4 a a }
    }
    \new Voice = "sopranoOneVoice"
    {
      \voiceOne
      \times 2/3 { c4 c d }
    }
    \new Lyrics \with {
      alignAboveContext = "sopranoStaff"
    } \lyricsto "sopranoOneVoice" {
      %% Uncomment "three" to break.
      One two %three
    }
  >> \oneVoice |
  b2
}
sopranoWords = \lyricmode {
  One two three four.
}
\score {
  <<
    \new Staff = "sopranoStaff"
    \new Voice = "sopranoVoice" \sopranoNotes
    \new Lyrics \lyricsto "sopranoVoice" \sopranoWords
  >>
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


Thanks,

Pete.
-- 
Klingon programmer sayings:
7. "What is this talk of 'release'? Klingons do not make software
'releases.' Our software 'escapes' leaving a bloody trail of
designers and quality assurance people in its wake."



reply via email to

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