]> git.donarmstrong.com Git - lilypond.git/blob - mf/feta-timesig.mf
release: 1.1.56
[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--1999 Mats Bengtsson <matsb@s3.kth.se>,
7 %               Christian Mondrup <scancm@biobase.dk>
8
9 fet_begingroup("timesig");
10
11 def set_C_width =
12         save left_width, right_width;
13         left_width# := 0.9 interline#;
14         right_width# := .7 interline#;
15         define_pixels(left_width,right_width);
16 enddef;
17
18 def draw_C =
19         save hair, bulb_rad, left_fatness;
20
21   
22         hair# := stafflinethickness#;
23         bulb_rad# := 0.4 interline#;
24         define_pixels(hair, bulb_rad);
25         left_fatness = 0.55;
26         
27         x1r = x5r;
28         y1r = .45 interline;
29         z2 = (0, interline);
30         z3r = (-left_width, 0);
31         z4 = (0, -interline);
32         z5r = (right_width - stafflinethickness, -0.4 interline);
33         
34         penpos1(hair, 0);
35         penpos2(stafflinethickness, 90);
36         penpos3(left_fatness * interline, 180);
37         penpos4(stafflinethickness, -90);
38         penpos5(hair, -5);
39         
40         draw_bulb(-1, z1l,  z1r, bulb_rad, .8);
41
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;
45         
46 %       labels(1,2,3,4,5);
47         penlabels(1,2,3,4,5);
48 enddef;
49
50 fet_beginchar ("4/4 meter", "C4/4", "fourfourmeter")
51         set_C_width;
52         set_char_box(left_width# + interline#, right_width# + interline#, 
53                 interline#, interline#);
54         
55         draw_C;
56 fet_endchar;
57
58 fet_beginchar ("2/2 meter", "C2/2", "allabreve")
59         set_C_width;
60         set_char_box(left_width# + interline#, right_width# + interline#, 
61                 1.4 interline#, 1.4 interline#);
62         
63         draw_C;
64         save excentricity;
65         pair excentricity;
66         excentricity = (-1.25 stafflinethickness, 0);
67
68         draw_block((- .75 stafflinethickness, -d) + excentricity, (.75 stafflinethickness , h) + excentricity);
69 fet_endchar;
70
71 path threequartercircle;
72 threequartercircle = halfcircle & quartercircle rotated 180;
73
74 save Cdiameter,Cthickness;
75 Cdiameter# := 3/2 interline#;
76 Cthickness# := 2 stafflinethickness#;
77 define_pixels(Cdiameter,Cthickness);
78
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#);
83         
84         pickup pencircle scaled Cthickness;
85         draw threequartercircle rotated 45 scaled Cdiameter;
86 fet_endchar;
87
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#);
92         
93         pickup pencircle scaled Cthickness;
94         draw threequartercircle rotated 45 scaled Cdiameter;
95         draw_block((-Cthickness, -d), (0, h));
96 fet_endchar;
97
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#);
102         
103         pickup pencircle scaled Cthickness;
104         draw fullcircle scaled Cdiameter;
105 fet_endchar;
106
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#);
111         
112         pickup pencircle scaled Cthickness;
113         draw threequartercircle rotated 45 scaled Cdiameter;
114         pickup pencircle scaled 4 stafflinethickness;
115         draw (0,0);
116 fet_endchar;
117
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#);
122         
123         pickup pencircle scaled Cthickness;
124         draw fullcircle scaled Cdiameter;
125         pickup pencircle scaled 4 stafflinethickness;
126         draw (0,0);
127 fet_endchar;
128
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#);
133         
134         pickup pencircle scaled Cthickness;
135         draw fullcircle scaled Cdiameter;
136         draw_block((-Cthickness/2, -d), (Cthickness/2, h));
137 fet_endchar;
138
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#);
143         
144         pickup pencircle scaled Cthickness;
145         draw threequartercircle rotated 45 scaled Cdiameter;
146         pickup pencircle scaled 4 stafflinethickness;
147         draw (0,0);
148         draw_block((-Cthickness/2, -d), (Cthickness/2, h));
149 fet_endchar;
150
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#);
155         
156         pickup pencircle scaled Cthickness;
157         draw fullcircle scaled Cdiameter;
158         pickup pencircle scaled 4 stafflinethickness;
159         draw (0,0);
160         draw_block((-Cthickness/2, -d), (Cthickness/2, h));
161 fet_endchar;
162
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#);
167         
168         pickup pencircle scaled Cthickness;
169         draw threequartercircle rotated 225 scaled Cdiameter;
170 fet_endchar;
171
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#);
176         
177         pickup pencircle scaled Cthickness;
178         draw threequartercircle rotated 225 scaled Cdiameter;
179         pickup pencircle scaled 4 stafflinethickness;
180         draw (0,0);
181 fet_endchar;
182
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#);
187         
188         pickup pencircle scaled Cthickness;
189         draw threequartercircle rotated 225 scaled Cdiameter;
190         draw_block((-Cthickness, -d), (0, h));
191 fet_endchar;
192
193 fet_endgroup("timesig");