Hi, I've been trying to make a bracket to indicate a change of manuals for an organ piece, and have succeeded in getting Lilypond to generate what I want (code below) for a particular instance. However, I have three questions:
1) Why does this particular format work? I'm not understanding why removing the tweak from manualBracketUpper, for example, makes the bracket not cross-staff. 2) How do I set Arpeggio.positions to be relative to the staves? I tried to insert a let function to define the position pair but did not do it properly. 3) Is it possible to create this bracket in a single context and have it ignore staff collisions? I tried drawing a bracket to go in the Dynamics context, but everything I tried maintained avoiding collisions. I have an extremely basic knowledge of Scheme but am happy to learn more. Thank you! -David --- manualChange = #(define-music-function (spacer text) (ly:music? markup?) #{ #spacer -\markup { \hspace #-5 \normal-text \fontsize #-1 #text } #}) manualBracketUpper = #(define-music-function (note) (ly:music?) #{ #note -\tweak Arpeggio.positions #'(0 . 0) \arpeggio #}) manualBracketLower = #(define-music-function (note) (ly:music?) #{ \override PianoStaff.Arpeggio.positions = #'(-13 . 3) #note \arpeggio #}) \new PianoStaff << \set PianoStaff.connectArpeggios = ##t \override PianoStaff.Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket \new Staff { \manualBracketUpper c''4 } \new Dynamics { \manualChange 8 "Ch." } \new Staff { \manualBracketLower c'4 } >> ---