1 fet_begingroup("foobars")
5 save radius, crook_thinness, crook_fatness, dot_diam;
7 radius# = 1.5 interline#;
8 crook_thinness# = stafflinethickness#;
9 crook_fatness# = 4 stafflinethickness#;
11 radius# + crook_fatness#/2 = h#;
12 radius# + crook_thinness#/2 = w#;
13 set_char_box(w#, w#, 0, h#);
15 define_pixels(radius, crook_thinness, crook_fatness);
16 dot_diam = 4/3 crook_fatness;
19 penpos1(crook_thinness, 0);
20 penpos2(crook_fatness, -90);
21 penpos3(crook_thinness, -180);
26 fill z1l{down} .. {up}z1r .. z2r .. z3r{down} .. {up}z3l
29 pickup pencircle scaled dot_diam;
31 bot y4 = - crook_thinness/2;
35 fet_beginchar("fermata up", "ufermata", "ufermata")
40 fet_beginchar("fermata down", "dfermata", "dfermata")
42 currentpicture:=currentpicture yscaled -1 ;
43 set_char_box(w#, w#, h#, 0);
48 % FIXME: rounded endings
50 fet_beginchar("> accent", "accent", "accent")
51 set_char_box(.9 interline#, .9 interline#, .5 interline#, .5 interline#);
52 save thickness, diminish;
54 thickness = 2 stafflinethickness;
56 % prevent blobs at crossing lines
62 y2 = .25 thickness* diminish;
66 z3 = whatever [z1, z4];
68 penpos2(thickness*(2 - diminish)/2 , 90);
69 penpos1(thickness, 90);
70 penpos3(thickness, 90);
72 penstroke z1e .. z3e .. z2e;
73 penstroke (z1e .. z3e .. z2e) yscaled -1;
78 fet_beginchar("staccato dot", "staccato", "staccato")
80 radius# = 1.25 stafflinethickness#;
81 define_pixels(radius);
82 pickup pencircle scaled 2 radius;
84 set_char_box(radius#, radius#, radius#, radius#);
87 def draw_staccatissimo =
89 height# = .8 interline#;
90 radius# = 2 stafflinethickness#;
91 define_pixels(radius, height);
93 brush((0,0), blot_diameter, (0, height),2 radius);
94 set_char_box(radius#,radius#, blot_diameter#/2, height# + radius#);
97 fet_beginchar("staccatissimo/martellato up", "ustaccatissimo", "ustaccatissimo")
102 % FIXEM: scale labels too.
104 fet_beginchar("staccatissimo/martellato down", "dstaccatissimo", "dstaccatissimo")
109 fet_beginchar("portato/single tenuto", "tenuto", "tenuto")
111 thick# = 1.2 stafflinethickness#;
112 define_pixels(thick);
114 set_char_box(.9 interline#, .9 interline#, thick#/2,thick#/2);
115 pickup pencircle scaled thick;
124 save fatness, thinness;
125 set_char_box(interline#/2, interline#/2, 0, 1.1 interline#);
127 fatness = 3 stafflinethickness;
128 thinness = .8 stafflinethickness;
129 x2 - x1 + blot_diameter = fatness;
134 z2 - z3 = whatever * (charwd, -charht);
135 z1 - z4 = whatever * (charwd, -charht);
136 z3 - z4 = whatever * (charwd, charht);
138 draw_rounded_path(z1 -- z2 -- z3 -- z4 -- cycle, thinness);
140 pickup pencircle scaled thinness;
141 z3 - z5 = whatever* (z3 - z4);
148 fet_beginchar("marcato up", "umarcato", "umarcato")
151 fet_beginchar("marcato down", "dmarcato", "dmarcato")
157 fet_endgroup("foobars");