\version "2.12.1" #(define (constrain-hidden-positions grob) (let* ((iv (ly:arpeggio::calc-positions grob)) (center (interval-center iv)) (shortest-iv (interval-widen (cons center center) 0.25)) (hidden? (ly:grob-property grob 'transparent #f))) (if hidden? (interval-union iv shortest-iv) iv))) chord = { 4 \arpeggio d16 d16 d16 d16 4 \arpeggio 4 \arpeggio } single = { d4 \arpeggio d16 d16 d16 d16 d4 \arpeggio d4 \arpeggio } hi = \transpose c c''{ \partial 4 s4 \chord \single \arpeggioBracket % implicit context is Voice \single \revert Arpeggio #'stencil \override Arpeggio #'positions = #constrain-hidden-positions \single \revert Staff.Arpeggio #'positions } connectOn = { \set Staff.connectArpeggios = ##t \override Staff.NoteHead #'color = #black \override Staff.Arpeggio #'color = #black } connectOff = { \set Staff.connectArpeggios = ##f \override Staff.NoteHead #'color = #magenta \override Staff.Arpeggio #'color = #magenta } lo = \transpose c c'{ \partial 4 s4 \repeat unfold 4 { \connectOn 4 \arpeggio s4 4 \arpeggio \connectOff 4 \arpeggio } } noheadsfound = \markup \with-color #magenta { \hspace #-1.8 "†" } text = { \partial 4 s4 s4^\markup \with-color #darkgreen "chord is ok" s2 s4 s4^"single is nok" s2 s4^\noheadsfound s4^\markup \with-color #darkgreen "with bracket" s2 s4 s4^\markup \with-color #darkgreen "with override" s2 s4^\noheadsfound } \score { << \hi \\ \lo \\ \text >> \layout { indent = 0 \context { \Staff \consists "Span_arpeggio_engraver" % \override Arpeggio #'positions = #constrain-hidden-positions } } }