% -%-Fundamental-%- -*-Metafont-*- % parmesan-rests.mf -- implement ancient rests % % source file of LilyPond's pretty-but-neat music font % % (c) 2001--2004 Juergen Reuter % % Neo-mensural rests originally by % Christian Mondrup and Mats Bengtsson % fet_begingroup("rests") %%%%%%%% % % % % NEO-MENSURAL NOTATION % % % % Neo-mensural longa and breve are identical with default longa and breve. neomens_block_rest_x# = 2/5 staff_space#; neomens_block_rest_y# = 1/1 staff_space#; neomens_half_block_rest_y# = 5/8 staff_space#; define_pixels(neomens_block_rest_x, neomens_block_rest_y, neomens_half_block_rest_y); def neomens_half_block_rest = draw_block ((0,0), (neomens_block_rest_x, neomens_half_block_rest_y)); enddef; fet_beginchar("Neo-mensural maxima rest", "-3neomensural", "neomensmaximarest"); set_char_box(0, 3 neomens_block_rest_x#, neomens_block_rest_y#, neomens_block_rest_y#); draw_block ((0,-neomens_block_rest_y), (neomens_block_rest_x, neomens_block_rest_y)); addto currentpicture also currentpicture shifted (2 neomens_block_rest_x, 0); fet_endchar; fet_beginchar("Neo-mensural longa rest", "-2neomensural", "neomenslongarest"); set_char_box(0, neomens_block_rest_x#, neomens_block_rest_y#, neomens_block_rest_y#); draw_block ((0,-neomens_block_rest_y), (neomens_block_rest_x, neomens_block_rest_y)); fet_endchar; fet_beginchar("Neo-mensural breve rest", "-1neomensural", "neomensbreverest"); set_char_box(0, neomens_block_rest_x#, 0, neomens_block_rest_y#); draw_block ((0,0), (neomens_block_rest_x, neomens_block_rest_y)); fet_endchar; fet_beginchar("Neo-mensural whole rest", "0neomensural", "neomenssemibrevisrest"); set_char_box(0, neomens_block_rest_x#, neomens_half_block_rest_y#, 0); neomens_half_block_rest; currentpicture := currentpicture shifted (0,- neomens_half_block_rest_y); fet_endchar; fet_beginchar("Neo-mensural half rest", "1neomensural", "neomensminimahalfrest"); set_char_box(0, neomens_block_rest_x#, 0, neomens_half_block_rest_y#); neomens_half_block_rest; fet_endchar; neomensrestsize# = 0.8 staff_space#; fet_beginchar("Neo-mensural 4th rest","2neomensural","neomenssemiminimarest") set_char_box(0,neomensrestsize#,0,neomensrestsize#); pickup pencircle scaled 2 stafflinethickness; lft x1 = 0; bot y1 = 0; lft x2 = 0; top y2 = h; rt x3 = w; bot y3 = h/2; draw z1 .. z2; draw z2 .. z3; fet_endchar fet_beginchar("Neo-mensural 8th rest","3neomensural","neomensfusarest") set_char_box(0,neomensrestsize#,0,neomensrestsize#); pickup pencircle scaled 2 stafflinethickness; rt x1 = w; bot y1 = 0; rt x2 = w; top y2 = h; lft x3 = 0; bot y3 = h/2; draw z1 .. z2; draw z2 .. z3; fet_endchar fet_beginchar("Neo-mensural 16th rest","4neomensural","neomenssemifusarest") set_char_box(0,neomensrestsize#,0,staff_space#); pickup pencircle scaled 2 stafflinethickness; rt x1 = w; bot y1 = 0; rt x2 = w; top y2 = h; draw z1 .. z2; pickup pencircle scaled 2 stafflinethickness; rt x3 = w; top y3 = h; lft x4 = 0; bot y4 = h/2; rt x5 = w; top y5 = 5/8h; lft x6 = 0; bot y6 = h/8; draw z3 .. z4; draw z5 .. z6; fet_endchar %%%%%%%% % % % % MENSURAL NOTATION % % % pen_width# = 0.3 staff_space#; pen_height# = 0; pen_rotation = 30; slight_pen_rotation = 15; mens_block_rest_y# = 1/1 staff_space#; mens_half_block_rest_y# = 5/8 staff_space#; define_pixels(mens_block_rest_y, mens_half_block_rest_y, pen_width, pen_height); fet_beginchar("Mensural maxima rest", "-3mensural", "mensmaximarest"); set_char_box(0, pen_width#, mens_block_rest_y#, 2mens_block_rest_y#); pickup pencircle xscaled pen_width yscaled pen_height rotated slight_pen_rotation; draw (w/2, -mens_block_rest_y) -- (w/2, 2 mens_block_rest_y); fet_endchar; fet_beginchar("Mensural longa rest", "-2mensural", "menslongarest"); set_char_box(0, pen_width#, mens_block_rest_y#, mens_block_rest_y#); pickup pencircle xscaled pen_width yscaled pen_height rotated slight_pen_rotation; draw (w/2, -mens_block_rest_y) -- (w/2, mens_block_rest_y); fet_endchar; fet_beginchar("Mensural breve rest", "-1mensural", "mensbreverest"); set_char_box(0, pen_width#, 0, mens_block_rest_y#); pickup pencircle xscaled pen_width yscaled pen_height rotated slight_pen_rotation; draw (w/2, 0) -- (w/2, mens_block_rest_y); fet_endchar; fet_beginchar("Mensural whole rest", "0mensural", "menssemibrevisrest"); set_char_box(0, pen_width#, mens_half_block_rest_y#, 0); pickup pencircle xscaled pen_width yscaled pen_height rotated slight_pen_rotation; draw (w/2, 0) -- (w/2, -mens_half_block_rest_y); fet_endchar; fet_beginchar("Mensural half rest", "1mensural", "mensminimahalfrest"); set_char_box(0, pen_width#, 0, mens_half_block_rest_y#); pickup pencircle xscaled pen_width yscaled pen_height rotated slight_pen_rotation; draw (w/2, 0) -- (w/2, mens_half_block_rest_y); fet_endchar; mensrestsize# = .8staff_space#; fet_beginchar("Mensural 4th rest","2mensural","menssemiminimarest") set_char_box(0,mensrestsize#,0,mensrestsize#); pickup pencircle xscaled pen_width yscaled pen_height rotated pen_rotation; lft x1 = 0; y1 = 0; lft x2 = 0; top y2 = 5/8 h; rt x3 = 1/5 w; bot y3 = 6/8 h; rt x4 = w; bot y4 = 4/8 h; draw z1 -- z2 -- z3 -- z4; fet_endchar fet_beginchar("Mensural 8th rest","3mensural","mensfusarest") set_char_box(0,mensrestsize#,0,mensrestsize#); pickup pencircle xscaled pen_width yscaled pen_height rotated pen_rotation; rt x1 = w; y1 = 0; rt x2 = w; top y2 = 5/8 h; lft x3 = 1/5 w; bot y3 = 6/8 h; lft x4 = 0; bot y4 = 4/8 h; draw z1 -- z2 -- z3 -- z4; fet_endchar % % FIXME: So far, I have never seen a semifusa rest printed. Hence, % the shape of this font character is currently pure invention. --jr % fet_beginchar("Mensural 16th rest","4mensural","menssemifusarest") set_char_box(0,mensrestsize#,0,staff_space#); pickup pencircle xscaled pen_width yscaled pen_height rotated pen_rotation; rt x1 = w; y1 = 0; rt x2 = w; top y2 = 5.5/8 h; lft x3 = 1/5 w; bot y3 = 6.5/8 h; lft x4 = 0; bot y4 = 4.5/8 h; rt x5 = w; top y5 = 2.5/8 h; lft x6 = 1/5 w; bot y6 = 3.5/8 h; lft x7 = 0; bot y7 = 1.5/8 h; draw z1 -- z2 -- z3 -- z4; draw z5 -- z6 -- z7; fet_endchar fet_endgroup ("rests")