X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mf%2Ffeta-eindelijk.mf;h=e2709e6d388d7cf32cae965f2a6d39edbf8832ed;hb=f05cfd7757b31723fe6af2f5c0e2fdbaebea3b85;hp=96e88698f1c94311af88741be01e5794ba0d8fe4;hpb=b95222d4f362ff37c54f9130a7d94b368942dfac;p=lilypond.git diff --git a/mf/feta-eindelijk.mf b/mf/feta-eindelijk.mf index 96e88698f1..e2709e6d38 100644 --- a/mf/feta-eindelijk.mf +++ b/mf/feta-eindelijk.mf @@ -38,6 +38,10 @@ ball_crook_balldiam =flare; save block_rest_y, block_rest_x; +save breve_rest_y, breve_rest_x; + +breve_rest_y# = staff_space#; +breve_rest_x# = 3/5 staff_space#; block_rest_y# = 5/8 staff_space#; block_rest_x# = 3/2 staff_space#; @@ -88,38 +92,22 @@ fet_beginchar("half rest (outside staff)", "1o", "outsidehalfrest"); fet_endchar; -save breve_rest_y, breve_rest_x; - -breve_rest_y# = staff_space#; -breve_rest_x# = 3/5 staff_space#; -multi_rest_x# = 4 staff_space#; -multi_beam_height# = 1/3 staff_space#; define_pixels(breve_rest_y, breve_rest_x, multi_rest_x, multi_beam_height); -fet_beginchar("breve rest", "-1", "breverest"); - set_char_box(0, breve_rest_x#, 0, breve_rest_y#); - draw_block ((0,0), (breve_rest_x, breve_rest_y)); -fet_endchar; fet_beginchar("longa rest", "-2", "longarest"); set_char_box(0, breve_rest_x#, breve_rest_y#, breve_rest_y#); - draw_block ((0,-breve_rest_y), (breve_rest_x, breve_rest_y)); + draw_block ((0,-floor (breve_rest_y)), (breve_rest_x, floor (breve_rest_y))); fet_endchar; -tracingvariables := 1; - -fet_beginchar("multi rest", "-4", "multirest"); - set_char_box(multi_rest_x#, multi_rest_x#, - breve_rest_y#, breve_rest_y#); - draw_block ((- b, - multi_beam_height), - (w, multi_beam_height)); - draw_block ((- b,-breve_rest_y), - (rthin - b, breve_rest_y)); - draw_block ((w - rthin,-breve_rest_y), - (w, breve_rest_y)); +fet_beginchar("breve rest", "-1", "breverest"); + set_char_box(0, breve_rest_x#, 0, breve_rest_y#); + draw_block ((0,0), (breve_rest_x, floor (breve_rest_y))); fet_endchar; +tracingvariables := 1; + fet_beginchar("Quarter rest","2","quartrest"); % draw_staff (-2, 2, 0.0); save alpha, yshift, height; @@ -127,9 +115,10 @@ fet_beginchar("Quarter rest","2","quartrest"); yshift# = -1.25 staff_space#; height# = 2.8125 staff_space#; define_pixels (yshift, height); - + save xcenter; + xcenter = -0.1 staff_space; - set_char_box(0, 27/25staff_space#, + set_char_box(0, 0.95 staff_space#, -yshift#, yshift# + height#); @@ -154,15 +143,15 @@ fet_beginchar("Quarter rest","2","quartrest"); z13=z2r+1/2rthin*ne+1/2rthin*nw; y1r = h; - x1l=1/3staff_space; + x1l=xcenter + 1/3staff_space; z2r=z1+staff_space*se; z3=1/2[z2,z4]; - x4=3/8staff_space; + x4= xcenter + 3/8staff_space; y4= 0; z5=z4l+1.3staff_space*se; x6l=x4l; y6l=y4r; - x7=2/5staff_space; + x7= xcenter + 2/5staff_space; y7= -d; fill z1l{se}..{se}z10..z3l..z11{se}..{se}z5l..z5r{nw}..{nw}z12..z3r..z13{nw}..{nw}z1r.. cycle; @@ -180,9 +169,24 @@ def rest_crook(expr a, w) = enddef; % +% Notes about 8th rest: +% +% * 8th rest should be no wider than the black note head +% +% * The inside corner of the horizontal portion is usually a little blotted. +% +% * The top of the crook chops off the vertical brush +% +% * The crook widens a little +% +% * The bottom of the brush is slightly flat, as it has to align with +% stafflines if it is inside the staff. % -% todo: document rest. +% * The top of the brush usually is a little lower than the top of bulb. % +% * The bulb can vary. Sometimes it is open (like in the clefs). Sometimes +% it is closed, or even a flare. +% def normalize (expr p) = (p / length (p)) @@ -196,13 +200,13 @@ def draw_eighth_rest = width# := 1.0 staff_space#; - bulb_diam# := 0.6 staff_space#; + bulb_diam# := 0.64 staff_space#; thin# := 1.1 stafflinethickness#; thick# := 2.2 stafflinethickness#; crook_thick# := 1.8 stafflinethickness#; crook_thin := 1.3 stafflinethickness; - lower_brush = 1.0 stafflinethickness; + lower_brush = 1.5 stafflinethickness; ycenter := 0.5 staff_space; define_pixels (width, bulb_diam, thin, thick, crook_thick); @@ -214,7 +218,7 @@ def draw_eighth_rest = y1 = ycenter + - 1.5 staff_space ; % y9 = y5 - lower_brush; - y2 = y5 - 0.7 stafflinethickness; + y2 = y5 - lower_brush; x2r = width; @@ -225,15 +229,16 @@ def draw_eighth_rest = x4 = 1.02 bulb_diam ; - y4 = ycenter - 2 stafflinethickness + crook_thin; + y4 := ceiling (ycenter - 2 stafflinethickness + crook_thin); - x5 = 0.5 bulb_diam; + x5 = 0.5 bulb_diam - 0.25 stafflinethickness; y5 = ycenter +bulb_diam/2; z9 = z2 + 0.46 stafflinethickness * dir (angle(z2 - z1)- 10); - z7 = (bulb_diam/2,ycenter) + 0.26 staff_space * dir ( 35); - z8 = (0, ycenter); +% z7 = %(bulb_diam/2,ycenter) + 0.23 staff_space * dir ( 35); + z7 = 0.5 [z4, z5] + (0.45 stafflinethickness,0.4 stafflinethickness); + z8 = (0, ycenter + 0.5 stafflinethickness); z6 = whatever [z1l, z2l]; z6 = whatever [z2l, z4] + crook_thick * (crook_dir rotated -90); @@ -247,7 +252,7 @@ def draw_eighth_rest = fill z2r -- z2l -- simple_serif (z1l, z1r, 40) -- cycle; fill z2r{z2r-z1r} .. z9 .. z2l{dir(232)} .. tension 2 - .. z4{left} .. z7{dir(90 + 25)} + .. z4{left} .. tension 0.9 .. z7 %{dir(90 + 25)} .. z5{left} .. z8 .. z3{right} .. {curl 0.2}z6 -- cycle; @@ -426,6 +431,13 @@ 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", "-3neo_mensural", "neomensmaximarest"); + set_char_box(0, neomens_block_rest_x#, + neomens_block_rest_y#, 2 neomens_block_rest_y#); + draw_block ((0,-neomens_block_rest_y), + (neomens_block_rest_x, 2 neomens_block_rest_y)); +fet_endchar; + fet_beginchar("Neo-mensural longa rest", "-2neo_mensural", "neomenslongarest"); set_char_box(0, neomens_block_rest_x#, neomens_block_rest_y#, neomens_block_rest_y#);