Dear Murray,This is quite an intriguing idea to say the least. We will see if it catches on.
Something funny that happened, I just spent a few minutes implementing the attached file ("clefs.ly") which uses markups to achieve something approaching your goal, then read further in the email and realized you already did this, my apologies.
Can you attach the code as a text file instead of copy-pasted into the PDF document? On my computer trying to copy-paste the code results in the attached file "more_clefs.ly" with all the lines mixed up.
Thanks, -William On 1/16/25 15:01, Murray MacKENZIE wrote:
People of /LilyPond/ and/or /MuseScore/,Over the recent millennium, clefs have evolved as letters of the alphabet in a fancy clef-font. I have recently wanted to use clefs in the letters A and/or D. The attached file in the Print Document Format (PDF) demonstrates ‘my take’ on the generalized concept and demonstrates proof-of-concept using the /LilyPond/ software.*_WANTS / ENCOURAGEMENTS_*I encourage the people of /LilyPond/ to post the attachment contents as a snippet and hopefully to broaden the software to directly support A, B, D, and/or E clefs. I encourage the people of /MuseScore/ to integrate A, B, D, and/or E clefs in their own analogous fashion.*_SOME _**_DETAILS_*My generalized concept is to have clefs for each of the letters in the set {A, B, C, D, E, F, G}.Clefs for C, F, and G already exist and are in common usage. *_D_*I found an attractive SVG graphic of this kind of d-clef created by Dr. Alex HELLSTEN (mathes, FINLAND) and distributed using a creative commons license. What I've re-created here is a single-filled-loop version of the shape which has a lacuna where the indexed staveline crosses the gudgeon. I've called this form of the clef "Delian" after Delia DERBYSHIRE (MA, mathes & music, ENGLAND) who first realized the music of the BBC Doctor WHO theme. Dr. HELLSTEN may want to more specifically name it or its variants himself.Dr. HELLSTEN has been included in the send-list of this email. *_A, B, E_*I’ve created clefs in the letters A, B, and E and made them to work (along with the D-clef) using the /LilyPond/ software.*_CONCLUSION_* The details of all-the-above are documented in the attached file.I felt driven to do this on account of the unfortunate resemblance of a clef in common usage to a set of double bar-lines (the neutral clef in /LilyPond/, & the var 1 percussion clef in /MuseScore/). I decided the natural first (1^st ) effort should be to generalize the notion of clefs-as-letters for all the seven (7) initial letters of the Roman alphabet. For-the-band, I’ve redoubled my work in /MuseScore/, so I put out this notion-as-news down both the /LilyPond/ and /MuseScore/ ‘channels’ at the same time.Murray J. MacKenzie BSc CD1 corporal 3^rd piper, THE CAPE BRETON HIGHLANDERS CANADIAN ARMY from personal account [email protected]_ <mailto:[email protected]>military account [email protected]_ <mailto:[email protected]>
-- William Rehwinkel (any pronouns) Juilliard School '26 - Oberlin Conservatory '24 [email protected] - https://williamrehwinkel.net PGP Public Key: https://ftp.williamrehwinkel.net/pubkey.txt
\version "2.25.21"
#(define-markup-command
(clef-letter-number layout props letter number)
(string? string?)
(interpret-markup layout props
#{ \markup {
\right-column {
\lower #1 \fontsize #8 { \bold #letter }
\lower #0.5 \circle \fontsize #1 #number
}
}#}) )
\score {
\relative c' {
\override Staff.Clef.stencil = #ly:text-interface::print
\override Staff.Clef.text = \markup \clef-letter-number "E" "4"
\set Staff.middleCPosition = -2
c1
}
}
\score {
\relative c' {
\override Staff.Clef.stencil = #ly:text-interface::print
\override Staff.Clef.text = \markup \clef-letter-number "D" "3"
\set Staff.middleCPosition = 6
c1
}
}
\version "2.24.3"
% 22 May 2024
\path #0.001
#'((moveto
AtriumTHREEClef =
\path #0.001
#'((moveto
AtriumFOURClef =
\path #0.001
#'((moveto
BarraTHREEClef =
#'((moveto
lineto
lineto
lineto
lineto
% Murray J. MacKENZIE, BSc, CD1
40 124
\markup { \scale #'(0.0167 . 0.0167)
\markup { \scale #'(0.0167 . 0.0167)
% The Atrium clef glyph is named so as to suggest a pleasant entry space within
a larger building. % The shape of the clef is suggested by the opening passage
of Christian BOK'S poem Eunoia:
% WAYPOINTS ; eg: point 108 180 is a waypoint.
; inner top of figure
; inner left point
; the begin point
96 265
18 100
108 180
60 265
curveto 100 172
curveto 115 265
curveto 16 180
; here begins the mostly 'outer' set of curves of the figure
; the extreme TOP of figure
96 275
129 275
curveto 129 240
% WAYPOINTS ; eg: point 108 180 is a waypoint.
; here begins the mostly 'outer' set of curves of the figure
; the extreme TOP of figure
96 275
129 275
curveto 129 240
% WAYPOINTS ; eg: point 108 180 is a waypoint.
; here begins the mostly 'outer' set of curves of the figure
; the extreme TOP of figure
96 275
129 275
curveto 129 240
% The resemblance to a 'flat' glyph is difficult to avoid while also avoiding
things that look like a K-clef.
; clockwise OUTER curve to TOP of CURVES
; a begin point
; ascending INNER to inner right point
90 180
90 102
curveto 39 90
curveto 90 210
; maintruck second striation from top (begin)
; top of mast
6 330
; maintruck second striation from top (end at left)
6 324
lineto
AtriumTWOClef = % Defines an A-clef glyph subscriped two (2) as AtriumTWOClef.
An instance of a clefinition. % "a slapdash arc and a backward zag." \markup {
\scale #'(0.0167 . 0.0167)
; deliberate synthetic inflection point, below, to right, and descending past
begin point, INNER
; the extreme RIGHT of the figure
141 45
141 6
; deliberate synthetic inflection point, below, to right, and ASCENDING past
begin point, OUTER
% Applies circled subscript two (2) to the clef.
; Path closure happens to occur.
108 180
60 105
curveto 20 275
curveto 20 75
% Defines an A-clef glyph subscriped two (2) as AtriumTWOClef. An instance of a
clefinition.
; deliberate synthetic inflection point, below, to right, and descending past
begin point, INNER
; the extreme RIGHT of the figure
141 45
141 6
; deliberate synthetic inflection point, below, to right, and ASCENDING past
begin point, OUTER
% Applies circled subscript two (2) to the clef.
; Path closure happens to occur.
108 180
60 105
curveto 20 275
curveto 20 75
% Defines an A-clef glyph subscriped two (2) as AtriumTWOClef. An instance of a
clefinition.
; deliberate synthetic inflection point, below, to right, and descending past
begin point, INNER
; the extreme RIGHT of the figure
141 45
141 6
; deliberate synthetic inflection point, below, to right, and ASCENDING past
begin point, OUTER
% Applies circled subscript two (2) to the clef.
; Path closure happens to occur.
108 180
60 105
curveto 20 275
curveto 20 75
% The Barra clef glyph is named after the isle of Barra in the Hebrides and
also the land near Grand Narrows in Cape Breton.
% Better designs for a b-clef are encouraged.
% Defines a B-clef glyph subscriped three (3) as BarraTHREEClef. An instance of
a clefinition.
; upper INNER limb counter-clockwise curve back to begin point
; descending to mast step
6 90
120 90
curveto 144 210
\override #'(filled . #t)
curveto 111 0
curveto 141 49
curveto 132 24
\override #'(filled . #t)
curveto 100 172
curveto 115 265
curveto 16 180
curveto 111 0
curveto 141 49
curveto 132 24
\override #'(filled . #t)
curveto 100 172
curveto 115 265
curveto 16 180
curveto 111 0
curveto 141 49
curveto 132 24
%\override #'(filled . #t)
curveto 45 186
moveto 0 330
lineto 0 90
30 330
30 324
111 186
111 201
135 45
135 49
129 186
129 20
)) \circle \sans \bold \teeny "2"}
108 180
111 186
111 201
135 45
135 49
129 186
129 20
)) \circle \sans \bold \teeny "3"}
108 180
111 186
111 201
135 45
135 49
129 186
129 20
)) \circle \sans \bold \teeny "4"}
\markup \concat { \scale #'(0.0167 . 0.0167)
30 180
72 210
51 210
30 180
40 185
; the extreme LEFT of figure
075
0 150
; the begin point
; inner left point
18 100
40 124
; inner top of figure
96 265
60 265
; the extreme LEFT of figure
075
0 150
; the begin point
; inner left point
18 100
40 124
; inner top of figure
96 265
60 265
; the extreme LEFT of figure
075
0 150
; bottom of step
6 90
; maintruck RIGHT of masthead
\path #6
; maintruck third striation
from top (begin)
6 318
; maintruck third striation from top (end at right)
30 318
; maintruck intermediate striation (just in from left) ; maintruck intermediate
striation (begin) ; mast completion at bottom of maststep
% using a creative commons license (www.creativecommons.org/licences/by/4.0).
What I've re-created here is
; 'outer' upper curve of the gudgeon; mostly right-to-left
; 'outer' lower curve of the gudgeon; mostly left-to-right
;up78
20 138
; 'inner' cap-curve of gudgeon, descending down to the left
; 'inner' lower long-curve of gudgeon; mostly right-to-left
; down 84
51 60
lineto
; inner lower SMALL curve descending left to right
; inner lower SMALL curve descending right to left
; 'inner' upper long-curve of gudgeon; mostly left-to-right
; overall curve closing horizontal line-of-gap top-of-gap
120 181
% The spelling of of "eu" is the same as the extant French past participle of
avoir (avoir ~~~~ to have).
% I designed and engineered this clef myself.
; ascending INNER curve to tip of upper prong
; a begin point
120 180
#'((moveto
; descending OUTER curve, upper limb to point NEAR THE LEFT
9 240
33 360
144 360
; descending INNER curve to INNER BOTTOM point
BOTTOM LIMB to extreme LEFT point
; ascending OUTER curve,
0 120
0 0
150 0
loWer MIDDLE LIMB to begin point
; ascending OUTER curve,
120 180
0 240
0 135
AtriumFOURClef DEMO
30 321
12 321
12 90
)) \circle \sans \bold \teeny "3"}
\override #'(filled . #t)
180 180
180 210
180 330
\fontsize#0 \sub \circle \bold "4"}
))
% beyond other earlier designs and that some
\markup \concat { \scale #'(0.0167 . 0.0167)
EuEchoFOURClef =
\override #'(filled . #t)
108 315
18 315
0 105
171 282
156 315
123 315
120 180
9 90
0 210
105 45
9 45
0 249
183 90
165 45
120 45
48 248
moveto
48 93
lineto
)) \circle \sans \bold \teeny "4"}
lineto
lineto
lineto
lineto
lineto
curveto
curveto
lineto
lineto
curveto
curveto
lineto
curveto
curveto
curveto
curveto
curveto
curveto
lineto
lineto
curveto
curveto
curveto
curveto
curveto
curveto
curveto
curveto
; begin halyard at mast top
30 330
moveto
lineto
; right 51 atop the clef
; left 51 along bottom of clef
; bottom end of halyard
30 30
% for an A-clef on A4:
created by Dr. Alex HELLSTEN (mathes, FINLAND) and distributed
% I found an SVG graphic of this kind of d-clef
% a single-filled-loop version of the shape which has a lacuna where the
indexed staveline crosses the gudgeon.
% I've called this form of the clef "Delian" after Delia DERBYSHIRE (MA, mathes
& music, ENGLAND) who first realized
% the music of the BBC Doctor WHO theme. Dr. HELLSTEN may want to more
specifically name it or its variants himself.
% Defines a D-clef glyph subscriped four (4) as DelianFOURClef. An instance of
a clefinition.
% scaling factor ~ 1/60
\markup \concat {\scale #'(0.0167 . 0.0167)
DelianFOURClef =
; the begin point 'outer curve' from just above the inner line point central
within the gudgeon
; initial short line up and to the left
;up78
20 300
; of 'outer curve', semi-final deliberate 'ALMOST curve-closing' up and towards
the right
; horizontal line-of-gap bottom-of-gap
133 179
lineto
lineto
; of 'inner curve', semi-final deliberate 'ALMOST curve-closing' down and
towards the right
; down 84
51 216
% I had sought words more fulminous in sophistication and much later realized
that this simplest E-word "eu" was the best.
% The font title suffix Echo is meant to suggest that this (in-fact) initial
design is an improvement perhaps
other person(s) might happen in turn to make a design which is better that
suffixed Echo.
% Defines an E-clef glyph subscriped four (4) as EuEchoFOURClef. An instance of
a clefinition.
; descending OUTER curve, upper MIDDLE LIMB as return to begin point
; a begin point
120 180
moveto
; ascending INNER curve to tip of bottom prong, extreme RIGHT point
\path #1
\path #6
\score {
120 181
#'((moveto
111 201
20 222
20 190
90 180
0 312
10 312
20 312
51 330
030
120 179
51 144
51 162
117 150
curveto
curveto
63 48
51 48
51 48
150 180
150 120
120 48
63 312
120 312
150 240
51 300
51 312
51 312
121 231
117 210
51 198
133 181
133 179
121 228
; upper inner seraph, ascending
; descending BIG OUTER CURVE; upper limb
;up18
0 330
lineto
lineto
; descending BIG OUTER CURVE; lower limb
;up18
048
lineto
lineto
; lower inner seraph, ascending
; ascending lower limb of BIG INNER CURVE
; ascending upper limb of BIG INNER CURVE
with the notion that E-clefs are eu-clefs.
% The name of this clef in this font is Eu Echo
; ascending INNER curve to INNER UPPER point
51 30
180 30
180 150
curveto
curveto
20 60
20 48
10 48
111 159
90 180
20 170
121 129
121 138
133 179
\new Staff \with {
clefPosition = #-6
middleCPosition = #-5
}
\absolute
c'^\markup{"'middle' C"}
{ \time 6/8
}
}
\new Staff \with {
clefPosition = #-6
middleCPosition = #2
}
\absolute
c'^\markup{"'middle' C"}
{ \time 6/8
}
}
\new Staff \with {
clefPosition = #-6
middleCPosition = #9
}
\absolute
c'^\markup{"'middle' C"}
{ \time 6/8
}
}
\new Staff \with {
clefPosition = #-6
middleCPosition = #1
}
\absolute
c'^\markup{"'middle' C"}
{ \time 6/8
}
}
\new Staff
{ \clef C \time 6/8
\absolute
c'^\markup{"'middle' C"}
}
}
\new Staff \with {
clefPosition = #-6
middleCPosition = #-1
}
\absolute
c'^\markup{"'middle' C"}
{ \time 6/8
AtriumFOURClef))
#(lambda (grob) (grob-interpret-markup grob
\override Clef.stencil =
AtriumTHREEClef DEMO
% for an A-clef on A3:
\score {
AtriumTHREEClef))
#(lambda (grob) (grob-interpret-markup grob
\override Clef.stencil =
AtriumTWOClef DEMO
% for an A-clef on A2:
\score {
AtriumTWOClef))
#(lambda (grob) (grob-interpret-markup grob
\override Clef.stencil =
#(lambda (grob) (grob-interpret-markup grob BarraTHREEClef))
\override Clef.stencil =
\score {
#(lambda (grob) (grob-interpret-markup grob DelianFOURClef))
\override Clef.stencil =
\score {
% for a B-clef: BarraTHREEClef DEMO
% for the C-clef: a 'generic' DEMO
\score {
% for a D-clef: DelianFOURClef DEMO
\score { % for an E-clef: EuEchoFOURClef DEMO \override Clef.stencil = #(lambda
(grob) (grob-interpret-markup grob EuEchoFOURClef)) \new Staff \with {
}
}
clefPosition = #-6
middleCPosition = #-2
}
\absolute
c'^\markup{"'middle' C"}
{ \time 6/8
}
}
% for the F-clef: a 'generic' DEMO
\score {
\new Staff
{ \clef F \time 6/8
\absolute
c'^\markup{"'middle' C"}
}
}
% for the G-clef: a 'generic' DEMO
\score {
\new Staff
{ \clef G \time 6/8
\absolute
c'^\markup{"'middle' C"}
}
}
OpenPGP_signature.asc
Description: OpenPGP digital signature
