[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Winged repeat bar line unique over multiple staves
From: |
Klaus Blum |
Subject: |
Re: Winged repeat bar line unique over multiple staves |
Date: |
Tue, 22 Mar 2016 13:57:04 -0700 (MST) |
Hi Alexis,
Schneidy has created a snippet for that issue:
http://lsr.di.unimi.it/LSR/Item?id=991
There's a little drawback: You have to (manually) adjust the bracket height
to match the staff group height.
I've tried a little modification to avoid this: You can add the wings to the
topmost and lowermost staff in the group:
%
-----------------------------------------------------------------------------------
\version "2.18.2"
#(define-markup-command (staff-group-bracket-upper layout props
bracket-height)(number?)
"Draw upper wing for StaffGroup bracket."
(interpret-markup layout props
(markup
(#:with-dimensions (cons -0.001 0) (cons 0.001 0)
(#:override (cons (quote filled) #t)
(#:path 0.01 `(
(moveto 0.00 ,(+ bracket-height 0.35))
(curveto 0.00 ,(+ bracket-height 0.43) 0.07 ,(+
bracket-height 0.42) 0.10 ,(+ bracket-height 0.42))
(curveto 0.70 ,(+ bracket-height 0.42) 1.10 ,(+
bracket-height 0.60) 1.76 ,(+ bracket-height 1.50))
(curveto 1.82 ,(+ bracket-height 1.58) 1.89 ,(+
bracket-height 1.50) 1.85 ,(+ bracket-height 1.45))
(curveto 1.14 ,(+ bracket-height 0.40) 0.93 ,(+
bracket-height 0.18) 0.45 ,bracket-height)
(lineto 0.00 ,bracket-height)
(closepath)
)))))))
#(define-markup-command (staff-group-bracket-lower layout props
bracket-height)(number?)
"Draw lower wing for StaffGroup bracket."
(interpret-markup layout props
(markup
(#:with-dimensions (cons -0.001 0) (cons 0.001 0)
(#:override (cons (quote filled) #t)
(#:path 0.01 `(
(moveto 0.00 ,(* bracket-height -1))
(curveto 0.00 ,(+ (* bracket-height -1) -0.43)
0.07 ,(+ (* bracket-height -1) -0.42) 0.10 ,(+ (* bracket-height -1)
-0.42))
(curveto 0.70 ,(+ (* bracket-height -1) -0.42)
1.10 ,(+ (* bracket-height -1) -0.60) 1.76 ,(+ (* bracket-height -1)
-1.50))
(curveto 1.82 ,(+ (* bracket-height -1) -1.58)
1.89 ,(+ (* bracket-height -1) -1.50) 1.85 ,(+ (* bracket-height -1)
-1.45))
(curveto 1.14 ,(+ (* bracket-height -1) -0.40)
0.93 ,(+ (* bracket-height -1) -0.18) 0.45 ,(* bracket-height -1))
(closepath))))))))
addUpperWing =
#(define-music-function
(parser location repeat-bar-type)
(string?)
(cond
((string=? repeat-bar-type "[")
#{
\once \override Staff.BarLine.stencil =
#(lambda (grob)
(ly:stencil-combine-at-edge
(ly:bar-line::print grob)
X LEFT
(grob-interpret-markup grob
#{
\markup
% \translate #(cons 0 repeat-bar-translate)
\staff-group-bracket-upper #1.8
#})))
#})
((string=? repeat-bar-type "]")
#{
\once \override Staff.BarLine.stencil =
#(lambda (grob)
(ly:stencil-combine-at-edge
(ly:bar-line::print grob)
X RIGHT
(grob-interpret-markup grob
#{
\markup
\rotate #180
% \translate #(cons 0 repeat-bar-translate)
\staff-group-bracket-lower #1.8
#})))
#})
(else
#{
\once \override Staff.BarLine.stencil = #ly:bar-line::print
#})))
addLowerWing =
#(define-music-function
(parser location repeat-bar-type)
(string?)
(cond
((string=? repeat-bar-type "[")
#{
\once \override Staff.BarLine.stencil =
#(lambda (grob)
(ly:stencil-combine-at-edge
(ly:bar-line::print grob)
X LEFT
(grob-interpret-markup grob
#{
\markup
\staff-group-bracket-lower #1.8
#})))
#})
((string=? repeat-bar-type "]")
#{
\once \override Staff.BarLine.stencil =
#(lambda (grob)
(ly:stencil-combine-at-edge
(ly:bar-line::print grob)
X RIGHT
(grob-interpret-markup grob
#{
\markup
\rotate #180
\staff-group-bracket-upper #1.8
#})))
#})
(else
#{
\once \override Staff.BarLine.stencil = #ly:bar-line::print
#})))
%%% Test:
\new StaffGroup <<
\new Staff \relative c' {
c4 d e f
\repeat volta 2 {
\addUpperWing #"["
g a b c
d e f g
\addUpperWing #"]"
}
s8
}
\new Staff \relative c {
\clef F
c4 d e f
\repeat volta 2 {
g a b c
d e f g
}
s8
}
\new Staff \relative c, {
\clef F
c4 d e f
\repeat volta 2 {
\addLowerWing #"["
g a b c
d e f g
\addLowerWing #"]"
}
s8
}
>>
%
-----------------------------------------------------------------------------------
Cheers,
Klaus
--
View this message in context:
http://lilypond.1069038.n5.nabble.com/Winged-repeat-bar-line-unique-over-multiple-staves-tp188804p188828.html
Sent from the User mailing list archive at Nabble.com.
- Re: Winged repeat bar line unique over multiple staves, (continued)
- Re: Winged repeat bar line unique over multiple staves, Thomas Morley, 2016/03/22
- Re: Winged repeat bar line unique over multiple staves, Thomas Morley, 2016/03/22
- Re: Winged repeat bar line unique over multiple staves, Alexis Maleval, 2016/03/22
- Re: Winged repeat bar line unique over multiple staves, Simon Albrecht, 2016/03/22
- Re: Winged repeat bar line unique over multiple staves, Alexis Maleval, 2016/03/22
Re: Winged repeat bar line unique over multiple staves,
Klaus Blum <=