]> git.donarmstrong.com Git - lilypond.git/blob - mf/feta-klef.mf
release: 0.1.26
[lilypond.git] / mf / feta-klef.mf
1
2 fet_begingroup("klef");
3
4 def draw_bass_clef(expr reduction, center) = 
5         save thinness, left_shoot, reduced_il;
6         save left_fat, right_fat, dot_size, dot_sep;
7         save hip_factor;
8
9         left_shoot = 0.3;
10         left_fat = .3;
11         right_fat = .5;
12         dot_size = .4;
13         dot_sep = 1.2;
14         hip_factor = 0.95;
15         thinness = stafflinethickness;
16         
17
18         reduced_il# = interline# * reduction;
19         define_pixels(reduced_il);
20         set_char_box(left_fat * reduced_il#, 
21                 (1 + hip_factor + right_fat/2)* reduced_il# +
22                 (dot_sep+ 1) * dot_size *reduced_il#
23                 , 2.5 reduced_il#, 1.0 reduced_il#)
24
25         z2 - z1 = (1.1 reduced_il, reduced_il);
26         z3 = (x2 + hip_factor* reduced_il, y1);
27         z4 - z1 = (- left_shoot * reduced_il, -2.5 reduced_il);
28
29         z1extreme = z1l - ( thinness/2, 0);
30         penpos1(left_fat* reduced_il , 0);
31         z1r = (center, 0);
32         z5 = (x3l +  dot_sep * dot_size * interline, .5 interline);
33         
34         %
35         % [Wanske] says that the extreme x point should be exactly between 
36         % the dots, but her picture shows that the extreme is ~ 0.2 ss lower
37         % hence 170 (and not 180).  (.2 is  a big amount, but because of 
38         % the near vertical shape, it is not very clear.
39         %
40         penpos3(right_fat * reduced_il, 180);
41
42         penlabels(1,3);
43         labels(2,4);
44
45
46         pickup pencircle scaled thinness;
47         filldraw z1r{up} .. z2{right} .. z3r{down}  .. {curl 0} z4 {curl 0}
48                 .. z3l{up} .. z2{left} .. z1l{down} -- cycle;
49
50         draw_bulb(1, z1r, z1extreme, 1.2 , 1.2);
51
52         pickup pencircle scaled (dot_size * interline);
53         draw z5;
54         draw z5 yscaled -1;
55
56 enddef;
57
58
59 fet_beginchar("F clef", "bass", "ughbassclef")
60         draw_bass_clef(1.0, .5 interline); % .5 -> silly hack to accomodate 
61         % motex 
62 fet_endchar;
63
64 fet_beginchar("reduced F clef", "bass_change", "ughcbassclef")
65         draw_bass_clef(.8, .5 interline);
66 fet_endchar;
67
68 fet_endgroup("klef");