Thank you! This is a workable starting point. However, it raised a few questions.
1) I noticed that rotating the grob doesn't work well with automatic collision detection, since the grob skylines are still where they would be for the unrotated grob. See this example code and the attached images:
\version "2.19.80"
\language "english"
tweaks = {
\once \override Hairpin.rotation = #'(9 0 0)
%\once \override Hairpin.extra-offset = #'(0 . -1)
}
\score {
\new Staff \relative c' { \time 2/2 \tweaks d8[^\<(^"some really long text here!" e f g a b c d]\!) |
<e c g g,>4\arpeggio }
\layout {
\context {
\Score
\override Hairpin.height = #0.5
}
}
}
This makes me hesitate for the same reason that using
extra-offset does: I'd want to tweak the shape of the Hairpins and have Lilypond automatically work out the correct spacing between different grobs and staves. So, how can I make it so that the skylines are also updated when I rotate the grob? Or, if internally the grob is first placed and then rotated, how can I make it so that the rotation occurs before Lilypond calculates the positioning and spacing of grobs?