Lukas, Thank you so much, it works perfectly! That's exactly what I've been looking for :)
Best, Marcin śr., 1 wrz 2021 o 10:54 Lukas-Fabian Moser <[email protected]> napisał(a): > Hi Marcin, > > Am 01.09.21 um 02:11 schrieb Marcin Damianiak: > > Dear All, > > > > I have two questions regarding the bracketify-stencil function. When I > > use the following snippet: > > > > \relative c' { > > \time 4/4 > > \once\override Staff.MultiMeasureRest.stencil = #(lambda (grob) > > (bracketify-stencil (ly:multi-measure-rest::print grob) Y 0.1 0.2 0.1)) > > R1 > > } > > Just an unrelated hint: By now, I prefer using grob-transformer as it > enables me to use bracketify-stencil without having to resort to ::print > routines, which means the routine can be used generically: > > bracketizer = > #(grob-transformer 'stencil > (lambda (grob default) > (bracketify-stencil default Y 0.2 0.5 0.3))) > % usage: > % \once\override Rest.stencil = \bracketizer > > bracketify = > #(define-music-function (grob-path) (key-list?) > #{ \once\override $grob-path . stencil = \bracketizer #}) > > % usage: > % \bracketify Score.TimeSignature > > > it creates brackets of the inner object's exact height. I'd like to > > ask whether it is possible to: > > 1. make them longer on both ends, to extend beyond the parenthesized > > object > > 2. disable one of the brackets (to keep only left or right) > > I think it might be easiest to take the source code of > bracketify-stencil and add the necessary options. > > \version "2.22.0" > > #(define (other-axis a) > (remainder (+ a 1) 2)) > > #(define (flex-bracketify-stencil stil axis thick protrusion > Y-protrusion padding left? right?) > "Add brackets around @var{stil}, producing a new stencil." > > (let* ((ext (interval-widen (ly:stencil-extent stil axis) > Y-protrusion)) > (lb (ly:bracket axis ext thick protrusion)) > (rb (ly:bracket axis ext thick (- protrusion)))) > (if right? > (set! stil > (ly:stencil-combine-at-edge stil (other-axis axis) 1 rb > padding))) > (if left? > (set! stil > (ly:stencil-combine-at-edge stil (other-axis axis) -1 lb > padding))) > stil)) > > { > \once \override Rest.stencil = > #(grob-transformer > 'stencil > (lambda (grob default) > (flex-bracketify-stencil default Y 0.1 0.2 0.3 0.1 #t #f))) > r4 > \once \override Rest.stencil = > #(grob-transformer > 'stencil > (lambda (grob default) > (flex-bracketify-stencil default Y 0.1 0.2 1.5 0.1 #f #t))) > r4 > } > > Lukas > >
