2 % feta-custodes.mf -- implement custos symbols
4 % source file of LilyPond's pretty-but-neat music font
6 % (C) 2000 Juergen Reuter <reuterj@ira.uka.de>
9 save black_notehead_width;
10 numeric black_notehead_width;
12 fet_begingroup("custodes");
14 noteheight#:=staff_space#+ (1 + overdone_heads) *stafflinethickness#;
15 define_pixels(noteheight);
24 fet_beginchar("Custos Hufnagel", "hufnagel", "hufnagel")
26 a_b:=1.54; % b_h*a_b/a_w = wd/ht
35 set_char_box(0, wd#, ht#/2, ht#/2);
36 black_notehead_width# := wd#;
38 save rh_width, rh_height, rh_edge; % rhombus dimensions
39 rh_width#=0.7ht#; % ht*tan(35)
41 rh_edge#=0.61ht#; % (ht/2)/cos(35)
43 define_pixels(rh_width, rh_height, rh_edge);
45 xscaled stafflinethickness
46 yscaled rh_edge rotated -35;
47 z1=(0.5rh_width,+0.25rh_height);
48 z2=(1.0rh_width,-0.25rh_height);
49 z3=(2.0rh_width,+0.50rh_height);
54 fet_beginchar("Reverse Custos Hufnagel", "rhufnagel", "rhufnagel")
56 a_b:=1.54; % b_h*a_b/a_w = wd/ht
65 set_char_box(0, wd#, ht#/2, ht#/2);
66 black_notehead_width# := wd#;
68 save rh_width, rh_height, rh_edge; % rhombus dimensions
69 rh_width#=0.7ht#; % ht*tan(35)
71 rh_edge#=0.61ht#; % (ht/2)/cos(35)
73 define_pixels(rh_width, rh_height, rh_edge);
75 xscaled stafflinethickness
76 yscaled rh_edge rotated +35;
77 z1=(0.5rh_width,-0.25rh_height);
78 z2=(1.0rh_width,+0.25rh_height);
79 z3=(2.0rh_width,-0.50rh_height);
90 fet_beginchar("Custos Med.", "medicaea", "medicaea")
92 a_b := 1.54; % b_h*a_b/a_w = wd/ht
97 ht# = noteheight# * mag;
101 set_char_box(0, wd#, ht#/2, ht#/2); % width intentionally too small
102 black_notehead_width# := wd#;
104 define_pixels(ht, wd);
105 pickup pencircle scaled stafflinethickness;
107 z1 = (0.0wd, +0.0ht);
108 z2 = (1.0wd + 0.5stafflinethickness, +0.0ht);
111 penstroke z1e{z2 - z1} .. {right}z2e;
120 fet_beginchar("Reverse Custos Med.", "rmedicaea", "rmedicaea")
122 a_b := 1.54; % b_h*a_b/a_w = wd/ht
126 save a, beta, ht, wd;
127 ht# = noteheight# * mag;
131 set_char_box(0, wd#, ht#/2, ht#/2); % width intentionally too small
132 black_notehead_width# := wd#;
134 define_pixels(ht, wd);
135 pickup pencircle scaled stafflinethickness;
137 z1 = (0.0wd, +0.0ht);
138 z2 = (1.0wd + 0.5stafflinethickness, -0.0ht);
141 penstroke z1e{z2 - z1} .. {right}z2e;
151 % Editio Vaticana style
155 fet_beginchar("Custos Ed. Vat.", "vaticana", "vaticana")
157 a_b := 1.54; % b_h*a_b/a_w = wd/ht
161 save a, beta, ht, wd;
162 ht# = noteheight# * mag;
166 set_char_box(0, wd#, ht#/2, ht#/2);
167 black_notehead_width# := wd#;
169 define_pixels(ht, wd);
170 pickup pencircle scaled stafflinethickness;
172 z1 = (0.0wd, +0.05ht);
173 z2 = (1.0wd + 0.5stafflinethickness, 0.0ht);
176 penstroke z1e{z2 - z1} .. {right}z2e;
185 fet_beginchar("Reverse Custos Ed. Vat.", "rvaticana", "rvaticana")
187 a_b := 1.54; % b_h*a_b/a_w = wd/ht
191 save a, beta, ht, wd;
192 ht# = noteheight# * mag;
196 set_char_box(0, wd#, ht#/2, ht#/2);
197 black_notehead_width# := wd#;
199 define_pixels(ht, wd);
200 pickup pencircle scaled stafflinethickness;
202 z1 = (0.0wd, -0.05ht);
203 z2 = (1.0wd + 0.5stafflinethickness, -0.0ht);
206 penstroke z1e{z2 - z1} .. {right}z2e;
220 fet_beginchar("Custos Mensural", "mensural", "mensural")
222 a_b:=1.54; % b_h*a_b/a_w = wd/ht
226 save a, beta, ht, wd;
231 set_char_box(0, wd#, ht#/2, ht#/2); % width intentionally too small
232 black_notehead_width# := wd#;
234 define_pixels(ht, wd);
235 pickup pencircle xscaled stafflinethickness yscaled 0.4ht rotated -35;
242 draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
246 fet_beginchar("Reverse Custos Mensural", "rmensural", "rmensural")
248 a_b:=1.54; % b_h*a_b/a_w = wd/ht
252 save a, beta, ht, wd;
257 set_char_box(0, wd#, ht#/2, ht#/2); % width intentionally too small
258 black_notehead_width# := wd#;
260 define_pixels(ht, wd);
261 pickup pencircle xscaled stafflinethickness yscaled 0.4ht rotated +35;
268 draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
271 fet_endgroup("custodes");
272 define_pixels(black_notehead_width);