diff --git a/mf/feta-banier.mf b/mf/feta-banier.mf index e3d5637..6e12b98 100644 --- a/mf/feta-banier.mf +++ b/mf/feta-banier.mf @@ -468,4 +468,115 @@ fet_beginchar ("64th (down)", "d6"); y_mirror_char; fet_endchar; + + + + + + +%%%%%%%% +% +% Straight flags (old, but not ancient, style) +% + +save straight_flag_angle, straight_upflag_length, straight_downflag_length, straight_flag_thickness; + +straight_flag_angle = -37; +straight_upflag_length# = .65 black_notehead_width# + stemthickness# / 2; +straight_downflag_length# = .833 black_notehead_width# + stemthickness# / 2; +straight_flag_thickness# = 0.5 staff_space#; + +define_pixels (straight_upflag_length, straight_downflag_length, straight_flag_thickness); + +save straight_flag_path; +path straight_flag_path; + +def draw_straight_flag (expr center, len, angle, thickness) = + clearxy; + pickup pencircle xscaled 7 yscaled thickness; + z1 = center; + z2 = z1 + len * dir(angle); + straight_flag_path := z1 -- z2; + draw straight_flag_path; +enddef; + +def add_straight_flag (expr yoff, len, angle, thickness) = +begingroup + save prev_center; + pair prev_center, center; + + prev_center = point 0 of straight_flag_path; + center = prev_center + (0, yoff); + draw_straight_flag (center, len, angle, thickness); +endgroup +enddef; + +def create_straight_flag_char (expr flag_count, len, lenhash) = +begingroup + save flagspace, depth, width; + flagspace# = 0.9 staff_space#; + define_pixels (flagspace); + (width#, depth#) = lenhash * dir (straight_flag_angle) + + (stemthickness# / 2, straight_flag_thickness#) + + (0, flagspace# * (flag_count-1)); + + set_char_box (0, width#, depth#, stemthickness# / 2); + draw_straight_flag ( + (0, -straight_flag_thickness / 2), + len, straight_flag_angle, straight_flag_thickness); + for n=2 upto flag_count: + add_straight_flag(-flagspace, len, + straight_flag_angle, straight_flag_thickness); + endfor + draw_square_block ((-0.5 stemthickness_rounded, -flag_count*staff_space_rounded), (0, 0)); +endgroup +enddef; + + +fet_beginchar ("straight 8th Flag (up)", "straightu3"); + create_straight_flag_char (1, straight_upflag_length, straight_upflag_length#); +fet_endchar; + + +fet_beginchar ("straight 16th Flag (up)", "straightu4"); + create_straight_flag_char (2, straight_upflag_length, straight_upflag_length#); +fet_endchar; + + +fet_beginchar ("straight 32nd Flag (up)", "straightu5"); + create_straight_flag_char (3, straight_upflag_length, straight_upflag_length#); +fet_endchar; + + +fet_beginchar ("straight 64th Flag (up)", "straightu6"); + create_straight_flag_char (4, straight_upflag_length, straight_upflag_length#); +fet_endchar; + + +fet_beginchar ("straight 8th (down)", "straightd3"); + create_straight_flag_char (1, straight_downflag_length, straight_downflag_length#); + y_mirror_char; +fet_endchar; + + +fet_beginchar ("straight 16th (down)", "straightd4"); + create_straight_flag_char (2, straight_downflag_length, straight_downflag_length#); + y_mirror_char; +fet_endchar; + + +fet_beginchar ("straight 32nd (down)", "straightd5"); + create_straight_flag_char (3, straight_downflag_length, straight_downflag_length#); + y_mirror_char; +fet_endchar; + + +fet_beginchar ("straight 64th (down)", "straightd6"); + create_straight_flag_char (4, straight_downflag_length, straight_downflag_length#); + y_mirror_char; +fet_endchar; + + + + fet_endgroup ("flags");