On Fri, Feb 15, 2008 at 1:46 AM, Mats Bengtsson <[EMAIL PROTECTED]>
wrote:

> Quoting Trevor Ba?a <[EMAIL PROTECTED]>:
>
> > At the risk of belaboring the point, I'm having trouble understanding
> *why*
> > this works. Here's an absolutely minimal example:
> >
> >
> > %%% TURNING ON Y-EXTENT %%%
> >
> > \version "2.11.39"
> >
> > \layout { ragged-right = ##t }
> >
> > \new Staff {
> >   \override DynamicLineSpanner #'staff-padding = #4
> >   c'2 \p
> >   c'2 \f
> > }
> >
> > \new Staff {
> >   \override DynamicLineSpanner #'staff-padding = #4
> >   \override DynamicLineSpanner #'Y-extent = #'(0 . 0)
> >   c'2 \p
> >   c'2 \f
> > }
> >
> >
> > %%% END %%%
> >
> >
> > In the first case we get usual (top-aligned) behavior; in the second
> case we
> > get this excellent (center-aligned) behavior. The only difference is
> that
> > the second example overrides DynamicLineSpanner #'Y-extent. But notice
> that
> > the actual pair of values passed to DynamicLineSpanner #'Y-extent
> doesn't
> > seem to matter because #'(0 . 0) and #'(1 . -1) and in fact #'(10 . -10)
> all
> > provide this nifty center alignment.
> >
> > So what's going on here? It seems that merely "turning on"
> > DynamicLineSpanner #'Y-extent is enough to induce vertical center
> alignment,
> > regardless of the actual value. Is this a good way to conceptualize
> what's
> > happening here? If so, that's quite an implicit (hidden, even) principle
> ...
> > ie, that turning on Y-extent switches the origin of alignment from top
> to
> > center.
>
> To understand why, you have to understand what the default setting
> of DynamicLineSpanner #'Y-extent does, namely to calculate the actual
> extent of the included dynamics indications. Then, once this has done,
> the placement of the full DynamicLineSpanner is determined using the
> padding and staff-padding properties, that specify the distance from
> the upper edge of the full DynamicLineSpanner to the closest note and/or
> staff. When you instead specify a fixed value of Y-extent, LilyPond
> won't care about the actual extent of the dynamics and align it as if
> the top was at, say, 1 (if you set #'Y-extent = #'(-1 . 1)) relative to
> the internal reference point of the DynamicLineSpanner. To complete the
> picture, every element included in the DynamicLineSpanner, such as a
> Hairpin or DynamicText makes its own alignment relative to the
> reference point of the DynamicLineSpanner.



Excellent. Thank you so much for the  explanation. And I think what I was
missing is the basic concept that turning Y-extent on is the point at which
we cause Lily to ignore the actual, graphic dimensions (in the y direction)
of various objects. Makes perfect sense.

Thanks again, Mats.



-- 
Trevor Bača
[EMAIL PROTECTED]
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to