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 Mats Bengtsson <matsb@s3.kth.se>
8 fet_begingroup("timesig");
11 save left_width, right_width;
12 left_width# := 0.9 interline#;
13 right_width# := .7 interline#;
14 define_pixels(left_width,right_width);
18 save hair, bulb_rad, left_fatness;
21 hair# := stafflinethickness#;
22 bulb_rad# := 0.4 interline#;
23 define_pixels(hair, bulb_rad);
29 z3r = (-left_width, 0);
31 z5r = (right_width - stafflinethickness, -0.4 interline);
34 penpos2(stafflinethickness, 90);
35 penpos3(left_fatness * interline, 180);
36 penpos4(stafflinethickness, -90);
39 draw_bulb(-1, z1l, z1r, bulb_rad, .8);
41 fill z1l{up} .. z2l{left} .. z3l{down} .. z4l{right} ..
42 simple_serif(z5l, z5r, -90) ..
43 z4r{left} .. z3r{up} .. z2r{right} .. z1r -- cycle;
49 fet_beginchar ("4/4 meter", "C4/4", "fourfourmeter")
51 set_char_box(left_width# + interline#, right_width# + interline#,
52 interline#, interline#);
57 fet_beginchar ("2/2 meter", "C2/2", "allabreve")
59 set_char_box(left_width# + interline#, right_width# + interline#,
60 1.4 interline#, 1.4 interline#);
65 excentricity = (-1.25 stafflinethickness, 0);
67 draw_block((- .75 stafflinethickness, -d) + excentricity, (.75 stafflinethickness , h) + excentricity);
70 path threequartercircle;
71 threequartercircle = halfcircle & quartercircle rotated 180;
73 save Cdiameter,Cthickness;
74 Cdiameter# := 3/2 interline#;
75 Cthickness# := 2 stafflinethickness#;
76 define_pixels(Cdiameter,Cthickness);
78 %% tempus imperfectum cum prolatione imperfecta
79 fet_beginchar ("Mensural 4/4 meter", "old4/4", "oldfourfourmeter")
80 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
81 .5 Cdiameter#, .5 Cdiameter#);
83 pickup pencircle scaled Cthickness;
84 draw threequartercircle rotated 45 scaled Cdiameter;
87 fet_beginchar ("Mensural 2/2 meter", "old2/2", "oldallabreve")
88 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
89 interline#, interline#);
91 pickup pencircle scaled Cthickness;
92 draw threequartercircle rotated 45 scaled Cdiameter;
93 draw_block((-Cthickness, -d), (0, h));
96 %% tempus perfectum cum prolatione imperfecta
97 fet_beginchar ("Mensural 3/2 meter", "old3/2", "oldthreetwometer")
98 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
99 .5 Cdiameter#, .5 Cdiameter#);
101 pickup pencircle scaled Cthickness;
102 draw fullcircle scaled Cdiameter;
105 %% tempus imperfectum cum prolatione perfecta
106 fet_beginchar ("Mensural 6/4 meter", "old6/4", "oldsixfourmeter")
107 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
108 .5 Cdiameter# + .5 interline#, .5 Cdiameter#+ .5 interline#);
110 pickup pencircle scaled Cthickness;
111 draw threequartercircle rotated 45 scaled Cdiameter
112 shifted (0,.5 interline);
113 pickup pencircle scaled 3 stafflinethickness;
114 draw (0,.5 interline);
117 %% tempus perfectum cum prolatione perfecta
118 fet_beginchar ("Mensural 9/4 meter", "old9/4", "oldninefourmeter")
119 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
120 .5 Cdiameter# + .5 interline#, .5 Cdiameter#+ .5 interline#);
122 pickup pencircle scaled Cthickness;
123 draw fullcircle scaled Cdiameter shifted (0,.5 interline);
124 pickup pencircle scaled 3 stafflinethickness;
125 draw (0,.5 interline);
129 fet_endgroup("timesig");