]> git.donarmstrong.com Git - lilypond.git/blob - mf/feta-eindelijk.mf
release: 1.0.1
[lilypond.git] / mf / feta-eindelijk.mf
1 % eindelijk.mf
2 % LilyPond's own rest(s)
3
4
5 fet_begingroup("rests");
6
7 begingroup
8
9 thick#:=1/16designsize;
10 define_blacker_pixels(thick);
11
12 rthin:=1/8*interline;
13 % rthick:=2rthin;
14 rthick:=2thick+rthin;
15
16 def shift_pic (expr pone, ptwo) =
17   currentpicture:=currentpicture shifted (round(pone),round(ptwo))
18 enddef;
19
20 % stuff for     8th,16th etc rests
21 %
22 save stem, ball_crook_stem, ball_crook_balldiam, flare;
23
24 % stem#:=1/8*interline#;
25 stem# = 1/5interline#;
26 % flare# = 2/3interline#;
27 flare# = 2/3interline# - 1/8stafflinethickness#;
28
29 define_pixels(stem,flare);
30
31 ball_crook_stem = stem;
32 ball_crook_balldiam =flare;
33
34
35 save block_rest_y, block_rest_x;
36
37 block_rest_y# = 5/8 interline#;
38 block_rest_x# = 3/2 interline#;
39
40 define_pixels(block_rest_y, block_rest_x);
41
42 def block_rest =
43         draw_block ((0,0), (block_rest_x, block_rest_y));
44         enddef;
45
46 fet_beginchar( "whole rest", "0", "wholerest");
47         set_char_box(0, block_rest_x#,
48                 block_rest_y#,  0);
49         block_rest;
50         currentpicture := currentpicture shifted (0,- block_rest_y);
51 fet_endchar;
52
53 fet_beginchar("half rest", "1", "halfrest");
54         set_char_box(0, block_rest_x#, 0, block_rest_y#);
55         block_rest;
56 fet_endchar;
57
58
59 %
60 % should use ledgerline thickness?
61 %
62 fet_beginchar( "whole rest (outside staff)", "0o", "outsidewholerest");
63         set_char_box(block_rest_y#, block_rest_x# + block_rest_y#, 
64                 block_rest_y#, ledgerlinethickness#/2);
65         block_rest;
66         currentpicture := currentpicture shifted (0, - block_rest_y);
67         pickup pencircle scaled ledgerlinethickness;
68
69         y5 = y6 = 0;
70         lft x5 = - b; 
71         rt x6 = w;
72         draw z5 .. z6;
73 fet_endchar;
74
75 fet_beginchar("half rest (outside staff)", "1o", "outsidehalfrest");
76         set_char_box(block_rest_y#, block_rest_x#+ block_rest_y#, 
77                 ledgerlinethickness#/2, block_rest_y#);
78         block_rest;
79         pickup pencircle scaled ledgerlinethickness;
80         y5 = y6 = 0;
81         lft x5 = - b; 
82         rt x6 = w;
83         draw z5 .. z6;
84 fet_endchar;
85
86
87 save breve_rest_y, breve_rest_x;
88
89 breve_rest_y# =  interline#;
90 breve_rest_x# = 3/5 interline#;
91
92 define_pixels(breve_rest_y, breve_rest_x);
93
94 fet_beginchar("breve rest", "-1", "breverest");
95        set_char_box(0, breve_rest_x#, 0, breve_rest_y#);
96        draw_block ((0,0), (breve_rest_x, breve_rest_y));
97 fet_endchar;
98
99 fet_beginchar("longa rest", "-2", "longarest");
100        set_char_box(0, breve_rest_x#, breve_rest_y#, breve_rest_y#);
101        draw_block ((0,-breve_rest_y), (breve_rest_x, breve_rest_y));
102 fet_endchar;
103
104
105 fet_beginchar("Quarter rest","2","quartrest");
106         save alpha;
107         alpha:=-50;
108         save ne,nw,se,sw; pair ne,nw,se,sw;
109         se=dir alpha; nw=dir (alpha+180);
110         ne=dir (alpha+90); sw=dir (alpha-90);
111         penpos1(rthin,alpha+90);
112         penpos2(5/4rthick,alpha);
113         penpos4(5/4rthick,alpha);
114         penpos5(rthin,alpha+90);
115         penpos3(3/4rthick,alpha);
116 %       penpos6(5/8rthick,alpha);
117         penpos6(2/3rthick,alpha);
118         penpos7(1/2rthin,alpha+90);
119
120         z10=z2l+1/2rthin*sw;
121 %       z11=z4l+1/2rthin*sw;
122         z11=z4l+1/2rthin*sw+1/2rthin*se;
123         z12=z4r+1/2rthin*ne;
124 %       z13=z2r+1/2rthin*ne;
125         z13=z2r+1/2rthin*ne+1/2rthin*nw;
126
127         y1l=7/2interline; x1l=1/3interline;
128         z2r=z1+interline*se;
129         z3=1/2[z2,z4];
130         x4=3/8interline; y4=2interline;
131         z5=z4l+1.3interline*se;
132         x6l=x4l; y6l=y4r;
133         x7=2/5interline; y7=3/4interline;
134         fill z1l{se}..{se}z10..z3l..z11{se}..{se}z5l..z5r{nw}..{nw}z12..z3r..z13{nw}..{nw}z1r.. cycle;
135         fill z5r{nw}..tension1.4..z6l..tension1.4..{se}z7l..z7r{nw}..tension1.4..z6r..tension1.4..{se}z5l..cycle;
136         penlabels(1,2,3,4,5,6,7);
137         penlabels(10,11,12,13);
138         set_char_box(0, 27/25interline#, -3/4 interline#, 18/5interline#);
139         fet_endchar;
140
141 def rest_crook(expr a, w) =
142         balled_crook(a, w, ball_crook_balldiam, ball_crook_stem)
143 enddef;
144
145 fet_beginchar("8th rest","3","eighthrest");
146         set_char_box(0, 4/3interline#,-interline#, 8/3interline#+7/4stafflinethickness#);
147         save x,y, ht;
148         ht = h + d;
149         x1=w-stem/6; y1=ht-flare/4;
150         rest_crook (z1,w-stem/6);
151         z2-z1=whatever*dir70;
152         y2=stem/2;
153         brush(z1,2/3stem,z2,stem);
154         % ugh
155         currentpicture:=currentpicture shifted (0,interline);
156         fet_endchar;
157
158 fet_beginchar("16th rest","4","sixteenthrest");
159         save alpha,cw,h,w;
160         alpha=74;
161         cw#=7/6interline#;
162 %       h#=5/3interline#+interline#+2stafflinethickness#;
163         h#=5/3interline#+interline#+7/4stafflinethickness#;
164         w#=cw#+(h#-3/2interline#)/tand(alpha);
165         set_char_box(0,w#,0,h#);
166         define_pixels(cw);
167         save x,y;
168         x1=w-stem/6; y1=h-flare/4;
169         z2-z1=whatever*dir alpha;
170         y2=stem/2;
171         brush(z1,2/3stem,z2,stem);
172         rest_crook (z1,cw);
173         z3-z1=whatever*dir alpha;
174         y3=y1-interline;
175         rest_crook (z3,cw);
176         penlabels(1,2);
177         fet_endchar;
178
179 fet_beginchar("32th rest","5","thirtysecondrest");
180         save alpha,cw,h,w;
181         alpha=76;
182         cw#=7/6interline#;
183         h#=5/3interline#+2interline#+7/4stafflinethickness#;
184         w#=cw#+(h#-3/2interline#)/tand(alpha);
185         set_char_box(0,w#,0,h#);
186         define_pixels(cw);
187         save x,y;
188         x1=w-stem/6; y1=h-flare/4;
189         z2-z1=whatever*dir alpha;
190         y2=stem/2;
191         brush(z1,2/3stem,z2,stem);
192         rest_crook (z1,cw);
193         z3-z1=whatever*dir alpha;
194         y3=y1-interline;
195         rest_crook (z3,cw);
196         z4-z1=whatever*dir alpha;
197         y4=y1-2interline;
198         rest_crook (z4,cw);
199         fet_endchar;
200
201 fet_beginchar("64th rest","6","sixtyfourthrest");
202         save alpha,cw,h,w;
203         alpha=78;
204         cw#=7/6interline#;
205         h#=5/3interline#+3interline#+7/4stafflinethickness#;
206         w#=cw#+(h#-3/2interline#)/tand(alpha);
207         set_char_box(0,w#,0,h#);
208         define_pixels(cw);
209         save x,y;
210         x1=w-stem/6; y1=h-flare/4;
211         z2-z1=whatever*dir alpha;
212         y2=stem/2;
213         brush (z1,2/3stem,z2,stem);
214         rest_crook (z1,cw);
215         z3-z1=whatever*dir alpha;
216         y3=y1-interline;
217         rest_crook (z3,cw);
218         z4-z1=whatever*dir alpha;
219         y4=y1-2interline;
220         rest_crook (z4,cw);
221         z5-z1=whatever*dir alpha;
222         y5=y1-3interline;
223         rest_crook (z5,cw);
224         % ugh
225         currentpicture:=currentpicture shifted (0,-interline);
226         fet_endchar;
227
228 fet_beginchar("128th rest","7","hundredtwentyeighthrest"); 
229         save alpha,cw,h,w;
230         alpha=78;
231         cw#=7/6interline#;
232         h#=5/3interline#+4interline#+7/4stafflinethickness#;
233         w#=cw#+(h#-3/2interline#)/tand(alpha);
234         set_char_box(0,w#,0,h#);
235         define_pixels(cw);
236         save x,y;
237         x1=w-stem/6; y1=h-flare/4;
238         z2-z1=whatever*dir alpha;
239         y2=stem/2;
240         brush (z1,2/3stem,z2,stem);
241         rest_crook (z1,cw);
242         z3-z1=whatever*dir alpha;
243         y3=y1-interline;
244         rest_crook (z3,cw);
245         z4-z1=whatever*dir alpha;
246         y4=y1-2interline;
247         rest_crook (z4,cw);
248         z5-z1=whatever*dir alpha;
249         y5=y1-3interline;
250         rest_crook (z5,cw);
251         z6-z1=whatever*dir alpha;
252         y6=y1-4interline;
253         rest_crook (z6,cw);
254         % ugh
255         currentpicture:=currentpicture shifted (0,-interline);
256         fet_endchar;
257
258 endgroup;
259 fet_endgroup("rests");
260