]> git.donarmstrong.com Git - lilypond.git/blob - mf/feta-timesig.mf
release: 1.1.26
[lilypond.git] / mf / feta-timesig.mf
1
2 % feta-timesig.mf --  implement Time Signatures
3
4 % source file of the Feta (not an abbreviation of Font-En-Tja) music font
5
6 % (c) 1998 Mats Bengtsson <matsb@s3.kth.se>
7
8 fet_begingroup("timesig");
9
10 def set_C_width =
11         save left_width, right_width;
12         left_width# := 0.9 interline#;
13         right_width# := .7 interline#;
14         define_pixels(left_width,right_width);
15 enddef;
16
17 def draw_C =
18         save hair, bulb_rad, left_fatness;
19
20   
21         hair# := stafflinethickness#;
22         bulb_rad# := 0.4 interline#;
23         define_pixels(hair, bulb_rad);
24         left_fatness = 0.55;
25         
26         x1r = x5r;
27         y1r = .45 interline;
28         z2 = (0, interline);
29         z3r = (-left_width, 0);
30         z4 = (0, -interline);
31         z5r = (right_width - stafflinethickness, -0.4 interline);
32         
33         penpos1(hair, 0);
34         penpos2(stafflinethickness, 90);
35         penpos3(left_fatness * interline, 180);
36         penpos4(stafflinethickness, -90);
37         penpos5(hair, -5);
38         
39         draw_bulb(-1, z1l,  z1r, bulb_rad, .8);
40
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;
44         
45 %       labels(1,2,3,4,5);
46         penlabels(1,2,3,4,5);
47 enddef;
48
49 fet_beginchar ("4/4 meter", "C4/4", "fourfourmeter")
50         set_C_width;
51         set_char_box(left_width# + interline#, right_width# + interline#, 
52                 interline#, interline#);
53         
54         draw_C;
55 fet_endchar;
56
57 fet_beginchar ("2/2 meter", "C2/2", "allabreve")
58         set_C_width;
59         set_char_box(left_width# + interline#, right_width# + interline#, 
60                 1.4 interline#, 1.4 interline#);
61         
62         draw_C;
63         save excentricity;
64         pair excentricity;
65         excentricity = (-1.25 stafflinethickness, 0);
66
67         draw_block((- .75 stafflinethickness, -d) + excentricity, (.75 stafflinethickness , h) + excentricity);
68 fet_endchar;
69
70 path threequartercircle;
71 threequartercircle = halfcircle & quartercircle rotated 180;
72
73 save Cdiameter,Cthickness;
74 Cdiameter# := 3/2 interline#;
75 Cthickness# := 2 stafflinethickness#;
76 define_pixels(Cdiameter,Cthickness);
77
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#);
82         
83         pickup pencircle scaled Cthickness;
84         draw threequartercircle rotated 45 scaled Cdiameter;
85 fet_endchar;
86
87 fet_beginchar ("Mensural 2/2 meter", "old2/2", "oldallabreve")
88         set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, 
89                 interline#, interline#);
90         
91         pickup pencircle scaled Cthickness;
92         draw threequartercircle rotated 45 scaled Cdiameter;
93         draw_block((-Cthickness, -d), (0, h));
94 fet_endchar;
95
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#);
100         
101         pickup pencircle scaled Cthickness;
102         draw fullcircle scaled Cdiameter;
103 fet_endchar;
104
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#);
109         
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);
115 fet_endchar;
116
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#);
121         
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);
126 fet_endchar;
127
128
129 fet_endgroup("timesig");