- bind def
- /draw_cresc
- {
- staffrulethickness setlinewidth
- /cresc_cont exch def
- /cresc_ht exch def
- /cresc_wd exch def
-%
- 0 cresc_cont moveto
- cresc_wd cresc_ht lineto
- stroke
- 0 cresc_cont neg moveto
- cresc_wd cresc_ht neg lineto
- stroke
- }
- bind def
- /lily_distance {
- 1 copy mul exch 1 copy mul add sqrt
- } bind def
- /draw_plet
- {
- staffrulethickness setlinewidth
- /dir exch def
- /plet_dy exch def
- /plet_dx exch def
- staffheight 2 div /plet_gapx exch def
- plet_dy plet_dx div plet_gapx mul /plet_gapy exch def
- staffheight 4 div dir mul /plet_h exch def
-%
- 0 0 moveto
- 0 plet_h lineto
- plet_dx plet_gapx sub 2 div
- plet_dy plet_gapy sub 2 div plet_h add lineto
- plet_dx plet_gapx add 2 div
- plet_dy plet_gapy add 2 div plet_h add moveto
- plet_dx plet_dy plet_h add lineto
- plet_dx plet_dy lineto
- stroke
- }
- bind def
- staffheight 2 div /slurhtlimit exch def
- /slurratio 0.3333 def
- %
- % (b*ratio)/(1 + b / htlimit)
- /getslurcontrol
- {
- slurhtlimit 90 div /slur_alpha exch def
- slurratio 60 div slur_alpha div /slur_beta exch def
- slur_beta mul 1 atan slur_alpha mul
- } bind def
- staffrulethickness 1.5 mul /slur_thick exch def
- /draw_slur
- {
- staffrulethickness setlinewidth
- 0 0 moveto
- /slur_dir exch def
- /slur_height exch def
- /slur_dy exch def
- /slur_dx exch def
- slur_dy slur_dx lily_distance /slur_b exch def
- slur_b getslurcontrol slur_height add
- slur_dir mul /slur_ht exch def
- slur_b getslurcontrol /slur_indent exch def
-%
- slur_dy slur_dx atan rotate
- slur_indent slur_ht
- slur_b slur_indent sub slur_ht
- slur_b 0
- rcurveto
- %
- slur_indent neg slur_ht slur_dir slur_thick mul sub
- slur_indent slur_b sub slur_ht slur_dir slur_thick mul sub
- slur_b neg 0
- rcurveto
- %
- gsave
- fill
- grestore
- stroke
- } bind def}}
-
-