labels(4);
fet_endchar;
+% Hmm, changed 1.5 to 1.4 to avoid problems with "random" placement of
+% the dots because of quantization effects for almost integer values. /MB
+
+
+%
+% Hmm. Should not meddle with darkness of font. Check out the
+% correct value for radius. Maybe we'd better change padding --hwn
+%
fet_beginchar("staccato dot", "staccato", "staccato")
save radius;
- radius# = 1.5 stafflinethickness#;
+ radius# = 1.4 stafflinethickness#;
define_pixels(radius);
pickup pencircle scaled 2 radius;
draw (0,0);
draw z1..z2..z3..z4..cycle;
fet_endchar;
-fet_beginchar("Repeatsign", "repeatsign", "repeatsign")
- set_char_box(staff_space#, staff_space#, staff_space#, staff_space#);
-
- save dot_diam;
- 2 dot_diam# = staff_space# - stafflinethickness#;
- define_pixels(dot_diam);
-
- penpos1(dot_diam,0);
- z1l=(-b,-d);
- penpos2(dot_diam,0);
- z2r=(w,h);
- filldraw z1l--z2l{right}--z2r{down}--z1r{right}--cycle;
- penlabels (1,2);
-
- pickup pencircle scaled dot_diam;
- draw (-staff_space/2, staff_space/2);
- draw (staff_space/2, -staff_space/2);
-fet_endchar;
-
fet_beginchar("Segno", "segno", "segno")
save thin, thick, ball_diam, darkness, pointheight;
save wd, ht, thick_nibangle, ball_nib_thick;
fet_endchar;
+def draw_comma =
+ save alpha, thick, thin, ht;
+ alpha:=35;
+ thin# = 1.2 stafflinethickness#;
+ thick# = 3 stafflinethickness#;
+ ht# = .6staff_space#;
+ define_pixels(thin, thick,ht);
+ set_char_box(0, .5staff_space#, ht#, ht#);
+
+ penpos1(thick, alpha);
+ penpos2(thick, alpha+90);
+ penpos3(thin, 180-alpha);
+ penpos4(thin, 90-alpha);
+ x3r=0;
+ x1l=x3l;
+ y2r=-y4l=h;
+ z1=z2;
+ z3=z4;
+ penlabels(1,2,3,4);
+ fill z1l{dir (alpha+90)} .. z2r{dir alpha} .. z1r{dir (alpha-90)} ..
+ z3l{dir (270-alpha)} .. z4l{dir (alpha+180)} ..
+ z3r{dir (90-alpha)} .. cycle;
+enddef;
+
+fet_beginchar("Right Comma","rcomma","rcomma");
+ draw_comma;
+fet_endchar;
+
+fet_beginchar("Left Comma","lcomma","lcomma");
+ draw_comma;
+ xy_mirror_char;
+fet_endchar;
+
thick#:=1/24designsize;
define_blacker_pixels(thick);