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: David Kastrup
Subject: Re: Design flaw in Rest_collision
Date: Mon, 05 Nov 2012 09:26:13 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.50 (gnu/linux)

"address@hidden" <address@hidden> writes:

> On 5 nov. 2012, at 09:19, David Kastrup <address@hidden> wrote:
>
>> "address@hidden" <address@hidden> writes:
>> 
>>> On 5 nov. 2012, at 06:51, address@hidden wrote:
>>> 
>>>> 1) rest->extent (common, Y_AXIS)
>>>> 2) Rest::height
>>>> 3) Rest::generic_extent_callback
>>>> 4) Rest::brew_internal_stencil
>>>> 5) Rest::glyph_name
>>>> 6) Staff_symbol_referencer::get_position
>>>> 7) rest->relative_coordinate (common, Y_AXIS);
>>>> 8) Rest_collision::force_shift_callback_rest
>>>> 9) Rest_collision::calc_positioning_done
>>>> 10) rest->extent (common, Y_AXIS)
>>> 
>>> A better way to describe it just to wrap heads around it, with the
>>> circular dependency underlined:
>>> 
>>> Rest extents depend on their stencil.  This stencil depends on
>>> placement on/off the staff.  Placement may depend on the placement of
>>> other rests.  To calculate the placement of other rests, we need to
>>> shift all of them.  The amount of space one must shift depends on the
>>> extent of the rest.
>> 
>> The co-dependent shifts should likely be done by Note_column.  About the
>> rest dimensions used for that: I'd likely just pick the on-staff glyph,
>> as the off-staff glyphs just differ by ledger lines IIRC.
>> 
>> Keep in mind that this advice is not based on any actual knowledge about
>> the backend, so it is entirely possible that it is a bunch of nonsense.
>> 
>
> We're on the same wavelength - this is how rest pure height is
> calculated.  That's what I've done for now in the code I'm working on
> to be able to keep working.  It's ugly, tho, as it requires an
> exception for rests (rest ? use pure height : use height).

Would the problem not be the same with notes? They depend on things like
beam scoring, and also have the ledger line situation.

-- 
David Kastrup



reply via email to

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