]> git.donarmstrong.com Git - lilypond.git/blob - mf/feta-timesig.mf
release: 1.0.13
[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# := .8 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;
19         hair# := stafflinethickness#;
20         bulb_rad# := interline# / 3;
21         define_pixels(hair, bulb_rad);
22
23         x1r = x5;
24         y1r = .4 interline;
25         z2 = (0, interline);
26         z3r = (-left_width, 0);
27         z4 = (0, -interline);
28         z5r = (right_width, -2 stafflinethickness);
29         
30         penpos1(hair, 0);
31         penpos2(stafflinethickness, 90);
32         penpos3(4 stafflinethickness, 180);
33         penpos4(stafflinethickness, -90);
34         penpos5(hair, -5);
35         
36         draw_bulb(-1, z1l,  z1r, bulb_rad, .8);
37
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;
41         
42 %       labels(1,2,3,4,5);
43         penlabels(1,2,3,4,5);
44 enddef;
45
46 fet_beginchar ("4/4 meter", "C4/4", "fourfourmeter")
47         set_C_width;
48         set_char_box(left_width# + interline#, right_width# + interline#, 
49                 interline#, interline#);
50         
51         draw_C;
52 fet_endchar;
53
54 fet_beginchar ("2/2 meter", "C2/2", "allabreve")
55         set_C_width;
56         set_char_box(left_width# + interline#, right_width# + interline#, 
57                 1.4 interline#, 1.4 interline#);
58         
59         draw_C;
60         draw_block((-1.5stafflinethickness, -d), (0, h));
61 fet_endchar;
62
63 path threequartercircle;
64 threequartercircle = halfcircle & quartercircle rotated 180;
65
66 save Cdiameter,Cthickness;
67 Cdiameter# := 3/2 interline#;
68 Cthickness# := 2 stafflinethickness#;
69 define_pixels(Cdiameter,Cthickness);
70
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#);
75         
76         pickup pencircle scaled Cthickness;
77         draw threequartercircle rotated 45 scaled Cdiameter;
78 fet_endchar;
79
80 fet_beginchar ("Mensural 2/2 meter", "old2/2", "oldallabreve")
81         set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, 
82                 interline#, interline#);
83         
84         pickup pencircle scaled Cthickness;
85         draw threequartercircle rotated 45 scaled Cdiameter;
86         draw_block((-Cthickness, -d), (0, h));
87 fet_endchar;
88
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#);
93         
94         pickup pencircle scaled Cthickness;
95         draw fullcircle scaled Cdiameter;
96 fet_endchar;
97
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#);
102         
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);
108 fet_endchar;
109
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#);
114         
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);
119 fet_endchar;
120
121
122 fet_endgroup("timesig");