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