2 % LilyPond's own rest(s)
4 define_pixels(interline);
5 define_pixels(stafflinethickness);
9 define_pixels(nhh,nhw);
14 thick#:=1/16designsize;
15 define_blacker_pixels(med,thick);
17 med_pen:= pencircle scaled med;
23 def shift_pic (expr pone, ptwo) =
24 currentpicture:=currentpicture shifted (round(pone),round(ptwo))
27 % ugh, dunno how to generate doubles "outside*" rests?
28 fet_begingroup("almostrests");
30 % stem#:=1/8interline#;
32 flare#:=2/3interline#;
33 define_pixels(stem,flare);
35 fet_beginchar(incr code,interline#,4interline#,0,"Quarter rest","4","quartrest");
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);
44 y1l=7/2nhh; x1l=1/3nhh;
45 z2r=z1+(nhh*right) rotated alpha;
48 z6=z4l+(5/4nhh*right) rotated alpha;
50 x8=1/3nhw; y8= nhh-1/4nhh;
51 z5=z6r shifted (sqrt(2)*rthin/4,sqrt(2)*rthin/4);
53 pickup penrazor scaled rthin rotated 45;
56 penstroke z2e..z3e..z4e;
57 penstroke z6e..tension1.4..z7e..tension1.4..z8e;
58 penlabels(1,2,3,4,5,6,7,8);
68 x4r=xpart a-w; y3r=ypart a+flare/4;
72 x5=x4r+9/8flare; y5r=y1r;
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);
80 def brush(expr a,w,b,v) =
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));
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);
95 fet_beginchar(incr code,4/3interline#,5/3interline#+2stafflinethickness#,0,"8th rest","-2","eighthrest");
97 x1=w-stem/6; y1=h-flare/4;
101 brush (z1,stem/3,z2,stem);
103 currentpicture:=currentpicture shifted (0,interline);
104 % currentpicture:=currentpicture shifted (0,interline+2stafflinethickness);
107 fet_beginchar(incr code,4/3interline#,5/3interline#+interline#+2stafflinethickness#,0,"16th rest","-2","sixteenthrest");
109 x1=w-stem/6; y1=h-flare/4;
110 z2-z1=whatever*dir74;
112 brush (z1,stem/2,z2,stem);
114 z3-z1=whatever*dir74;
117 % currentpicture:=currentpicture shifted (0,2stafflinethickness);
120 fet_beginchar(incr code,4/3interline#,5/3interline#+2interline#+2stafflinethickness#,0,"32th rest","-2","thirtysecondrest");
122 x1=w-stem/6; y1=h-flare/4;
123 z2-z1=whatever*dir76;
125 brush (z1,stem/2,z2,stem);
127 z3-z1=whatever*dir76;
130 z4-z1=whatever*dir76;
133 % currentpicture:=currentpicture shifted (0,2stafflinethickness);
136 fet_beginchar(incr code,4/3interline#,5/3interline#+3interline#+2stafflinethickness#,0,"64th rest","-2","sixtyfourthrest");
138 x1=w-stem/6; y1=h-flare/4;
139 z2-z1=whatever*dir78;
141 brush (z1,stem/2,z2,stem);
143 z3-z1=whatever*dir78;
146 z4-z1=whatever*dir78;
149 z5-z1=whatever*dir78;
152 % currentpicture:=currentpicture shifted (0,2stafflinethickness);
155 fet_beginchar(incr code,4/3interline#,5/3interline#+4interline#+2stafflinethickness#,0,"128th rest","-2","hundredtwentyeighthrest");
157 x1=w-stem/6; y1=h-flare/4;
158 z2-z1=whatever*dir80;
160 brush (z1,stem/2,z2,stem);
162 z3-z1=whatever*dir80;
165 z4-z1=whatever*dir80;
168 z5-z1=whatever*dir80;
171 z6-z1=whatever*dir80;
174 % currentpicture:=currentpicture shifted (0,2stafflinethickness);
177 fet_endgroup("rests");