Jump to content

Curly end barline

From LilyPond wiki

Curly end barline supports svg output.

\version "2.24.0"

% http://lsr.di.unimi.it/LSR/Item?id=984
% Credits: PPS on March 2015

\paper { tagline = ##f }

endBarCurlyPath = \markup {
    \with-dimensions #'(0 . 0) #'(0 . 0)
    \override #'(filled . #t) 
    \path #0.01 
    #'((moveto   -0.01   -1.95)
       (curveto   0.05   -1.10   0.02  -1.50   0.12   0.00)
       (curveto   0.18    0.80   0.25   1.63   0.38   1.63)
       (curveto   0.51    1.63   0.52   0.80   0.59   0.00)
       (curveto   0.66   -0.90   0.70  -1.54   0.91  -1.54)
       (curveto   1.04   -1.54   1.08  -1.10   1.23   0.00)
       (curveto   1.35    1.00   1.46   1.00   1.49   1.00)
       (curveto   1.57    1.00   1.59   0.69   1.63   0.00)
       (curveto   1.68   -0.70   1.75  -1.08   1.90  -1.08)
       (curveto   2.05   -1.08   2.05  -0.80   2.12  -0.30)
       (curveto   2.20    0.20   2.22   0.43   2.30   0.43)
       (curveto   2.36    0.43   2.37   0.20   2.43   0.00)
       (curveto   2.49   -0.20   2.51  -0.33   2.76  -0.34)
       (curveto   2.96   -0.34   3.20  -0.20   3.25  -0.07)
       (curveto   3.27   -0.01   3.24   0.00   3.23   0.00)
       (curveto   3.15    0.00   3.05  -0.30   2.80  -0.31)
       (curveto   2.67   -0.31   2.64  -0.27   2.55   0.05)
       (curveto   2.46    0.40   2.50   0.48   2.30   0.48)
       (curveto   2.15    0.48   2.10   0.00   2.07  -0.25)
       (curveto   2.00   -0.70   1.98  -1.02   1.92  -1.02)
       (curveto   1.82   -1.02   1.83  -0.60   1.80   0.05)
       (curveto   1.78    0.55   1.74   1.04   1.50   1.04)
       (curveto   1.30    1.04   1.25   0.65   1.16   0.00)
       (curveto   1.02   -1.20   0.96  -1.48   0.91  -1.48)
       (curveto   0.82   -1.48   0.82  -0.70   0.80  -0.25)
       (curveto   0.71    0.90   0.68   1.68   0.40   1.68)
       (curveto   0.15    1.68   0.12   1.00  -0.01  -0.40)
       (closepath))
    }
    
endBarCurly = {
  \once \override Staff.BarLine.stencil =
  #(lambda (grob)
     (ly:stencil-combine-at-edge
      (ly:bar-line::print grob)
      X RIGHT
      (grob-interpret-markup grob endBarCurlyPath)
      0))
  \bar "||"
}

endBarCurlyTab = {
 \once \override Staff.BarLine.stencil =
  #(lambda (grob)
     (ly:stencil-combine-at-edge
      (ly:bar-line::print grob)
      X RIGHT
      (grob-interpret-markup grob 
        #{
           \markup
           \scale #'(1.8 . 1.8)
           \endBarCurlyPath
        #})
      0))
  \bar "||"
}

%%% EXAMPLE %%%
#(set-global-staff-size 30)    

\new Staff {
  c'1 \endBarCurly
}

\new TabStaff {
 c'1 \endBarCurlyTab
}