\version "2.19.55" #(define (my-proc grob) (let ((default-stil (ly:ottava-bracket::print grob)) (lb (ly:spanner-bound grob LEFT))) (if (eq? lb (ly:spanner-bound grob RIGHT)) (let* ((txt (ly:grob-property grob 'text)) (txt-stil (grob-interpret-markup grob txt)) (txt-stil (ly:stencil-aligned-to txt-stil X CENTER)) (lb-center (interval-center (ly:grob-extent lb lb X)))) (ly:stencil-translate-axis txt-stil lb-center X)) default-stil))) #(define (my-proc2 grob) (let* ((ncs (ly:grob-object grob 'side-support-elements)) (ncs (ly:grob-array->list ncs))) (if (> (length ncs) 1) ;; Return default stencil (ly:ottava-bracket::print grob) (let* ((txt (ly:grob-property grob 'text)) (txt-stil (grob-interpret-markup grob txt)) (txt-stil (ly:stencil-aligned-to txt-stil X CENTER)) (txt-stil (ly:stencil-aligned-to txt-stil Y CENTER)) (bound (car ncs)) (lb (ly:spanner-bound grob LEFT)) (sys (ly:grob-system grob)) (lb-coord (ly:grob-relative-coordinate lb sys X)) (bound-center (interval-center (ly:grob-extent bound sys X)))) (ly:stencil-translate-axis txt-stil (- bound-center lb-coord) X))))) { \override Staff.OttavaBracket.no-bracket-for-singleton = ##t \ottava #1 c'''1 \ottava #2 c''''1 \ottava #-1 c''1 \ottava #-2 c'1 \ottava #1 1 \ottava #2 1 \ottava #-1 1 \ottava #-2 1 \ottava #1 1 \ottava #2 1 \ottava #-1 1 \ottava #-2 1 \time 3/4 \ottava #1 c'''2. \ottava #2 c''''2. \ottava #-1 c''2. \ottava #-2 c'2. \ottava #1 2. \ottava #2 2. \ottava #-1 2. \ottava #-2 2. \ottava #1 2. \ottava #2 2. \ottava #-1 2. \ottava #-2 2. \time 4/4 \ottava #1 c'''2 d''' \ottava #2 c''''2 d'''' \ottava #-1 c''2 d'' \ottava #-2 c'2 d' \ottava #1 c'''1 \break c'''1 \ottava #2 c''''2 d'''' \break c''''1 \ottava #1 c'''1 \break c'''2 d''' \ottava #2 c''''1 \break c''''2 d'''' \break c''''1 \break c''''1 }