1 %!PS-Adobe-1.0: lily.ps
3 % 2 setlanguagelevel % hmm. auto_resize_dicts doesn't help either.
8 /draw_beam % width slope thick
10 2 div /beam_thick exch def
13 beam_slope beam_wd mul /beam_ht exch def
14 0 beam_thick neg moveto
15 beam_wd beam_ht rlineto
16 0 beam_thick 2 mul rlineto
21 /draw_decrescendo % width height cons thick
28 cresc_wd cresc_cont moveto
31 cresc_wd cresc_cont neg moveto
36 /draw_crescendo % width height cons thick
44 cresc_wd cresc_ht lineto
46 0 cresc_cont neg moveto
47 cresc_wd cresc_ht neg lineto
53 1 copy mul exch 1 copy mul add sqrt
56 /draw_tuplet % height gap dx dy thick dir
58 % urg: the only Level-2 PS, check effect in print
59 % true setstrokeadjust
68 tuplet_dy tuplet_dx div tuplet_gapx mul /tuplet_gapy exch def
72 0 tuplet_h dir mul lineto
73 tuplet_dx tuplet_gapx sub 2 div
74 tuplet_dy tuplet_gapy sub 2 div tuplet_h dir mul add lineto
75 tuplet_dx tuplet_gapx add 2 div
76 tuplet_dy tuplet_gapy add 2 div tuplet_h dir mul add moveto
77 tuplet_dx tuplet_dy tuplet_h dir mul add lineto
78 tuplet_dx tuplet_dy lineto
82 /draw_volta % h w thick vert_start vert_end
89 % urg: the only Level-2 PS, check effect in print
90 % true setstrokeadjust
98 volta_w volta_h lineto
105 % this is for drawing slurs.
106 /draw_bezier_sandwich % thickness
136 /traject_alpha exch def
137 traject_ds traject_alpha sin mul add
139 traject_ds traject_alpha cos mul add
150 bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
151 bracket_alpha bracket_v -0.15 mul bracket_traject
154 0 bracket_v 0.5 mul bracket_traject
158 bracket_b bracket_h bracket_t sub
159 0 bracket_v 0.4 mul bracket_traject
161 bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
162 bracket_alpha bracket_v -0.25 mul bracket_traject
164 bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
166 bracket_b bracket_h bracket_t sub
185 /draw_bracket % height
187 2 div bracket_b add /bracket_h exch def
188 bracket_t setlinewidth
189 % urg: the only Level-2 PS, check effect in print
190 % true setstrokeadjust