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"
      }
}

Attachment: test.pdf
Description: Adobe PDF document

_______________________________________________
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond

Reply via email to