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