upflag_width# = .750 black_notehead_width# + stemthickness#/2;
downflag_width# = .833 black_notehead_width# + stemthickness#/2;
+right_upflag_space# = .2 upflag_width#;
+right_downflag_space# = .2 downflag_width#;
+
%
% Flags pointing down cannot overlap with the notehead in y-direction,
% so they have less slant.
%
-% Because of optical illusion, the utmost flag
-% (bottom for down-pointing, top
-% for up-pointing) should be smaller than the other flags
+% Because of optical illusion, the utmost flag (bottom for
+% down-pointing, top for up-pointing) should be smaller than the other
+% flags. Adobe Sonata doesn't do this correctly. (Instead they have an
+% extension flag. Yuck)
%
save hip_thickness, foot_thickness;
% for example, see POSTSCRIPT Language -- program design,
% page 119, and [Wanske], p 41,42
%
-
def draw_flag(expr center, flare,
dims, hip_depth, foot_wid, hip_thickness, foot_thickness)=
clearxy;
foot_depth# = 3 interline#;
set_char_box(stemthickness# /2, hip_width#
- + stemthickness#/2,
+ + stemthickness#/2 + right_upflag_space#,
foot_depth# + foot_thickness#/2, stemthickness#/2)
define_pixels(flare, hip_width, hip_thickness,
foot_width_ratio = .8;
set_char_box(stemthickness# /2, hip_width#
- + stemthickness#/2,
+ + stemthickness#/2 + right_upflag_space#,
total_depth# + foot_thickness#/2, stemthickness#/2)
define_pixels(flare, hip_width, hip_thickness,
foot_width_ratio = .8;
set_char_box(stemthickness# /2, hip_width#
- + stemthickness#/2,
+ + stemthickness#/2 + right_upflag_space#,
total_depth# + foot_thickness#/2, stemthickness#/2)
define_pixels(flare, hip_width, hip_thickness,
foot_width_ratio = .8;
set_char_box(stemthickness# /2, hip_width#
- + stemthickness#/2,
+ + stemthickness#/2 + right_upflag_space#,
total_depth# + foot_thickness#/2, stemthickness#/2)
define_pixels(flare, hip_width, hip_thickness,
foot_width_ratio = .8;
set_char_box(stemthickness# /2, hip_width#
- + stemthickness#/2,
+ + stemthickness#/2 + right_downflag_space#,
total_depth# + foot_thickness#/2, stemthickness#/2)
define_pixels(flare, hip_width, hip_thickness,
foot_width_ratio = .95;
set_char_box(stemthickness# /2, hip_width#
- + stemthickness#/2,
+ + stemthickness#/2 + right_downflag_space#,
total_depth# + foot_thickness#/2, stemthickness#/2)
define_pixels(flare, hip_width, hip_thickness,
foot_width_ratio = .95;
set_char_box(stemthickness# /2, hip_width#
- + stemthickness#/2,
+ + stemthickness#/2 + right_downflag_space#,
total_depth# + foot_thickness#/2, stemthickness#/2)
define_pixels(flare, hip_width, hip_thickness,
foot_width_ratio = .98;
set_char_box(stemthickness# /2, hip_width#
- + stemthickness#/2,
+ + stemthickness#/2 + right_downflag_space#,
total_depth# + foot_thickness#/2, stemthickness#/2)
define_pixels(flare, hip_width, hip_thickness,