]> git.donarmstrong.com Git - lilypond.git/blob - mf/feta-timesig.mf
release: 1.3.146
[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--2001 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# := 1.0 staff_space#;
14         right_width# := 0.8 staff_space#;
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 staff_space#;
24         define_pixels(hair, bulb_rad);
25         left_fatness = 0.55;
26         
27         x1r = x5r;
28         y1r = .45 staff_space;
29         z2 = (0, staff_space);
30         z3r = (-left_width, 0);
31         z4 = (0, -staff_space);
32         z5r = (right_width - stafflinethickness, -0.4 staff_space);
33         
34         penpos1(hair, 10);
35         penpos2(stafflinethickness, 90);
36         penpos3(left_fatness * staff_space, 180);
37         penpos4(stafflinethickness, -90);
38         penpos5(hair, -5);
39         z6l = z1l;
40         penpos6(hair, 0);
41         
42         draw_bulb(-1, z6l,  z6r, bulb_rad, .8);
43
44         fill z1l{dir (100)} .. z2l{left} .. z3l{down} .. z4l{right} ..
45         simple_serif(z5l, z5r, -90) .. 
46         z4r{left} .. z3r{up} .. z2r{right} .. {dir (-80)}z1r -- cycle;
47         
48         penlabels(1,2,3,4,5,6);
49 enddef;
50
51 fet_beginchar ("4/4 meter", "C4/4", "fourfourmeter")
52         set_C_width;
53         set_char_box(left_width# + staff_space#, right_width# + staff_space#, 
54                 staff_space#, staff_space#);
55
56         draw_C;
57 fet_endchar;
58
59 fet_beginchar ("2/2 meter", "C2/2", "allabreve")
60         set_C_width;
61         set_char_box(left_width# + staff_space#, right_width# + staff_space#, 
62                 1.4 staff_space#, 1.4 staff_space#);
63         
64         draw_C;
65         save excentricity;
66         pair excentricity;
67         excentricity = (-1.25 stafflinethickness, 0);
68
69         draw_block((- .75 stafflinethickness, -d) + excentricity, (.75 stafflinethickness , h) + excentricity);
70 fet_endchar;
71
72 path threequartercircle;
73 threequartercircle = halfcircle & quartercircle rotated 180;
74
75 save Cdiameter,Cthickness;
76 Cdiameter# := 3/2 staff_space#;
77 Cthickness# := 2 stafflinethickness#;
78 define_pixels(Cdiameter,Cthickness);
79
80 %% tempus imperfectum cum prolatione imperfecta
81 fet_beginchar ("Mensural 4/4 meter", "old4/4", "oldfourfourmeter")
82         set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, 
83                 .5 Cdiameter#, .5 Cdiameter#);
84         
85         pickup pencircle scaled Cthickness;
86         draw threequartercircle rotated 45 scaled Cdiameter;
87 fet_endchar;
88
89 %% tempus imperfectum cum prolatione imperfecta proportio dupla
90 fet_beginchar ("Mensural 2/2 meter", "old2/2", "oldallabreve")
91         set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, 
92                 staff_space#, staff_space#);
93         
94         pickup pencircle scaled Cthickness;
95         draw threequartercircle rotated 45 scaled Cdiameter;
96         draw_block((-Cthickness, -d), (0, h));
97 fet_endchar;
98
99 %% tempus perfectum cum prolatione imperfecta
100 fet_beginchar ("Mensural 3/2 meter", "old3/2", "oldthreetwometer")
101         set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, 
102                 .5 Cdiameter#, .5 Cdiameter#);
103         
104         pickup pencircle scaled Cthickness;
105         draw fullcircle scaled Cdiameter;
106 fet_endchar;
107
108 %% tempus imperfectum cum prolatione perfecta
109 fet_beginchar ("Mensural 6/4 meter", "old6/4", "oldsixfourmeter")
110         set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, 
111                 .5 Cdiameter#, .5 Cdiameter#);
112         
113         pickup pencircle scaled Cthickness;
114         draw threequartercircle rotated 45 scaled Cdiameter;
115         pickup pencircle scaled 4 stafflinethickness;
116         draw (0,0);
117 fet_endchar;
118
119 %% tempus perfectum cum prolatione perfecta
120 fet_beginchar ("Mensural 9/4 meter", "old9/4", "oldninefourmeter")
121         set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, 
122                 .5 Cdiameter#, .5 Cdiameter#);
123         
124         pickup pencircle scaled Cthickness;
125         draw fullcircle scaled Cdiameter;
126         pickup pencircle scaled 4 stafflinethickness;
127         draw (0,0);
128 fet_endchar;
129
130 %% tempus perfectum cum prolatione imperfecta proportio dupla
131 fet_beginchar ("Mensural 3/4 meter", "old3/4", "oldthreefourmeter")
132         set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, 
133                 staff_space#, staff_space#);
134         
135         pickup pencircle scaled Cthickness;
136         draw fullcircle scaled Cdiameter;
137         draw_block((-Cthickness/2, -d), (Cthickness/2, h));
138 fet_endchar;
139
140 %% tempus imperfectum cum prolatione perfecta proportio dupla
141 fet_beginchar ("Mensural 6/8 meter", "old6/8", "oldsixeightmeter")
142         set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, 
143                  staff_space#, staff_space#);
144         
145         pickup pencircle scaled Cthickness;
146         draw threequartercircle rotated 45 scaled Cdiameter;
147         pickup pencircle scaled 4 stafflinethickness;
148         draw (0,0);
149         draw_block((-Cthickness/2, -d), (Cthickness/2, h));
150 fet_endchar;
151
152 %% tempus perfectum cum prolatione perfecta proportio dupla
153 fet_beginchar ("Mensural 9/8 meter", "old9/8", "oldnineeight")
154         set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, 
155                 staff_space#, staff_space#);
156         
157         pickup pencircle scaled Cthickness;
158         draw fullcircle scaled Cdiameter;
159         pickup pencircle scaled 4 stafflinethickness;
160         draw (0,0);
161         draw_block((-Cthickness/2, -d), (Cthickness/2, h));
162 fet_endchar;
163
164 %% tempus imperfectum cum prolatione imperfecta diminutio simplex
165 fet_beginchar ("Mensural 4/8 meter", "old4/8", "oldfoureightmeter")
166         set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, 
167         .5 Cdiameter#, .5 Cdiameter#);
168         
169         pickup pencircle scaled Cthickness;
170         draw threequartercircle rotated 225 scaled Cdiameter;
171 fet_endchar;
172
173 %% tempus imperfectum cum prolatione perfecta diminutio simplex
174 fet_beginchar ("Mensural 6/8 meter", "old6/8alt", "oldsixeightmeteralt")
175         set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, 
176                 .5 Cdiameter#, .5 Cdiameter#);
177         
178         pickup pencircle scaled Cthickness;
179         draw threequartercircle rotated 225 scaled Cdiameter;
180         pickup pencircle scaled 4 stafflinethickness;
181         draw (0,0);
182 fet_endchar;
183
184 %% tempus imperfectum cum prolatione imperfecta diminutio duplex
185 fet_beginchar ("Mensural 2/4 meter", "old2/4", "oldtwofourmeter")
186         set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, 
187                 staff_space#, staff_space#);
188         
189         pickup pencircle scaled Cthickness;
190         draw threequartercircle rotated 225 scaled Cdiameter;
191         draw_block((-Cthickness, -d), (0, h));
192 fet_endchar;
193
194 fet_endgroup("timesig");