Trevor Bača wrote:
>
> 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.
Perhaps the main point is that you don't "turn on the Y-extent", rather
you turn
off the exact calculation of the Y-extent that's done by default.''
Good point. I suppose there's always some type of calculation done to determine the y extent of dynamics (and all other printing grobs, for that matter). By default the calculation is a, well, default calculation. The settings here say "use these hard-coded values I'm passing in instead."