lilypond-0.1.18
[lilypond.git] / mf / eindelijk.mf
blobdeabf71facd6b184d69cc7fb489ad1a4cb863ffd
1 % eindelijk.mf
2 % LilyPond's own rest(s)
4 % MO*TeX stuff
5 % nhh#:=interline#;
6 % nhw#:=6/5*interline#;
7 % define_pixels(interline,nhw);
9 med#:=1/33designsize;
10 thick#:=1/16designsize;
11 define_blacker_pixels(med,thick);
12 pen med_pen;
13 med_pen:= pencircle scaled med;
15 rthin:=1/8interline;
16 % rthick:=2rthin;
17 rthick:=2thick+rthin;
19 def shift_pic (expr pone, ptwo) =
20   currentpicture:=currentpicture shifted (round(pone),round(ptwo))
21 enddef;
23 % ugh, dunno how to generate doubles "outside*" rests?
24 fet_begingroup("almostrests");
26 % stem#:=1/8interline#;
27 stem#:=1/5interline#;
28 flare#:=2/3interline#;
29 define_pixels(stem,flare);
31 fet_beginchar(incr code,interline#,4interline#,0,0,"Quarter rest","4","quartrest");
32         alpha:=-50;
33         penpos1(rthin,alpha+90);
34         penpos2(5/4rthick,alpha);
35         penpos4(5/4rthick,alpha);
36         penpos3(3/4rthick,alpha);
37         penpos6(rthin,alpha-20);
38 %       penpos6(rthick,alpha-20);
39 %       penpos7(4/3thick,alpha);
40         penpos7(5/8rthick,alpha);
41         penpos8(rthin,-10);
42         y1l=7/2interline; x1l=1/3interline;
43         z2r=z1+(interline*right) rotated alpha;
44         z3=1/2[z2,z4];
45         x4=3/8interline; y4=2interline;
46         z6=z4l+(5/4interline*right) rotated alpha;
47 %       x7l=x4l; y7r=y6l;
48         x7l=x4l; y7l=y4r;
49         x8=2/5interline; y8= interline-1/4interline;
50         z5=z6r shifted (sqrt(2)*rthin/4,sqrt(2)*rthin/4);
52         pickup penrazor scaled rthin rotated 45;
53         draw z1--z2r; 
54         draw z4l--z5;
55         penstroke z2e..z3e..z4e;
56         penstroke z6e..tension1.4..z7e..tension1.4..z8e;
57         penlabels(1,2,3,4,5,6,7,8);
58         endchar;
60 def crook(expr a,w) =
61         begingroup;
62         save x,y;
63         penpos1(flare/2,-90);
64         penpos2(flare/2,0);
65         penpos3(flare/2,90);
66         penpos4(flare/2,180);
67         x4r=xpart a-w; y3r=ypart a+flare/4;
68         x1l=x2l=x3l=x4l;
69         y1l=y2l=y3l=y4l;
70         penpos5(stem,250);
71         x5=x4r+9/8flare; y5r=y1r;
72         penpos6(stem,260);
73         x6l=xpart a; y6l=ypart a;
74         penstroke z1e..z2e..z3e..z4e..z1e..z5e{right}..z6e;
75         penlabels(1,2,3,4,5,6);
76         endgroup;
77         enddef;
79 def brush(expr a,w,b,v) =
80         begingroup;
81         save x,y;
82         z1=a; z2=b;
83         penpos3(w,angle(z2-z1)+90);
84         penpos4(w,angle(z2-z1));
85         penpos5(v,angle(z1-z2)+90);
86         penpos6(v,angle(z1-z2));
87         x3=x4=x1; y3=y4=y1;
88         x5=x6=x2; y5=y6=y2;
89         fill z3r{z1-z2}..z4l..{z2-z1}z3l..z5r{z2-z1}..z6l..{z1-z2}z5l..cycle;
90         penlabels(1,2,3,4,5,6);
91         endgroup;
92         enddef;
94 fet_beginchar(incr code,4/3interline#,5/3interline#+2stafflinethickness#,0,0,"8th rest","-2","eighthrest");
95         save x,y;
96         x1=w-stem/6; y1=h-flare/4;
97         crook (z1,w-stem/6);
98         z2-z1=whatever*dir70;
99         y2=stem/2;
100         brush (z1,stem/3,z2,stem);
101         % ugh
102         currentpicture:=currentpicture shifted (0,interline);
103 %       currentpicture:=currentpicture shifted (0,interline+2stafflinethickness);
104         endchar;
106 fet_beginchar(incr code,4/3interline#,5/3interline#+interline#+2stafflinethickness#,0,0,"16th rest","-2","sixteenthrest");
107         save x,y;
108         x1=w-stem/6; y1=h-flare/4;
109         z2-z1=whatever*dir74;
110         y2=stem/2;
111         brush (z1,stem/2,z2,stem);
112         crook (z1,7/8w);
113         z3-z1=whatever*dir74;
114         y3=y1-interline;
115         crook (z3,7/8w);
116 %       currentpicture:=currentpicture shifted (0,2stafflinethickness);
117         endchar;
119 fet_beginchar(incr code,4/3interline#,5/3interline#+2interline#+2stafflinethickness#,0,0,"32th rest","-2","thirtysecondrest");
120         save x,y;
121         x1=w-stem/6; y1=h-flare/4;
122         z2-z1=whatever*dir76;
123         y2=stem/2;
124         brush (z1,stem/2,z2,stem);
125         crook (z1,7/8w);
126         z3-z1=whatever*dir76;
127         y3=y1-interline;
128         crook (z3,7/8w);
129         z4-z1=whatever*dir76;
130         y4=y1-2interline;
131         crook (z4,7/8w);
132 %       currentpicture:=currentpicture shifted (0,2stafflinethickness);
133         endchar;
135 fet_beginchar(incr code,4/3interline#,5/3interline#+3interline#+2stafflinethickness#,0,0,"64th rest","-2","sixtyfourthrest");
136         save x,y;
137         x1=w-stem/6; y1=h-flare/4;
138         z2-z1=whatever*dir78;
139         y2=stem/2;
140         brush (z1,stem/2,z2,stem);
141         crook (z1,7/8w);
142         z3-z1=whatever*dir78;
143         y3=y1-interline;
144         crook (z3,7/8w);
145         z4-z1=whatever*dir78;
146         y4=y1-2interline;
147         crook (z4,7/8w);
148         z5-z1=whatever*dir78;
149         y5=y1-3interline;
150         crook (z5,7/8w);
151 %       currentpicture:=currentpicture shifted (0,2stafflinethickness);
152         endchar;
154 fet_beginchar(incr code,4/3interline#,5/3interline#+4interline#+2stafflinethickness#,0,0,"128th rest","-2","hundredtwentyeighthrest");
155         save x,y;
156         x1=w-stem/6; y1=h-flare/4;
157         z2-z1=whatever*dir80;
158         y2=stem/2;
159         brush (z1,stem/2,z2,stem);
160         crook (z1,7/8w);
161         z3-z1=whatever*dir80;
162         y3=y1-interline;
163         crook (z3,7/8w);
164         z4-z1=whatever*dir80;
165         y4=y1-2interline;
166         crook (z4,7/8w);
167         z5-z1=whatever*dir80;
168         y5=y1-3interline;
169         crook (z5,7/8w);
170         z6-z1=whatever*dir80;
171         y6=y1-4interline;
172         crook (z6,7/8w);
173 %       currentpicture:=currentpicture shifted (0,2stafflinethickness);
174         endchar;
176 fet_endgroup("rests");