On Mon 17 May 2010, 21:43 Mark Polesky wrote: > Dmytro O. Redchuk wrote: [...]
Mark! Thank You very much for your time and explanation! Everything is clear, beautiful and "funny" :-) > Anyway, once you've overridden the DynamicLineSpanner, then you > can adjust the #'Y-offset, though I'd suggest overriding the > #'Y-offset for the Hairpin grob instead of the DynamicLineSpanner: > > \override DynamicLineSpanner #'Y-extent = #'(0 . 0) > \override Hairpin #'Y-offset = #0.6666 > > So setting the Hairpin grob's #'Y-offset to its height value > (0.6666) centers the tip on the bottom staff-line. _In this case_ Having used "ugly" extents i could count offset from the middle line. Anyway, i agree that those offsets are rather ugly and i agree that in every case i can put proper value for offset. > If you want to be really fancy, you could write a music function > to do all the work for you: Great! Thank You for this job. > setHairpinPosition = > #(define-music-function > (parser location staff-position) > (number?) > #{ > \once \override DynamicLineSpanner #'Y-extent = #'(0 . 0) > \once \override Hairpin #'Y-offset = > #(lambda (hairpin-grob) > (let ((hairpin-height > (ly:grob-property hairpin-grob 'height))) > (+ 2 hairpin-height (/ $staff-position 2)))) > #}) [...] > I also recommend using \once (as I've done in the above music > function). Things get really confusing when an override is still > in effect from 4 pages ago. Yes, thanks, i understand, i've just "omitted" it in that "example". > grobs, but unfortunately also the DynamicText grobs, and off the > top of my head, I don't see a trivial way around this. This means > that if you do: > > \setHairpinPosition #0 c4\f\> c c c\! Yes, i see, DynamicText's offset should be adjusted for every one of \f, \p, \mf to align with hairpin properly... (Btw, those ugly offsets do handle this situation... But, really, i wish i could... and i hope i would, in other words,-) Well, why not --- now i "guessed" that DynamicText is height-centered with Hairpin's center line --- is that true? If so, i guess i can modify your function ... > Well, hopefully this points you in a better direction at least. > It's a bad idea to get in the habit of abusing syntax. Thank You A LOT. > Hope this helps. > - Mark -- Dmytro O. Redchuk _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user