]> git.donarmstrong.com Git - lilypond.git/blob - mf/feta-eindelijk.mf
release: 0.1.20
[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 med#:=1/33designsize;
12 thick#:=1/16designsize;
13 define_blacker_pixels(med,thick);
14 pen med_pen;
15 med_pen:= pencircle scaled med;
16
17 rthin:=1/8interline;
18 % rthick:=2rthin;
19 rthick:=2thick+rthin;
20
21 def shift_pic (expr pone, ptwo) =
22   currentpicture:=currentpicture shifted (round(pone),round(ptwo))
23 enddef;
24
25 % stuff for     8th,16th etc rests
26 %
27 save stem, ball_crook_stem, ball_crook_balldiam, flare;
28
29 define_pixels(stem,flare);
30 % stem#:=1/8interline#;
31 stem# = 1/5interline#;
32 ball_crook_stem = stem;
33 ball_crook_balldiam =flare;
34 flare# = 2/3interline#;
35
36 save block_rest_y, block_rest_x;
37
38 block_rest_y# = 5/8 interline#;
39 block_rest_x# = 3/2 interline#;
40
41 define_pixels(block_rest_y, block_rest_x);
42
43 def block_rest=
44         pickup pencircle scaled blot_diameter;
45
46         bot y1 = 0;
47         top y2 = block_rest_y;
48         y3 = y2;
49         y4 = y1;
50
51         rt x1 = block_rest_x;
52         x2 = x1;
53         lft x3 = 0;
54         x4 = x3;
55         save p;
56         path p;
57         p:=z1 -- z2 -- z3 -- z4 -- cycle;
58         draw_rounded_path(p, blot_diameter);
59 enddef;
60
61 fet_beginchar( "whole rest", "0", "wholerest");
62 set_char_box(0, block_rest_x#, -interline# + block_rest_y#,  interline# );
63         block_rest;
64         currentpicture := currentpicture shifted (0,interline - block_rest_y);
65 fet_endchar;
66
67 fet_beginchar("half rest", "1", "halfrest");
68         set_char_box(0, block_rest_x#, 0, block_rest_y#);
69         block_rest;
70 fet_endchar;
71
72
73 %
74 % should use ledgerline thickness?
75 %
76 fet_beginchar( "whole rest (outside staff)", "0o", "outsidewholerest");
77         set_char_box(block_rest_y#, block_rest_x# + block_rest_y#, 
78                 -interline# + block_rest_y#, interline#);
79         block_rest;
80         currentpicture := currentpicture shifted (0,interline - block_rest_y);
81         pickup pencircle scaled ledgerlinethickness;
82         draw (-block_rest_y, interline) 
83              .. (block_rest_x + block_rest_y, interline);
84 fet_endchar;
85
86 fet_beginchar("half rest (outside staff)", "1o", "outsidehalfrest");
87         set_char_box(block_rest_y#, block_rest_x#+ block_rest_y#, 
88                 0, block_rest_y#);
89         block_rest;
90         pickup pencircle scaled ledgerlinethickness;
91         draw (-block_rest_y,0) .. (block_rest_x + block_rest_y,0);
92 fet_endchar;
93
94 def rest_crook(expr a, w) =
95         balled_crook(a, w, ball_crook_balldiam, ball_crook_stem)
96 enddef;
97
98 fet_beginchar("Quarter rest","2","quartrest");
99         alpha:=-50;
100         penpos1(rthin,alpha+90);
101         penpos2(5/4rthick,alpha);
102         penpos4(5/4rthick,alpha);
103         penpos3(3/4rthick,alpha);
104         penpos6(rthin,alpha-20);
105 %       penpos6(rthick,alpha-20);
106 %       penpos7(4/3thick,alpha);
107         penpos7(5/8rthick,alpha);
108         penpos8(rthin,-10);
109         y1l=7/2interline; x1l=1/3interline;
110         z2r=z1+(interline*right) rotated alpha;
111         z3=1/2[z2,z4];
112         x4=3/8interline; y4=2interline;
113         z6=z4l+(5/4interline*right) rotated alpha;
114 %       x7l=x4l; y7r=y6l;
115         x7l=x4l; y7l=y4r;
116         x8=2/5interline; y8= 3/4 interline;
117         z5=z6r shifted (sqrt(2)*rthin/4,sqrt(2)*rthin/4);
118
119         pickup penrazor scaled rthin rotated 45;
120         draw z1--z2r; 
121         draw z4l--z5;
122         penstroke z2e..z3e..z4e;
123         penstroke z6e..tension1.4..z7e..tension1.4..z8e;
124         penlabels(1,2,3,4,5,6,7,8);
125         set_char_box(0, interline#, -3/4 interline#, 7/2 interline#);
126         fet_endchar;
127
128 fet_beginchar("8th rest","3","eighthrest");
129         set_char_box(0, 4/3interline#,-interline#, 8/3interline#+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,stem/3,z2,stem);
137         % ugh
138         currentpicture:=currentpicture shifted (0,interline);
139 %       currentpicture:=currentpicture shifted (0,interline+2stafflinethickness);
140         fet_endchar;
141
142 fet_beginchar("16th rest","4","sixteenthrest");
143         set_char_box(0,4/3interline#,0, 5/3interline#+interline#+2stafflinethickness#);
144         save x,y;
145         x1=w-stem/6; y1=h-flare/4;
146         z2-z1=whatever*dir74;
147         y2=stem/2;
148         brush (z1,stem/2,z2,stem);
149         rest_crook (z1,7/8w);
150         z3-z1=whatever*dir74;
151         y3=y1-interline;
152         rest_crook (z3,7/8w);
153 %       currentpicture:=currentpicture shifted (0,2stafflinethickness);
154         fet_endchar;
155
156 fet_beginchar("32th rest","5","thirtysecondrest");
157         set_char_box(0,4/3interline#,0, 5/3interline#+2interline#+2stafflinethickness#);
158         save x,y;
159         x1=w-stem/6; y1=h-flare/4;
160         z2-z1=whatever*dir76;
161         y2=stem/2;
162         brush (z1,stem/2,z2,stem);
163         rest_crook (z1,7/8w);
164         z3-z1=whatever*dir76;
165         y3=y1-interline;
166         rest_crook (z3,7/8w);
167         z4-z1=whatever*dir76;
168         y4=y1-2interline;
169         rest_crook (z4,7/8w);
170 %       currentpicture:=currentpicture shifted (0,2stafflinethickness);
171         fet_endchar;
172
173 fet_beginchar("64th rest","6","sixtyfourthrest");
174         set_char_box(0,4/3interline#,0, 5/3interline#+3interline#+2stafflinethickness#);
175         save x,y;
176         x1=w-stem/6; y1=h-flare/4;
177         z2-z1=whatever*dir78;
178         y2=stem/2;
179         brush (z1,stem/2,z2,stem);
180         rest_crook (z1,7/8w);
181         z3-z1=whatever*dir78;
182         y3=y1-interline;
183         rest_crook (z3,7/8w);
184         z4-z1=whatever*dir78;
185         y4=y1-2interline;
186         rest_crook (z4,7/8w);
187         z5-z1=whatever*dir78;
188         y5=y1-3interline;
189         rest_crook (z5,7/8w);
190 %       currentpicture:=currentpicture shifted (0,2stafflinethickness);
191         fet_endchar;
192
193 fet_beginchar("128th rest","7","hundredtwentyeighthrest"); 
194         set_char_box(0, 4/3interline#, 0, 5/3interline#+4interline#+2stafflinethickness#);
195         save x,y;
196         x1=w-stem/6; y1=h-flare/4;
197         z2-z1=whatever*dir80;
198         y2=stem/2;
199         brush (z1,stem/2,z2,stem);
200         rest_crook (z1,7/8w);
201         z3-z1=whatever*dir80;
202         y3=y1-interline;
203         rest_crook (z3,7/8w);
204         z4-z1=whatever*dir80;
205         y4=y1-2interline;
206         rest_crook (z4,7/8w);
207         z5-z1=whatever*dir80;
208         y5=y1-3interline;
209         rest_crook (z5,7/8w);
210         z6-z1=whatever*dir80;
211         y6=y1-4interline;
212         rest_crook (z6,7/8w);
213 %       currentpicture:=currentpicture shifted (0,2stafflinethickness);
214         fet_endchar;
215
216 endgroup;
217 fet_endgroup("rests");
218