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# := .8 interline#;
13 right_width# := .7 interline#;
14 define_pixels(left_width,right_width);
19 hair# := stafflinethickness#;
20 bulb_rad# := interline# / 3;
21 define_pixels(hair, bulb_rad);
26 z3r = (-left_width, 0);
28 z5r = (right_width, -2 stafflinethickness);
31 penpos2(stafflinethickness, 90);
32 penpos3(4 stafflinethickness, 180);
33 penpos4(stafflinethickness, -90);
36 draw_bulb(-1, z1l, z1r, bulb_rad, .8);
38 fill z1l{up} .. z2l{left} .. z3l{down} .. z4l{right} ..
39 simple_serif(z5l, z5r, -90) ..
40 z4r{left} .. z3r{up} .. z2r{right} .. z1r -- cycle;
46 fet_beginchar ("4/4 meter", "C4/4", "fourfourmeter")
48 set_char_box(left_width# + interline#, right_width# + interline#,
49 interline#, interline#);
54 fet_beginchar ("2/2 meter", "C2/2", "allabreve")
56 set_char_box(left_width# + interline#, right_width# + interline#,
57 1.4 interline#, 1.4 interline#);
60 draw_block((-1.5stafflinethickness, -d), (0, h));
63 path threequartercircle;
64 threequartercircle = halfcircle & quartercircle rotated 180;
66 save Cdiameter,Cthickness;
67 Cdiameter# := 3/2 interline#;
68 Cthickness# := 2 stafflinethickness#;
69 define_pixels(Cdiameter,Cthickness);
71 %% tempus imperfectum cum prolatione imperfecta
72 fet_beginchar ("Mensural 4/4 meter", "old4/4", "oldfourfourmeter")
73 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
74 .5 Cdiameter#, .5 Cdiameter#);
76 pickup pencircle scaled Cthickness;
77 draw threequartercircle rotated 45 scaled Cdiameter;
80 fet_beginchar ("Mensural 2/2 meter", "old2/2", "oldallabreve")
81 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
82 interline#, interline#);
84 pickup pencircle scaled Cthickness;
85 draw threequartercircle rotated 45 scaled Cdiameter;
86 draw_block((-Cthickness, -d), (0, h));
89 %% tempus perfectum cum prolatione imperfecta
90 fet_beginchar ("Mensural 3/2 meter", "old3/2", "oldthreetwometer")
91 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
92 .5 Cdiameter#, .5 Cdiameter#);
94 pickup pencircle scaled Cthickness;
95 draw fullcircle scaled Cdiameter;
98 %% tempus imperfectum cum prolatione perfecta
99 fet_beginchar ("Mensural 6/4 meter", "old6/4", "oldsixfourmeter")
100 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
101 .5 Cdiameter# + .5 interline#, .5 Cdiameter#+ .5 interline#);
103 pickup pencircle scaled Cthickness;
104 draw threequartercircle rotated 45 scaled Cdiameter
105 shifted (0,.5 interline);
106 pickup pencircle scaled 3 stafflinethickness;
107 draw (0,.5 interline);
110 %% tempus perfectum cum prolatione perfecta
111 fet_beginchar ("Mensural 9/4 meter", "old9/4", "oldninefourmeter")
112 set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
113 .5 Cdiameter# + .5 interline#, .5 Cdiameter#+ .5 interline#);
115 pickup pencircle scaled Cthickness;
116 draw fullcircle scaled Cdiameter shifted (0,.5 interline);
117 pickup pencircle scaled 3 stafflinethickness;
118 draw (0,.5 interline);
122 fet_endgroup("timesig");