]> git.donarmstrong.com Git - lilypond.git/blob - mf/feta-timesig.mf
patch::: 1.1.39.mb2: Re: LilyPond 1.1.39 -- The Rantokil Release
[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 %% tempus imperfectum cum prolatione imperfecta proportio dupla
88 fet_beginchar ("Mensural 2/2 meter", "old2/2", "oldallabreve")
89         set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, 
90                 interline#, interline#);
91         
92         pickup pencircle scaled Cthickness;
93         draw threequartercircle rotated 45 scaled Cdiameter;
94         draw_block((-Cthickness, -d), (0, h));
95 fet_endchar;
96
97 %% tempus perfectum cum prolatione imperfecta
98 fet_beginchar ("Mensural 3/2 meter", "old3/2", "oldthreetwometer")
99         set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, 
100                 .5 Cdiameter#, .5 Cdiameter#);
101         
102         pickup pencircle scaled Cthickness;
103         draw fullcircle scaled Cdiameter;
104 fet_endchar;
105
106 %% tempus imperfectum cum prolatione perfecta
107 fet_beginchar ("Mensural 6/4 meter", "old6/4", "oldsixfourmeter")
108         set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, 
109                 .5 Cdiameter#, .5 Cdiameter#);
110         
111         pickup pencircle scaled Cthickness;
112         draw threequartercircle rotated 45 scaled Cdiameter;
113         pickup pencircle scaled 4 stafflinethickness;
114         draw (0,0);
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 Cdiameter#);
121         
122         pickup pencircle scaled Cthickness;
123         draw fullcircle scaled Cdiameter;
124         pickup pencircle scaled 4 stafflinethickness;
125         draw (0,0);
126 fet_endchar;
127
128 %% tempus perfectum cum prolatione imperfecta proportio dupla
129 fet_beginchar ("Mensural 3/4 meter", "old3/4", "oldthreefourmeter")
130         set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, 
131                 interline#, interline#);
132         
133         pickup pencircle scaled Cthickness;
134         draw fullcircle scaled Cdiameter;
135         draw_block((-Cthickness/2, -d), (Cthickness/2, h));
136 fet_endchar;
137
138 %% tempus imperfectum cum prolatione perfecta proportio dupla
139 fet_beginchar ("Mensural 6/8 meter", "old6/8", "oldsixeightmeter")
140         set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, 
141                  interline#, interline#);
142         
143         pickup pencircle scaled Cthickness;
144         draw threequartercircle rotated 45 scaled Cdiameter;
145         pickup pencircle scaled 4 stafflinethickness;
146         draw (0,0);
147         draw_block((-Cthickness/2, -d), (Cthickness/2, h));
148 fet_endchar;
149
150 %% tempus perfectum cum prolatione perfecta proportio dupla
151 fet_beginchar ("Mensural 9/8 meter", "old9/8", "oldnineeight")
152         set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, 
153                 interline#, interline#);
154         
155         pickup pencircle scaled Cthickness;
156         draw fullcircle scaled Cdiameter;
157         pickup pencircle scaled 4 stafflinethickness;
158         draw (0,0);
159         draw_block((-Cthickness/2, -d), (Cthickness/2, h));
160 fet_endchar;
161
162 fet_endgroup("timesig");