On Thu, Feb 14, 2008 at 4:26 PM, Mats Bengtsson <[EMAIL PROTECTED]> wrote:
> Trevor Bača wrote: > > > OK, I was confusing dynamics and text scripts. For text scripts this > > baseline alignment is very cool. But for dynamics what I'm actually > > looking for is *center* alignment in the vertical direction (rather > > than *baseline* aligment). In other words, in Kieren's example above, > > my preference is to see the p and f center aligned *as though the p > > were the beginning of a crescendo and the f were the end*. > > > > Is there such a trick for *center* alignment of dynamic marks?? > > Actually, as long as the dynamics belong to the same > DynamicLineSpanner, i.e. a sequence of absolute dynamics, > hairpins and/or cresc/decresc with not gaps inbetween them, > then this is exactly what you get by default. If you want it > also for dynamics that are separated by some notes so that > they don't belong to the same DynamicLineSpanner, then > you can use exactly the same trick. I just increased the default > value of the staff-padding and kept the default center alignment > of each DynamicText in relation to its DynamicLineSpanner: > > \version "2.10.33" > > \paper { indent = 0 line-width = 2\in } > > music = \relative c'' > { > c2\p^\markup { "gorgeous" } c\f^\markup { "fantastic" } > c4\p c \f \> c c \! \p > } > > \score > { > { > \music \break > > \override DynamicLineSpanner #'staff-padding = #2.0 > \override DynamicLineSpanner #'Y-extent = #'(-1 . 1) > \override TextScript #'Y-extent = #'(-1 . 1) > \music > } > } > OK, that's now officially brilliant. Mats, thanks so much (as usual). And entire .scm file I have sitting in my score directory can now vanish thanks to this single setting -- DynamicLineSpanner #'Y-extent. Excellent. 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. -- Trevor Bača [EMAIL PROTECTED]
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user