Hi David & all, i want to make arpeggios longer (so that they overshoot the chords a bit). I've modified your offsetBeamPositions function to work on Arpeggios instead of Beams (that was easy), but i'm quite surprised to find that it doesn't work correctly with cross-staff arpeggios. Do you have any ideas why? Maybe this is a bug in LilyPond?
offsetArpeggioPositions = #(define-music-function (parser location offsets) (pair?) #{ \override Arpeggio #'positions = #(lambda (grob) (let* ((func (assoc-get 'positions (cdr (ly:grob-basic-properties grob)))) (pos (func grob))) (coord-translate pos offsets))) #}) \relative c' { <c e g c>2\arpeggio \offsetArpeggioPositions #'(-1 . 1) % works perfectly <c e g c>2\arpeggio } \new PianoStaff \relative c' << \set PianoStaff.connectArpeggios = ##t \new Staff { \offsetArpeggioPositions #'(-10 . 10) % strange results <e g>2\arpeggio } \new Staff { \clef bass <c, e>2\arpeggio } >> % compare with output without your function: \new PianoStaff \relative c' << \set PianoStaff.connectArpeggios = ##t \new Staff { <e g>2\arpeggio } \new Staff { \clef bass <c, e>2\arpeggio } >> % cheers, % janek _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel