lilypond-devel
[Top][All Lists]
Advanced

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

Re: Design flaw in Rest_collision


From: Keith OHara
Subject: Re: Design flaw in Rest_collision
Date: Tue, 6 Nov 2012 03:51:21 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

mike <at> mikesolomon.org <mike <at> mikesolomon.org> writes:

> On 5 nov. 2012, at 11:15, Werner LEMBERG <wl <at> gnu.org> wrote:
> > 
> > So the answer is yes: The height (resp. the depth) is larger for
> > outside-staff glyphs.
> > 
> 
> So we officially have a circular dependency: in order to know the height 
> (for collision resolution) we need to know the extent, but in order to 
> know the extent (because of the glyph) we need to know the height.

Just to be clear, rest-collision.cc breaks the circular dependency by setting
positioning-done := true,  so the glyphs used to figure how far to move rests
are those for their natural staff-positions.  For example, in

  \new Staff <<
    \new Voice {\voiceOne r2 }
    \new Voice {\voiceThree r4 }
    \new Voice {\voiceTwo r4 } >>

the half-rest in the upper voice is moved so that its glyph /without/ the
ledger line clears the quarter-rest, with the motion rounded up to the next
staff-position.   (Potentially, the lower portion of the ledger of the 
half-rest could overlap the quarter-rest, if someone adjusts staff-space to
a borderline case.)

If the rest being moved has a ledger at its natural staff-position
  \with { \override StaffSymbol #'line-count = 3 } 
then the glyph with the ledger is used -- which is a tiny bit inconsistent.
Mike's suggestion to omit ledgers in Rest::generic_extent_callback() would
simplify things and make them more consistent.




reply via email to

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