Jump to content

Ladder-style C clef

From LilyPond wiki
Revision as of 22:50, 26 October 2025 by Jean Abou Samra (talk | contribs) (Import snippet from LSR)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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.0"

%%% 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'
}