1 %!PS-Adobe-1.0: lily.ps
3 % Functions for direct and embedded PostScript
10 1 copy mul exch 1 copy mul add sqrt
13 /draw_beam % width slope thick
15 2 div /beam_thick exch def
18 beam_slope beam_wd mul /beam_ht exch def
19 0 beam_thick neg moveto
20 beam_wd beam_ht rlineto
21 0 beam_thick 2 mul rlineto
26 /draw_repeat_slash % width slope thick
31 beamthick beamthick slope div euclidean_length
35 width slope width mul rlineto
37 % width neg width angle sin mul neg rlineto
41 /draw_hairpin % width start_h end_h thick
55 /draw_tuplet % height gap dx dy thick dir
65 tuplet_dy tuplet_dx div tuplet_gapx mul /tuplet_gapy exch def
68 0 tuplet_h neg dir mul moveto
70 tuplet_dx tuplet_gapx sub 2 div
71 tuplet_dy tuplet_gapy sub 2 div lineto
72 tuplet_dx tuplet_gapx add 2 div
73 tuplet_dy tuplet_gapy add 2 div moveto
74 tuplet_dx tuplet_dy lineto
75 tuplet_dx tuplet_dy tuplet_h dir neg mul add lineto
79 /draw_ez_ball % ch letter_col ball_col font
82 findfont 0.7 scalefont setfont
86 0.5 0 0.5 0 360 arc closepath fill stroke
91 0.5 0 0.4 0 360 arc closepath
96 % 0.25 is empiric centering. Change to taste
102 % Simple, but does it work everywhere?
103 % Han-Wen reports that one printer (brand?) at cs.uu.nl chokes on this,
104 % reverted for now -- jcn
106 % The filled circles are drawn by setting the linewidth
107 % to 2*radius and drawing a point.
108 /simple_draw_ez_ball % ch letter_col ball_col font
111 findfont 0.85 scalefont setfont
112 /origin { 0.45 0 } def
124 % 0.25 is empiric centering. Change to taste
131 /draw_volta % h w thick vert_start vert_end
145 volta_w volta_h lineto
152 % this is for drawing slurs.
153 /draw_bezier_sandwich % thickness controls
166 /draw_dashed_line % dash thickness dx dy
177 /draw_dashed_slur % dash thickness controls
194 /traject_alpha exch def
195 traject_ds traject_alpha sin mul add
197 traject_ds traject_alpha cos mul add
208 bracket_thick arch_height add half_height arch_thick sub arch_width add
209 arch_angle arch_height -0.15 mul bracket_traject
211 bracket_thick 0.5 mul half_height
212 0 arch_height 0.5 mul bracket_traject
216 bracket_thick half_height arch_thick sub
217 0 arch_height 0.4 mul bracket_traject
219 bracket_thick arch_height add half_height arch_thick sub arch_width add
220 arch_angle arch_height -0.25 mul bracket_traject
222 bracket_thick arch_height add half_height arch_thick sub arch_width add
224 bracket_thick half_height arch_thick sub
243 /draw_bracket % arch_angle arch_width arch_height bracket_height arch_thick bracket_thick
247 /bracket_thick exch def
249 /bracket_height exch def
250 /arch_height exch def
254 bracket_height 2 div bracket_thick add /half_height exch def
255 bracket_thick 0.5 mul setlinewidth