On Tue, Nov 22, 2016 at 12:05 PM, Benjamin Strecker [via Lilypond] <
[email protected]> wrote:
> Hello!
>
> I am working from an edition that uses square brackets for items added
> by the editors. I was able to change the stencils property for
> \parenthesize for most of these, but there are some accidentals that
> have been added. Currently, I'm using the following to produce a
> reasonable approximation, but are there any simpler ways to do this?
>
> \version "2.19.50"
>
> %% Set of overrides to approximate a cautionary natural inside square
> brackets instead of parentheses
> brackNat = {
> \once\override AccidentalCautionary.stencil = #ly:text-interface::print
> \once\override AccidentalCautionary.text = \markup {
> \concat{\translate #'(0.0 . -0.7) [
> \musicglyph #"accidentals.natural"
> \translate #'(0.0 . -0.7) ]}
> }
> }
>
> \score {
> \new Staff {
> c''4 c''? \brackNat c''? c''
> }
> }
>
> Thanks for any advice you can offer!
>
Here's how you can use the same functionality as the markup macro "bracket"
to do the job:
%%%%%%%%%%%%%%%
\version "2.19.36"
bracketAcc = {
\once \override AccidentalCautionary.parenthesized = ##f
\once \override AccidentalCautionary.stencil =
#(lambda (grob)
(let ((stil (ly:accidental-interface::print grob))
(th 0.1))
(bracketify-stencil stil Y th (* 2.5 th) th)))
}
\score {
\new Staff {
c''4 c''? \bracketAcc c''? c''
}
}
%%%%%%%%%%%%%%%
An unfortunate side-effect of this is that each accidental's brackets will
look different because it draws brackets that span the accidental's exact
vertical extent (e.g., compare a flat vs. a natural). So, here's another
variant that I cobbled together based on the same macro and the underlying
"bracketify-stencil" command. It works better because it makes the brackets
*act like the normal parentheses* so you get a more consistent look for any
accidental:
%%%%%%%%%%%%%%%
\version "2.19.36"
bracketAcc = {
\once \override AccidentalCautionary.parenthesized = ##f
\once \override AccidentalCautionary.stencil =
#(lambda (grob)
(let* ((paren-stil
(grob-interpret-markup grob
(markup #:musicglyph "accidentals.leftparen")))
(axis Y)
(other-axis (lambda (a) (remainder (+ a 1) 2)))
(ext (ly:stencil-extent paren-stil axis))
(stil (ly:accidental-interface::print grob))
(thick
(ly:output-def-lookup (ly:grob-layout grob) 'line-thickness
0.1))
(padding thick)
(protrusion (* 2.5 thick))
(lb (ly:bracket axis ext thick protrusion))
(rb (ly:bracket axis ext thick (- protrusion))))
(set! stil
(ly:stencil-combine-at-edge stil (other-axis axis) 1 rb
padding))
(set! stil
(ly:stencil-combine-at-edge stil (other-axis axis) -1 lb
padding))
stil))
}
\score {
\new Staff {
c''4 c''? \bracketAcc c''? c''
}
}
%%%%%%%%%%%%%%%
HTH,
Abraham
--
View this message in context:
http://lilypond.1069038.n5.nabble.com/Cautionary-Accidental-Stencil-tp197011p197012.html
Sent from the User mailing list archive at Nabble.com._______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user