>> AFAICS this is a bug: The right side of the hairpin gets apparently
>> aligned to the right side of the '|.:' compound barline, not taking
>> into account the actual horizontal width of the compound bar line.
>
> I'd agree that it would be nice if LilyPond would do this without us
> having to ask for it.
>
> No idea whether this is reasonably documented [...] but there's a
> proper setting for this behaviour, namely
> Hairpin.endpoint-alignments.
Thanks for checking this.
> [...] But what one could do is this:
>
> \layout {
> \override Hairpin.endpoint-alignments =
> #(lambda (hairpin)
> (let ((right-bound (ly:spanner-bound hairpin RIGHT)))
> (if (and (grob::has-interface right-bound 'bar-line-interface)
> (not (equal? (ly:grob-property right-bound 'glyph "|")
> "|")))
> (cons LEFT LEFT)
> (cons LEFT RIGHT))))
> }
>
> This changes the alignment behaviour at the right end of all Hairpins
> that end at bar lines which are not "|".
Nice! I think we should provide a proper callback function within
LilyPond to fix this. What exactly is your reason to handle `|`
differently?
Werner