Hallo,
tatsächlich habe ich einen Barré mit solch einer geknickten Linie schon gesehen.
Allerdings sehr selten und immer fand ich es fürchterlich anzusehen.
Getreu dem Motto "LilyPond kann alles" habe ich mich aber doch mal dran gegeben.
Es muß Dir allerdings klar sein, daß es keine vorgefertigten Befehle für sowas gibt.
Es ist also Handarbeit angesagt, auch in der späteren Anwendung!
Ich habe jetzt den 'stencil überschrieben, damit geht fast alles

Die üblichen overrides für den TextSpanner werden jetzt allerdings teilweise nicht mehr beachtet oder führen zu überraschenden Ergebnissen, insbesondere die für 'bound-details.
Eine weitere Einschränkung: TextSpanner über den Zeilenumbruch hinaus funktioniert nicht wie gewünscht.
Man kann vielleicht den Zeilenumbruch noch verbessern bzw auch für mehr Automatismen sorgen, aber da bitte ich Dich um Verständnis, daß ich meine ohnehin sehr beschränkte Zeit nicht für ein Projekt aufwende von dem ich sowieso nicht überzeugt bin.

Aber hier der Code, Kommentare inline:
\version "2.18.0"
#(define ((kneed-line coords txt start-offset) grob)
(define (pair-to-list pair)
(list (car pair) (cdr pair)))
(define (normalize-coords goods x y)
(map
(lambda (coord)
(cons (* x (car coord)) (* y (cdr coord))))
goods))
(define (my-c-p-s points thick)
(make-connected-path-stencil
points
thick
1.0
1.0
#f
#f))
;; outer let to trigger suicide
(let ((sten (ly:line-spanner::print grob)))
(if (grob::is-live? grob)
(let* ((thick (ly:grob-property grob 'thickness 1))
(thick (* thick (layout-line-thickness grob)))
(xex (ly:stencil-extent sten X))
(lenx (- (interval-length xex) (car start-offset)))
(yex (ly:stencil-extent sten Y))
(leny (interval-length yex))
(xtrans (car xex))
(ytrans (car yex))
(uplist (map pair-to-list
(normalize-coords coords lenx (/ leny 2)))))
(ly:stencil-add
(ly:stencil-translate
(my-c-p-s uplist thick)
(cons (+ xtrans (car start-offset)) (+ ytrans (cdr start-offset))))
(grob-interpret-markup grob (markup #:normal-text txt))))
'())))
#(define (kneed-text-span txt buckle height start-offset)
(kneed-line
`((,buckle . 0)(1 . ,height) (1 . ,(- height 1))) txt start-offset))
kneedTextSpanner =
#(define-music-function (parser location txt buckle height start-offset)
(markup? number? number? number-pair?)
"
@code{kneedTextSpanner} benötigt vier Argumente:
@var{txt} ist der Text
@var{buckle} ist die Stelle an der der Knick sein soll, gemessen in
Prozent der Länge des gesamten TextSpanner
@var{height} ist die Höhe, die die Linie dann erreichen soll.
@var{start-offset} regelt den Anfang der Linie. Der erste Wert bestimmt wie-
viel Abstand zum Text eingehalten werden soll (gemessen ab dem ref-point
des Textes, d.h. am linken Rand vom Text). Der zweite Wert legt fest in
welcher Höhe die Linie relativ zum Text anfangen soll.
"
#{
\override TextSpanner #'stencil =
#(kneed-text-span txt buckle height start-offset)
\override TextSpanner #'outside-staff-priority = ##f
\override TextSpanner #'(bound-details right padding) = #-1
\override TextSpanner.bound-details.left.text = \markup "|"
#})
\version "2.18.0"
\score {
\relative c' {
\override TextSpanner #'padding = #2
\override TextSpanner #'font-size = #-1
\kneedTextSpanner "XIV" #0.3 #8.5 #'(4 . 0.8)
e8\startTextSpan a d g c e a d\stopTextSpan
}
}
\score {
\relative c' {
\override TextSpanner #'padding = #2
\override TextSpanner #'font-size = #-1
\kneedTextSpanner "XIV" #0.3 #8.5 #'(4 . 0.8)
e8\startTextSpan a d g c e a d\stopTextSpan
}
\layout { ragged-right = ##f }
}
\score {
\relative c' {
\override TextSpanner #'padding = #2.5
\override TextSpanner #'font-size = #-1
\kneedTextSpanner "I" #0.3 #4.5 #'(1 . 0.8)
e8\startTextSpan a d g c d e f\stopTextSpan
}
}
\score {
\relative c' {
\override TextSpanner #'padding = #2.5
\override TextSpanner #'font-size = #-1
\kneedTextSpanner "I" #0.3 #4.5 #'(1 . 0.8)
e8\startTextSpan a d g c d e f\stopTextSpan
}
\layout { ragged-right = ##f }
}Gruß,
Harm