Jump to content

Ladder-style C clef

From LilyPond wiki
Revision as of 18:52, 16 November 2025 by Jean Abou Samra (talk | contribs) (Replace version="2.24.0" with version="2.24" now that the LilyWiki extension supports auto-selecting the latest release in a stable series)

From Wikipedia:
In printed music from the 16th and 17th centuries, the C clef often assumed a ladder-like form, in which the two horizontal rungs surround the stave line indicated as C: ; this form survived in some printed editions into the 20th century.

From lilypond-user discussion, 2016-09:
Ladder-style C clef for TTBB men's chorus

\version "2.24"

%%% Ladder-style C clef, by Pierre Perol-Schneider
%%% https://lists.gnu.org/archive/html/lilypond-user/2016-09/msg00453.html

ladderStyleClef = 
\markup
\override #'(filled . #t) 
\path #0.001 
  #'((moveto    0.000  -1.500)
     (lineto    0.000  -1.850)
     (curveto   0.000  -1.890  0.032  -1.920  0.075  -1.920)
     (curveto   0.122  -1.920  0.150  -1.890  0.150  -1.850)
     (lineto    0.150   1.850)
     (curveto   0.150   1.890  0.122   1.920  0.075   1.920)
     (curveto   0.032   1.920  0.000   1.890  0.000   1.850)
     (closepath)
     (moveto    0.350  -1.500)
     (lineto    0.350  -1.850)
     (curveto   0.350  -1.890  0.382  -1.920  0.425  -1.920)
     (curveto   0.472  -1.920  0.500  -1.890  0.500  -1.850)
     (lineto    0.500   1.850)
     (curveto   0.500   1.890  0.472   1.920  0.425   1.920)
     (curveto   0.382   1.920  0.350   1.890  0.350   1.850)
     (closepath)
     (moveto    1.800  -1.500)
     (lineto    1.800  -1.850)
     (curveto   1.800  -1.890  1.832  -1.920  1.875  -1.920)
     (curveto   1.922  -1.920  1.950  -1.890  1.950  -1.850)
     (lineto    1.950   1.850)
     (curveto   1.950   1.890  1.922   1.920  1.875   1.920)
     (curveto   1.832   1.920  1.800   1.890  1.800   1.850)
     (closepath)
     (moveto    2.150  -1.500)
     (lineto    2.150  -1.850)
     (curveto   2.150  -1.890  2.182  -1.920  2.225  -1.920)
     (curveto   2.272  -1.920  2.300  -1.890  2.300  -1.850)
     (lineto    2.300   1.850)
     (curveto   2.300   1.890  2.272   1.920  2.225   1.920)
     (curveto   2.182   1.920  2.150   1.890  2.150   1.850)
     (closepath)
     (moveto    0.500  -1.100)
     (curveto   0.500  -1.030  0.520  -0.970  0.620  -0.950)
     (lineto    1.600  -0.670)
     (curveto   1.690  -0.650  1.800  -0.620  1.800  -0.700)
     (lineto    1.800   0.070)
     (curveto   1.800  -0.020  1.700  -0.020  1.630  -0.050)
     (lineto    0.750  -0.300)
     (curveto   0.550  -0.370  0.500  -0.330  0.500  -0.200)
     (closepath)
     (moveto    0.500  -0.100)
     (curveto   0.500  -0.030  0.520  0.030   0.620   0.050)
     (lineto    1.600   0.330)
     (curveto   1.690   0.350  1.800  0.380   1.800   0.300)
     (lineto    1.800   1.170)
     (curveto   1.800   0.980  1.700  0.980   1.630   0.950)
     (lineto    0.750   0.700)
     (curveto   0.550   0.630  0.500  0.670   0.500   0.800)
     (closepath))
  
\new Staff \with {
  \override Clef.stencil = #(lambda (grob) (grob-interpret-markup grob ladderStyleClef))
  clefPosition = #1
  middleCPosition = #1
  middleCClefPosition = #1
}
{
  c'
}