Hello An obscure bug in Lilypond.
Notes whose length is unspecified take the length of the note or rest before. This should apply to compressible rests but if the rest before is the last of a number of compressible rests (R * ) the following note is wrongly given the length of all the preceding bars rest, not just the last. This sometimes creates extra blank bars and makes the bar numbering wrong. The attached test.ly (sorry it is so long) demonstrates. It is based on the first few bars of a piece which used the Test II situation. It doesn't show in a multipart score and is easily missed in proof reading if normal bar numbering at the beginning of the line is used. As you can imagine, it caused some confusion during rehearsal! Lilypond is a superb piece of software. It has taken me some time to get to know it, and there are still many features that are mysterious, but I have produced many beautiful scores and parts with it. Many thanks for your work in creating it. With best wishes Edward Evans --
% Test to show R interactions %Normally when a note length is not specified it takes the length %of the preceeding rest %When compressible rests (R*) are followed by a note %whose length is not specified the note gets the total length of the %preceeding rests. This produces extra blank bars which may be %invisible but which still spoil the bar numbering \version "2.18.0" print-all-headers = #"t" #(set-default-paper-size "a4") #(set-global-staff-size 21) \header { title = "Test of R* followed by undefined note length" } testI = {\time 4/4 \override Score.BarNumber.break-visibility = ##(#t #t #t) R1*2 c'~ c'8 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 } \score { \new Staff = "test1" << \new Voice = "testI" { \testI } >> \header { piece = "Test I. Wrong, extra blank bar and bar numbering doesn't match music" } } testII = { \time 4/4 \override Score.BarNumber.break-visibility = ##(#t #t #t) \compressFullBarRests R1*2 c'~ c'8 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 } \score { \new Staff = "test1I" << \new Voice = "testII" { \testII } >> \header { piece = "Test II. Still wrong, no extra bar but bar numbering wrong" } } testIII = { \time 4/4 \override Score.BarNumber.break-visibility = ##(#t #t #t) r1 r1 c'~ c'8 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 } \score { \new Staff = "testIII" << \new Voice = "testIII" { \testIII } >> \header { piece = "Test III. Correct, noncompressible bars' rest, undefined note length" } } testIV = { \time 4/4 \override Score.BarNumber.break-visibility = ##(#t #t #t) R1*2 c'1~ c'8 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 c'16 } \score { \new Staff = "test1V" << \new Voice = "testIV" { \testIV } >> \header { piece = "Test IV. Correct, compressible rests with semibreve length defined" } }
test.pdf
Description: Adobe PDF document
_______________________________________________ bug-lilypond mailing list bug-lilypond@gnu.org https://lists.gnu.org/mailman/listinfo/bug-lilypond