J'ai retrouvé sur la liste anglo-saxonne, cette vieille fonction (l'échange a plus de 10 ans), qui a l'air de toujours fonctionner :
%%%%%%%%
\version "2.19.83"
#(define-public (bracket-stencils grob)
(let* ((font (ly:grob-default-font grob))
(layout (ly:grob-layout grob))
(props (ly:grob-alist-chain grob (ly:output-def-lookup layout 'text-font-defaults)))
(lp (ly:text-interface::interpret-markup layout props (markup #:fontsize 3.5 #:translate (cons -0.3 -0.5) "[")))
(rp (ly:text-interface::interpret-markup layout props (markup #:fontsize 3.5 #:translate (cons -0.3 -0.5) "]"))))
(list lp rp)))
bracketify = #(define-music-function (parser loc arg) (ly:music?)
(_i "Tag @var{arg} to be parenthesized.")
#{
\once \override ParenthesesItem #'stencils = #bracket-stencils
\parenthesize $arg
#}
)
\relative c'' {
c4
\parenthesize c
\bracketify c4
\bracketify g4
% < e \bracketify g b > % This doesn't work!!!
\bracketify < e g b >
\bracketify r4
\appoggiatura \bracketify ees16 d4
}
%%%%%%%%%%%