1 % Feta (not the Font-En-Tja) music font -- ancient script symbols
2 % This file is part of LilyPond, the GNU music typesetter.
4 % Copyright (C) 2002--2010 Juergen Reuter <reuter@ipd.uka.de>
7 % LilyPond is free software: you can redistribute it and/or modify
8 % it under the terms of the GNU General Public License as published by
9 % the Free Software Foundation, either version 3 of the License, or
10 % (at your option) any later version.
12 % LilyPond is distributed in the hope that it will be useful,
13 % but WITHOUT ANY WARRANTY; without even the implied warranty of
14 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 % GNU General Public License for more details.
17 % You should have received a copy of the GNU General Public License
18 % along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
20 fet_begingroup ("scripts");
22 fet_beginchar ("ictus", "ictus");
24 ht# = .35 staff_space#;
27 define_pixels (wd, ht);
33 T := identity xscaled wd
34 yscaled blot_diameter;
35 pickup pencircle transformed T;
36 ellipse := fullcircle transformed T;
38 set_char_box (wd# / 2, wd# / 2, ht# / 2, ht# / 2);
45 fill get_subpath (ellipse, up, down, z1)
46 -- get_subpath (ellipse, down, up, z2)
54 save thick, thin, ht, wd;
56 thin# = 1 linethickness#;
57 thick# = 1.2 linethickness#;
58 ht# = .35 staff_space#;
59 wd# = .25 staff_space#;
61 define_pixels (wd, ht, thin, thick);
63 z1 = z2 = (-wd / 2 + thin / 2, -ht / 2 + thin / 2);
64 z3 = z4 = (wd / 2 - thick / 2, ht / 2 - thick / 2);
66 penpos1 (thin, angle (z1 - z3));
67 penpos2 (thin, angle (z1 - z3) + 90);
68 penpos3 (thick, angle (z3 - z1) + 90);
69 penpos4 (thick, angle (z3 - z1));
79 set_char_box (wd#/2, wd#/2, ht#/2, ht#/2);
83 fet_beginchar ("accentus up", "uaccentus");
85 penlabels (1, 2, 3, 4);
89 fet_beginchar ("accentus down", "daccentus");
95 def draw_half_circle (expr diam) =
100 define_pixels (diameter);
102 thick = 0.6 linethickness;
105 penpos2 (thick, -90);
106 penpos3 (thick, -180);
108 z1r = (diameter / 2, 0);
109 z2r = (0, -diameter / 2);
110 z3r = (-diameter / 2, 0);
118 fet_beginchar ("half circle", "usemicirculus");
119 draw_half_circle (5/16 staff_space#);
121 currentpicture := currentpicture yscaled -1;
123 set_char_box (diameter# / 2, diameter# / 2,
128 fet_beginchar ("half circle", "dsemicirculus");
129 draw_half_circle (5/16 staff_space#);
131 set_char_box (diameter# / 2, diameter# / 2,
138 fet_beginchar ("circle", "circulus");
139 save diameter, thick;
141 diameter# = 5/16 staff_space#;
143 define_pixels (diameter);
145 thick = 0.6 linethickness;
147 fill fullcircle scaled diameter;
148 unfill fullcircle scaled (diameter - 2 thick);
150 set_char_box (diameter# / 2, diameter# / 2,
151 diameter# / 2, diameter# / 2);
155 fet_beginchar ("augmentum", "augmentum");
158 diameter# = 0.25 staff_space#;
160 define_pixels (diameter);
162 pickup pencircle scaled diameter;
166 set_char_box (diameter# / 2, diameter# / 2,
167 diameter# / 2, diameter# / 2);
171 def draw_signum_congruentiae =
172 set_char_box (0.50 staff_space# + 1.5 linethickness#,
173 0.50 staff_space# + 1.5 linethickness#,
175 2.00 staff_space# + 3.5 linethickness#);
180 ellipse := fullcircle xscaled 1.0 linethickness
181 yscaled 5.0 linethickness
184 z1 = (+0.50 staff_space, +2.00 staff_space);
185 z2 = (+0.00 staff_space, +2.00 staff_space);
186 z3 = (-0.50 staff_space, +1.50 staff_space);
187 z4 = (-0.25 staff_space, +1.00 staff_space);
188 z5 = (+0.10 staff_space, +0.80 staff_space);
189 z6 = (+0.00 staff_space, +0.00 staff_space);
198 % we avoid cusps originally present in `draw pat'
199 fill get_subpath (ellipse,
200 -direction 0 of pat, direction 0 of pat, z1)
201 .. get_subpoint (ellipse, direction 1 of pat, z2)
203 .. get_subpoint (ellipse, direction 2 of pat, z3)
205 .. get_subpoint (ellipse, direction 3 of pat, z4)
207 .. get_subpoint (ellipse, direction 4 of pat, z5)
209 .. get_subpath (ellipse,
210 direction 4.8 of pat, -direction 5 of pat, z6)
211 .. get_subpoint (ellipse, -direction 4 of pat, z5)
212 {-direction 4 of pat}
213 .. get_subpoint (ellipse, -direction 3 of pat, z4)
214 {-direction 3 of pat}
215 .. get_subpoint (ellipse, -direction 2.5 of pat, point 2.5 of pat)
216 .. get_subpoint (ellipse, -direction 1 of pat, z2)
217 {-direction 1 of pat}
220 pickup pencircle scaled 3.0 linethickness;
222 z7 = (-0.5 staff_space, +0.0 staff_space);
223 z8 = (+0.5 staff_space, +0.0 staff_space);
230 fet_beginchar ("signum congruentiae up", "usignumcongruentiae");
231 draw_signum_congruentiae;
232 labels (1, 2, 3, 4, 5, 6, 7, 8);
236 fet_beginchar ("signum congruentiae down", "dsignumcongruentiae");
237 draw_signum_congruentiae;
242 fet_endgroup ("scripts");