]> git.donarmstrong.com Git - lilypond.git/blob - ps/lily.ps
release: 1.1.7
[lilypond.git] / ps / lily.ps
1 %!PS-Adobe-1.0: lily.ps
2
3 % round cappings
4 1 setlinecap
5
6 /draw_beam % width slope thick
7 {
8         2 div /beam_thick exch def
9         /beam_slope exch def
10         /beam_wd exch def
11         beam_slope beam_wd mul /beam_ht exch def
12         0 beam_thick neg moveto 
13         beam_wd beam_ht rlineto 
14         0 beam_thick 2 mul rlineto
15         0 beam_thick lineto
16         closepath fill
17 } bind def
18
19 /draw_decrescendo % width height cons
20 {
21         stafflinethickness setlinewidth
22         /cresc_cont exch def
23         /cresc_ht exch def
24         /cresc_wd exch def
25
26         cresc_wd cresc_cont moveto
27         0 cresc_ht lineto
28         stroke
29         cresc_wd cresc_cont neg moveto
30         0 cresc_ht neg lineto
31         stroke
32 } bind def
33
34 /draw_crescendo % width height cons
35 {
36         stafflinethickness setlinewidth
37         /cresc_cont exch def
38         /cresc_ht exch def
39         /cresc_wd exch def
40
41         0 cresc_cont moveto
42         cresc_wd cresc_ht lineto
43         stroke
44         0 cresc_cont neg moveto
45         cresc_wd cresc_ht neg lineto
46         stroke
47 } bind def
48
49 /lily_distance 
50 {
51         1 copy mul exch 1 copy mul add sqrt
52 } bind def
53
54 /draw_tuplet
55 {
56         tuplet_t setlinewidth
57 % urg: the only Level-2 PS, check effect in print
58 %       true setstrokeadjust
59         1 setlinecap
60         1 setlinejoin
61         /dir exch def
62         /tuplet_dy exch def
63         /tuplet_dx exch def
64         staffheight 2 div /tuplet_gapx exch def
65         tuplet_dy tuplet_dx div tuplet_gapx mul /tuplet_gapy exch def
66         staffheight 4 div dir mul /tuplet_h exch def
67
68         0 0 moveto
69         0 tuplet_h lineto 
70         tuplet_dx tuplet_gapx sub 2 div 
71                 tuplet_dy tuplet_gapy sub 2 div tuplet_h add lineto
72         tuplet_dx tuplet_gapx add 2 div 
73                 tuplet_dy tuplet_gapy add 2 div tuplet_h add moveto
74         tuplet_dx tuplet_dy tuplet_h add lineto
75         tuplet_dx tuplet_dy lineto
76         stroke
77 } bind def
78
79 /draw_volta % w last
80 {
81         /last exch def
82         /volta_w exch def
83         staffheight 2 div /volta_h exch def
84         volta_t setlinewidth
85         0 0 moveto
86         0 volta_h lineto
87         volta_w volta_h lineto
88         last 0 eq {
89                 volta_w 0 lineto
90         } if
91         stroke
92 } bind def
93
94 /draw_slur
95 {
96         stafflinethickness setlinewidth
97         moveto
98         curveto
99         lineto
100         curveto
101         gsave
102         fill
103         grestore
104         stroke
105 } bind def
106
107 /draw_dashed_slur
108 {
109         1 setlinecap
110         1 setlinejoin
111         setdash
112         setlinewidth
113         moveto
114         curveto
115         stroke
116 } bind def
117
118
119
120 /bracket_traject
121 {
122   /traject_ds exch def
123   /traject_alpha exch def
124   traject_ds traject_alpha sin mul add
125   exch
126   traject_ds traject_alpha cos mul add
127   exch
128 } bind def
129
130
131
132 /half_bracket
133 {
134 %6
135         0 0
136 %5a
137         bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
138         bracket_alpha bracket_v -0.15 mul bracket_traject
139 %5b
140         1 bracket_h
141         0 bracket_v 0.5 mul bracket_traject
142 %5c
143         0 bracket_h
144 %4a
145         bracket_b bracket_h bracket_t sub
146         0 bracket_v 0.4 mul bracket_traject
147 %4b
148         bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
149         bracket_alpha bracket_v -0.25 mul bracket_traject
150 %4c
151         bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
152 %3
153         bracket_b bracket_h bracket_t sub
154 %2
155         bracket_b 0
156 %1
157         0 0
158 } bind def
159
160 /draw_half_bracket {
161         moveto
162         lineto
163         lineto
164         curveto
165         curveto
166         lineto
167         gsave
168         fill
169         grestore
170 } bind def
171
172 /draw_bracket % height
173 {
174         2 div bracket_b add /bracket_h exch def
175         bracket_t setlinewidth
176 % urg: the only Level-2 PS, check effect in print
177 %       true setstrokeadjust
178         1 setlinecap
179         1 setlinejoin
180         half_bracket
181         20 copy
182         1 -1 scale
183         draw_half_bracket
184         stroke
185         1 -1 scale
186 % ugh, ugh:
187         0.05 0 translate
188         draw_half_bracket
189         stroke
190 } bind def
191