-/draw_volta % h w thick vert_start vert_end
-{
- 1 setlinecap
- 1 setlinejoin
-
- /vert_end exch def
- /vert_start exch def
- setlinewidth
- /volta_w exch def
- /volta_h exch def
- vert_start 0 eq {
- 0 0 moveto
- 0 volta_h lineto
- } if
- 0 volta_h moveto
- volta_w volta_h lineto
- vert_end 0 eq {
- volta_w 0 lineto
- } if
- stroke
-} bind def
-
-% this is for drawing slurs.
-/draw_bezier_sandwich % thickness controls
-{
- setlinewidth
- moveto
- curveto
- lineto
- curveto
- gsave
- fill
- grestore
- stroke
-} bind def
-
-/draw_dashed_line % dash thickness dx dy
-{
- 1 setlinecap
- 1 setlinejoin
- setdash
- setlinewidth
- 0 0 moveto
- lineto
- stroke
-} bind def
-
-/draw_dashed_slur % dash thickness controls
-{
- 1 setlinecap
- 1 setlinejoin
- setdash
- setlinewidth
- 8 -2 roll
- moveto
- curveto
- stroke
-} bind def
-
-
-
-/bracket_traject
-{
- /traject_ds exch def
- /traject_alpha exch def
- traject_ds traject_alpha sin mul add
- exch
- traject_ds traject_alpha cos mul add
- exch
-} bind def
-
-
-
-/half_bracket
-{
-%6
- 0 0
-%5a
- bracket_thick arch_height add half_height arch_thick sub arch_width add
- arch_angle arch_height -0.15 mul bracket_traject
-%5b
- bracket_thick 0.5 mul half_height
- 0 arch_height 0.5 mul bracket_traject
-%5c
- 0 half_height
-%4a
- bracket_thick half_height arch_thick sub
- 0 arch_height 0.4 mul bracket_traject
-%4b
- bracket_thick arch_height add half_height arch_thick sub arch_width add
- arch_angle arch_height -0.25 mul bracket_traject
-%4c
- bracket_thick arch_height add half_height arch_thick sub arch_width add
-%3
- bracket_thick half_height arch_thick sub
-%2
- bracket_thick 0
-%1
- 0 0
-} bind def
+/draw_oval % filled? x-radius y-radius thickness draw_ellipse
+{
+ setlinewidth % f? x-r y-r
+ /yrad exch def
+ /xrad exch def
+ xrad 0 rmoveto
+ 0 yrad -2 xrad mul dup yrad exch 0 rcurveto
+ 0 yrad neg dup 2 xrad mul dup 3 1 roll 0 rcurveto
+ closepath
+ { stroke_and_fill}
+ { stroke }
+ ifelse
+} bind def