2 % feta-timesig.mf -- implement Time Signatures
4 % source file of the Feta (not an abbreviation of Font-En-Tja) music font
6 % (c) 1998--1999 Mats Bengtsson <matsb@s3.kth.se>,
7 % Christian Mondrup <scancm@biobase.dk>
9 fet_begingroup("timesig");
12 save left_width, right_width;
13 left_width# := 0.9 interline#;
14 right_width# := .7 interline#;
15 define_pixels(left_width,right_width);
19 save hair, bulb_rad, left_fatness;
22 hair# := stafflinethickness#;
23 bulb_rad# := 0.4 interline#;
24 define_pixels(hair, bulb_rad);
30 z3r = (-left_width, 0);
32 z5r = (right_width - stafflinethickness, -0.4 interline);
35 penpos2(stafflinethickness, 90);
36 penpos3(left_fatness * interline, 180);
37 penpos4(stafflinethickness, -90);
40 draw_bulb(-1, z1l, z1r, bulb_rad, .8);
42 fill z1l{up} .. z2l{left} .. z3l{down} .. z4l{right} ..
43 simple_serif(z5l, z5r, -90) ..
44 z4r{left} .. z3r{up} .. z2r{right} .. z1r -- cycle;
50 fet_beginchar ("4/4 meter", "C4/4", "fourfourmeter")
52 set_char_box(left_width# + interline#, right_width# + interline#,
53 interline#, interline#);
58 fet_beginchar ("2/2 meter", "C2/2", "allabreve")
60 set_char_box(left_width# + interline#, right_width# + interline#,
61 1.4 interline#, 1.4 interline#);
66 excentricity = (-1.25 stafflinethickness, 0);
68 draw_block((- .75 stafflinethickness, -d) + excentricity, (.75 stafflinethickness , h) + excentricity);
71 path threequartercircle;
72 threequartercircle = halfcircle & quartercircle rotated 180;
74 save Cdiameter,Cthickness;
75 Cdiameter# := 3/2 interline#;
76 Cthickness# := 2 stafflinethickness#;
77 define_pixels(Cdiameter,Cthickness);
79 %% tempus imperfectum cum prolatione imperfecta
80 fet_beginchar ("Mensural 4/4 meter", "old4/4", "oldfourfourmeter")
81 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
82 .5 Cdiameter#, .5 Cdiameter#);
84 pickup pencircle scaled Cthickness;
85 draw threequartercircle rotated 45 scaled Cdiameter;
88 %% tempus imperfectum cum prolatione imperfecta proportio dupla
89 fet_beginchar ("Mensural 2/2 meter", "old2/2", "oldallabreve")
90 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
91 interline#, interline#);
93 pickup pencircle scaled Cthickness;
94 draw threequartercircle rotated 45 scaled Cdiameter;
95 draw_block((-Cthickness, -d), (0, h));
98 %% tempus perfectum cum prolatione imperfecta
99 fet_beginchar ("Mensural 3/2 meter", "old3/2", "oldthreetwometer")
100 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
101 .5 Cdiameter#, .5 Cdiameter#);
103 pickup pencircle scaled Cthickness;
104 draw fullcircle scaled Cdiameter;
107 %% tempus imperfectum cum prolatione perfecta
108 fet_beginchar ("Mensural 6/4 meter", "old6/4", "oldsixfourmeter")
109 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
110 .5 Cdiameter#, .5 Cdiameter#);
112 pickup pencircle scaled Cthickness;
113 draw threequartercircle rotated 45 scaled Cdiameter;
114 pickup pencircle scaled 4 stafflinethickness;
118 %% tempus perfectum cum prolatione perfecta
119 fet_beginchar ("Mensural 9/4 meter", "old9/4", "oldninefourmeter")
120 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
121 .5 Cdiameter#, .5 Cdiameter#);
123 pickup pencircle scaled Cthickness;
124 draw fullcircle scaled Cdiameter;
125 pickup pencircle scaled 4 stafflinethickness;
129 %% tempus perfectum cum prolatione imperfecta proportio dupla
130 fet_beginchar ("Mensural 3/4 meter", "old3/4", "oldthreefourmeter")
131 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
132 interline#, interline#);
134 pickup pencircle scaled Cthickness;
135 draw fullcircle scaled Cdiameter;
136 draw_block((-Cthickness/2, -d), (Cthickness/2, h));
139 %% tempus imperfectum cum prolatione perfecta proportio dupla
140 fet_beginchar ("Mensural 6/8 meter", "old6/8", "oldsixeightmeter")
141 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
142 interline#, interline#);
144 pickup pencircle scaled Cthickness;
145 draw threequartercircle rotated 45 scaled Cdiameter;
146 pickup pencircle scaled 4 stafflinethickness;
148 draw_block((-Cthickness/2, -d), (Cthickness/2, h));
151 %% tempus perfectum cum prolatione perfecta proportio dupla
152 fet_beginchar ("Mensural 9/8 meter", "old9/8", "oldnineeight")
153 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
154 interline#, interline#);
156 pickup pencircle scaled Cthickness;
157 draw fullcircle scaled Cdiameter;
158 pickup pencircle scaled 4 stafflinethickness;
160 draw_block((-Cthickness/2, -d), (Cthickness/2, h));
163 %% tempus imperfectum cum prolatione imperfecta diminutio simplex
164 fet_beginchar ("Mensural 4/8 meter", "old4/8", "oldfoureightmeter")
165 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
166 .5 Cdiameter#, .5 Cdiameter#);
168 pickup pencircle scaled Cthickness;
169 draw threequartercircle rotated 225 scaled Cdiameter;
172 %% tempus imperfectum cum prolatione perfecta diminutio simplex
173 fet_beginchar ("Mensural 6/8 meter", "old6/8alt", "oldsixeightmeteralt")
174 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
175 .5 Cdiameter#, .5 Cdiameter#);
177 pickup pencircle scaled Cthickness;
178 draw threequartercircle rotated 225 scaled Cdiameter;
179 pickup pencircle scaled 4 stafflinethickness;
183 %% tempus imperfectum cum prolatione imperfecta diminutio duplex
184 fet_beginchar ("Mensural 2/4 meter", "old2/4", "oldtwofourmeter")
185 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
186 interline#, interline#);
188 pickup pencircle scaled Cthickness;
189 draw threequartercircle rotated 225 scaled Cdiameter;
190 draw_block((-Cthickness, -d), (0, h));
193 fet_endgroup("timesig");