lilypond-devel
[Top][All Lists]
Advanced

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

Re: Gets rid of length in the docs. (issue 4965053)


From: Mike Solomon
Subject: Re: Gets rid of length in the docs. (issue 4965053)
Date: Tue, 30 Aug 2011 17:28:15 +0200

On Aug 30, 2011, at 4:14 PM, Dmytro O. Redchuk wrote:

> On Tue 30 Aug 2011, 16:08 Mike Solomon wrote:
>> Currently, the stem stencil function is doable in Scheme, which means that
>> the result from 2.15.8 can be achieved via :
> Thank you for your work! I've "bookmarked" this hint/thread, of course.
> 
> I am still wondering, is stem the single grob so far, which 'Y-extent property
> "overrides" its appearance? Or other grobs will be (or already are) changed,
> too?
> 

Hey Dmytro,

It could very well be - nothing comes to mind that works this way other than 
stems.  The more I think about it, the more I realize that Y-extent is more 
meant to be the vertical portion of a bounding box and, thus, can greatly 
overshoot or undershoot the actual grob.

The most computation-friendly way to decouple Y-extent from the stencil without 
having to do calculations twice is to do what is done in spanners like 
TupletBracket and Beam - namely, use a positions property to hold an interval 
of y positions.  stem::height and its pure equivalent would simply pass back 
these values, and stem::print would use them to print the stencil.  Then, an 
override to Y-extent would not besmirch the stencil.

Alternatively, to avoid the addition of a property, the stem stencil function 
could make a call to Stem::internal_height instead of making a call to extent, 
although this would duplicate a long series of calculations.

Both of these are 15 minutes of work and, hopefully, if it becomes pressing 
during my absence, someone can implement them.  If anyone foresees needing to 
implement this during my absence and does not understand what I'm talking about 
above and/or would like more explanation, don't hesitate to get in touch!

Cheers,
MS





reply via email to

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