\version "2.12.1" easyChBr = #(define-music-function (parser location grow) (number?) ;% easy chord bracket; extendable in one staff without connectArpeggios #{ % apply in one voice, supplying growth parameter: + = up, - = down \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-bracket \once \override Arpeggio #'positions = #(lambda (grob) (let ((iv (ly:arpeggio::calc-positions grob)) (grow-hi (max 0 (/ $grow 2))) (grow-lo (min 0 (/ $grow 2)))) (cons (+ (car iv) grow-lo) (+ (cdr iv) grow-hi)))) $(make-music 'EventChord 'elements (list (make-music 'ArpeggioEvent))) #}) tenorUp = { e8[ d'!8] 8 8 4 } tenorDown = { \easyChBr #6 \override Arpeggio #'padding = #0.3 e4 s2 } bassUp = { \override Stem #'(details beamed-lengths) = #(make-list 4 2.5) \override Stem #'(details beamed-extreme-minimum-free-lengths) = #(make-list 2 1.5) b,8[ \once \override NoteColumn #'force-hshift = #0 d!8] s2 } bassDown = { \once \override NoteColumn #'force-hshift = #1 \easyChBr #4 \override Arpeggio #'padding = #0 e,4 8 8 4 } \score { \new Staff \with { \remove Time_signature_engraver \remove Clef_engraver } { \clef bass \set Score.autoBeaming = ##f { s1 << \tenorUp \\ \tenorDown \\ \bassUp \\ \bassDown \\ s1 >> } } }