Hallo zusammen,
@trulli:
Eine Verlängerung kann man bestimmt auch definieren (das zeigen uns bestimmt bald ein paar Leute, gell, harm 6?).
Eigentlich hat Robert das Problem gelöst, aber da Du ja unbedingt eine Funktion haben wolltest

, habe ich mich mal etwas intensiver mit dem Thema befaßt.
Zunächst ist festzustellen, daß das Arpeggio korrekt und nicht verschoben dargestellt wird, wenn man
\arpeggioArrowUp rausnimmt. Es ist allerdings zu klein.
Insofern halte ich das Verhalten, bei gesetztem
\arpeggioArrowUp für einen Bug.
Weiterhin scheint die triller-artige zick-zack-Linie eines normalen Arpeggios nur in ganzen links-rechts-Blöcken erweiterbar zu sein, und nicht in Bruchteilen davon. Anders als bei
\arpeggioBracket, denn dort kann man stufenlos einstellen.
Meine Funktion
growArpArrowUp orientiert sich an
LSR-Snippet 639 und liest die von lilypond benutzten
positions aus und fügt unten und oben etwas hinzu.
\arpeggioArrowUp ist genauso wie eine Angabe für
\arpeggio schon enthalten. Ansonsten braucht sie keine weiteren Eingaben.
\version "2.12.3"
growArpArrowUp =
#(define-music-function (parser location) ()
#{
#(define (grow-arpeggio grob)
(let* ((coords (ly:arpeggio::calc-positions grob)))
(define (add-offsets coords)
(if (null? coords)
'()
(cons (+ (car coords) -0.6)
(+ (cdr coords) 0.5))
))
(add-offsets coords)))
\arpeggioArrowUp
\once \override Arpeggio #'positions = #grow-arpeggio
$(make-music 'EventChord 'elements (list (make-music 'ArpeggioEvent)))
#})
%--------------------- Test ----------------------------------------------------
\relative c' {
\growArpArrowUp <d fis>4
a8
\growArpArrowUp <g b>->
}Mit besonderem Gruß an trulli,

Harm