%
% source file of the Feta (not the Font-En-Tja) music font
%
-% (c) 1997, 1998 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 1997--2002 Jan Nieuwenhuizen <janneke@gnu.org>
fet_begingroup("rests");
breve_rest_y# = staff_space#;
breve_rest_x# = 3/5 staff_space#;
-multi_rest_x# = 2 staff_space#;
-multi_rest_y# = 1/3 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_rest_y);
+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#);
fet_beginchar("multi rest", "-4", "multirest");
set_char_box(multi_rest_x#, multi_rest_x#,
breve_rest_y#, breve_rest_y#);
- draw_block ((-multi_rest_x, -multi_rest_y),
- (multi_rest_x, multi_rest_y));
- draw_block ((-multi_rest_x,-breve_rest_y),
- (rthin-multi_rest_x, breve_rest_y));
- draw_block ((multi_rest_x-rthin,-breve_rest_y),
- (multi_rest_x, 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_endchar;
fet_beginchar("Quarter rest","2","quartrest");
balled_crook(a, w, ball_crook_balldiam, ball_crook_stem)
enddef;
-fet_beginchar("8th rest","3","eighthrest");
+def draw_eighth_rest =
% draw_staff (-2, 2, 0.0);
save yshift, ballcorrection;
ballcorrection = 0.005 staff_space;
rest_crook (z1,w-stem/6);
z2-z1=whatever*dir70;
y2= yshift + stem/2;
- brush(z1,2/3stem,z2,stem);
+ brush(z1,2/3stem,z2,stem);
+enddef;
+
+fet_beginchar("8th rest","3","eighthrest");
+ draw_eighth_rest;
fet_endchar;
fet_endchar;
+fet_beginchar("Classical quarter rest","2classical","clasquartrest");
+ draw_eighth_rest;
+ currentpicture := currentpicture xscaled -1 shifted (w,0);
+ fet_endchar;
+
endgroup;
-% Rest symbols for mensural notation:
-
-mensrestsize# = .8staff_space#;
-
-fet_beginchar("Mensural 4th rest","2mensural","minimarest")
- set_char_box(0,mensrestsize#,0,mensrestsize#);
- 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("Mensural 8th rest","3mensural","fusarest")
- set_char_box(0,mensrestsize#,0,mensrestsize#);
- 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("Mensural 16th rest","4mensural","semifusarest")
- set_char_box(0,mensrestsize#,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
+%
+%
+%
+
+% 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 longa rest", "-2neo_mensural", "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", "-1neo_mensural", "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", "0neo_mensural", "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", "1neo_mensural", "neomensminimahalfrest");
+ set_char_box(0, neomens_block_rest_x#,
+ 0, neomens_half_block_rest_y#);
+ neomens_half_block_rest;
+fet_endchar;
+
fet_endgroup("rests")