2 % parmesan-rests.mf -- implement ancient rests
4 % source file of LilyPond's pretty-but-neat music font
6 % (c) 2001--2003 Juergen Reuter <reuter@ipd.uka.de>
8 % Neo-mensural rests originally by
9 % Christian Mondrup and Mats Bengtsson
12 fet_begingroup("rests")
19 % NEO-MENSURAL NOTATION
24 % Neo-mensural longa and breve are identical with default longa and breve.
26 neomens_block_rest_x# = 2/5 staff_space#;
27 neomens_block_rest_y# = 1/1 staff_space#;
28 neomens_half_block_rest_y# = 5/8 staff_space#;
30 define_pixels(neomens_block_rest_x,
31 neomens_block_rest_y, neomens_half_block_rest_y);
33 def neomens_half_block_rest =
34 draw_block ((0,0), (neomens_block_rest_x, neomens_half_block_rest_y));
37 fet_beginchar("Neo-mensural maxima rest", "-3neo_mensural", "neomensmaximarest");
38 set_char_box(0, neomens_block_rest_x#,
39 neomens_block_rest_y#, 2 neomens_block_rest_y#);
40 draw_block ((0,-neomens_block_rest_y),
41 (neomens_block_rest_x, 2 neomens_block_rest_y));
44 fet_beginchar("Neo-mensural longa rest", "-2neo_mensural", "neomenslongarest");
45 set_char_box(0, neomens_block_rest_x#,
46 neomens_block_rest_y#, neomens_block_rest_y#);
47 draw_block ((0,-neomens_block_rest_y),
48 (neomens_block_rest_x, neomens_block_rest_y));
51 fet_beginchar("Neo-mensural breve rest", "-1neo_mensural", "neomensbreverest");
52 set_char_box(0, neomens_block_rest_x#,
53 0, neomens_block_rest_y#);
54 draw_block ((0,0), (neomens_block_rest_x, neomens_block_rest_y));
57 fet_beginchar("Neo-mensural whole rest", "0neo_mensural", "neomenssemibrevisrest");
58 set_char_box(0, neomens_block_rest_x#,
59 neomens_half_block_rest_y#, 0);
60 neomens_half_block_rest;
62 currentpicture shifted (0,- neomens_half_block_rest_y);
65 fet_beginchar("Neo-mensural half rest", "1neo_mensural", "neomensminimahalfrest");
66 set_char_box(0, neomens_block_rest_x#,
67 0, neomens_half_block_rest_y#);
68 neomens_half_block_rest;
71 neomensrestsize# = 0.8 staff_space#;
73 fet_beginchar("Neo-mensural 4th rest","2neo_mensural","neomenssemiminimarest")
74 set_char_box(0,neomensrestsize#,0,neomensrestsize#);
75 pickup pencircle scaled 2 stafflinethickness;
86 fet_beginchar("Neo-mensural 8th rest","3neo_mensural","neomensfusarest")
87 set_char_box(0,neomensrestsize#,0,neomensrestsize#);
88 pickup pencircle scaled 2 stafflinethickness;
99 fet_beginchar("Neo-mensural 16th rest","4neo_mensural","neomenssemifusarest")
100 set_char_box(0,neomensrestsize#,0,staff_space#);
101 pickup pencircle scaled 2 stafflinethickness;
109 pickup pencircle scaled 2 stafflinethickness;
133 pen_width# = 0.3 staff_space#;
136 slight_pen_rotation = 15;
138 mens_block_rest_y# = 1/1 staff_space#;
139 mens_half_block_rest_y# = 5/8 staff_space#;
141 define_pixels(mens_block_rest_y, mens_half_block_rest_y,
142 pen_width, pen_height);
144 fet_beginchar("Mensural maxima rest", "-3mensural", "mensmaximarest");
145 set_char_box(0.7pen_width#, 0.7pen_width#,
146 mens_block_rest_y#, 2mens_block_rest_y#);
150 rotated slight_pen_rotation;
151 draw (0, -mens_block_rest_y) -- (0, 2 mens_block_rest_y);
154 fet_beginchar("Mensural longa rest", "-2mensural", "menslongarest");
155 set_char_box(0.7pen_width#, 0.7pen_width#,
156 mens_block_rest_y#, mens_block_rest_y#);
160 rotated slight_pen_rotation;
161 draw (0, -mens_block_rest_y) -- (0, mens_block_rest_y);
164 fet_beginchar("Mensural breve rest", "-1mensural", "mensbreverest");
165 set_char_box(0.7pen_width#, 0.7pen_width#,
166 0, mens_block_rest_y#);
170 rotated slight_pen_rotation;
171 draw (0, 0) -- (0, mens_block_rest_y);
174 fet_beginchar("Mensural whole rest", "0mensural", "menssemibrevisrest");
175 set_char_box(0.7pen_width#, 0.7pen_width#,
176 mens_half_block_rest_y#, 0);
180 rotated slight_pen_rotation;
181 draw (0, 0) -- (0, -mens_half_block_rest_y);
184 fet_beginchar("Mensural half rest", "1mensural", "mensminimahalfrest");
185 set_char_box(0.7pen_width#, 0.7pen_width#,
186 0, mens_half_block_rest_y#);
190 rotated slight_pen_rotation;
191 draw (0, 0) -- (0, mens_half_block_rest_y);
194 mensrestsize# = .8staff_space#;
196 fet_beginchar("Mensural 4th rest","2mensural","menssemiminimarest")
197 set_char_box(0,mensrestsize#,0,mensrestsize#);
201 rotated pen_rotation;
203 lft x2 = 0; top y2 = 5/8 h;
204 rt x3 = 1/5 w; bot y3 = 6/8 h;
205 rt x4 = w; bot y4 = 4/8 h;
206 draw z1 -- z2 -- z3 -- z4;
209 fet_beginchar("Mensural 8th rest","3mensural","mensfusarest")
210 set_char_box(0,mensrestsize#,0,mensrestsize#);
214 rotated pen_rotation;
216 rt x2 = w; top y2 = 5/8 h;
217 lft x3 = 1/5 w; bot y3 = 6/8 h;
218 lft x4 = 0; bot y4 = 4/8 h;
219 draw z1 -- z2 -- z3 -- z4;
223 % FIXME: So far, I have never seen a semifusa rest printed. Hence,
224 % the shape of this font character is currently pure invention. --jr
226 fet_beginchar("Mensural 16th rest","4mensural","menssemifusarest")
227 set_char_box(0,mensrestsize#,0,staff_space#);
231 rotated pen_rotation;
234 rt x2 = w; top y2 = 5.5/8 h;
235 lft x3 = 1/5 w; bot y3 = 6.5/8 h;
236 lft x4 = 0; bot y4 = 4.5/8 h;
237 rt x5 = w; top y5 = 2.5/8 h;
238 lft x6 = 1/5 w; bot y6 = 3.5/8 h;
239 lft x7 = 0; bot y7 = 1.5/8 h;
240 draw z1 -- z2 -- z3 -- z4;
244 fet_endgroup ("rests")