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." _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user