Export to GitHub

lilypond - issue #487

stems of beamed notes too long before staff change


Posted on Oct 8, 2007 by Happy Elephant

%{ When changing staffs at a rest, the stems of the previous notes are too long. This problem is visible in the first score. In the second score the staff change is put after the rest, in this case the stems have the correct length. %}

\version "2.11.34" % git as of 7 okt 2007 \paper { ragged-right = ##t } \score { << \new Staff=rh \relative c'' { \time 12/8 \voiceTwo r8 b, e a e b \change Staff=lh \voiceOne r e, g d' g, e } \new Staff=lh \relative c {\clef bass \voiceTwo c1. } >> }

\score { << \new Staff=rh \relative c'' { \time 12/8 \voiceTwo r8 b, e a e b r \change Staff=lh \voiceOne e, g d' g, e } \new Staff=lh \relative c {\clef bass \voiceTwo c1. } >> }

Attachments

Comment #1

Posted on Oct 25, 2007 by Happy Bird

(No comment was entered for this change.)

Comment #2

Posted on Aug 4, 2008 by Quick Cat

Joe, ping?

Comment #3

Posted on Aug 4, 2008 by Happy Bird

Sorry, I'd forgotten about this one. I had a look some time ago, but I never tracked it down. The problem is that when the \change comes early, the beam has a different VerticalAxisGroup as its parent (because the voice changes staff before the beam is finished). The differences in formatting occur somewhere within with beam quanting step, which is where I gave up because it was filled with unfamiliar code. I'll have another look this week.

Unlike most cross-staff beaming problems, this doesn't seem to be caused by dependency issues, but rather by something more subtle.

Comment #4

Posted on Aug 4, 2008 by Happy Bird

Actually, having looked at the quanting code, I'd like to lower the priority. The problem is quite fundamental: the quanting code assumes that there are an infinite number of staff lines at equal distances from each other. This fails to be true in the multi-staff case (and even for a single staff if the beam is outside the staff or if the staff is non-standard).

Of course, another solution would be to somehow make sure that the beam is finished in the correct staff context, but that seems tricky too...

Comment #5

Posted on Oct 1, 2008 by Helpful Bear

A possibly related problem is in Issue 690.

Comment #6

Posted on May 31, 2010 by Swift Bear

%{ Still valid as of 2.13.22. A workaround is to use a temporary new Voice context: %}

\version "2.13.22" \paper { ragged-right = ##t } \score { << \new Staff=rh \relative c'' { \time 12/8 \voiceTwo r8 b, e \new Voice { \voiceTwo a e b } \change Staff=lh \voiceOne r e, g d' g, e } \new Staff=lh \relative c {\clef bass \voiceTwo c1. }

}

Attachments

Comment #7

Posted on May 31, 2011 by Helpful Kangaroo

Issue 1667 has been merged into this issue.

Comment #8

Posted on May 31, 2011 by Helpful Kangaroo

http://codereview.appspot.com/4564041

Comment #9

Posted on Jun 4, 2011 by Happy Bird

(No comment was entered for this change.)

Comment #10

Posted on Jun 4, 2011 by Happy Rhino

(No comment was entered for this change.)

Comment #11

Posted on Jun 5, 2011 by Quick Ox

The fix is in 0c5927 and bef241

Comment #12

Posted on Jul 4, 2011 by Grumpy Panda

Backported

Status: Verified

Labels:
Type-Defect Priority-Low fixed_2_15_0 fixed_2_14_2