]> git.donarmstrong.com Git - lilypond.git/blob - tex/lilyponddefs.ps
b3ba94564ea3da7cef80366db7da487ce87de0f2
[lilypond.git] / tex / lilyponddefs.ps
1 %!PS-Adobe-3.0: lilyponddefs
2
3 % hmm
4 /setgray { 1 add } bind def
5
6 /xoffset 30 def
7 /yoffset 700 def
8 /staffrulethickness 1 def
9 /staffheight 20 def
10
11 % round cappings
12 1 setlinecap
13
14 /placebox
15 {
16         /object exch def
17         gsave
18         exch translate
19         0 0 moveto
20         object
21         grestore
22 } bind def
23
24 /settext
25 {
26         gsave
27         % urg
28         /Times-Roman findfont 12 scalefont setfont
29         show
30         grestore
31 } bind def
32
33 /vrule % width height depth
34 {
35         gsave
36         3 -1 roll setlinewidth
37         neg 0 exch moveto
38         0 exch lineto stroke
39         grestore
40 } bind def
41
42 /draw_stem % kern width height depth
43 {
44         gsave
45         4 -1 roll neg 0 translate
46         vrule
47         grestore
48 } bind def
49
50 /widthbar % height width
51 {
52         gsave
53         setlinewidth
54         2 div dup neg 0 exch moveto
55         0 exch lineto stroke
56         2 div
57         grestore
58 } bind def
59
60 /thickbar % height
61 {
62         stafflinethickness 2 mul widthbar
63 } bind def
64
65 /thinbar % height
66 {
67         stafflinethickness 1.6 mul widthbar
68 } bind def
69
70 /maatstreep
71 {
72         thinbar
73 } bind def
74
75 /finishbar
76 {
77         thickbar
78 } bind def
79
80 /generalmeter
81 {
82 } bind def
83
84 /pianobrace
85 {
86         gsave
87         /feta-braces20 findfont 12 scalefont setfont%
88         show
89         grestore
90 } bind def
91
92 /repeatbar
93 {
94 } bind def
95
96 /start_line
97
98         gsave
99         xoffset yoffset translate
100 } bind def
101
102 /stop_line
103
104         /object exch def
105         0 0 moveto pathbbox exch pop sub exch pop
106         object
107         grestore
108         yoffset add /yoffset exch def
109         % urg...
110         yoffset staffheight 8 mul sub /yoffset exch def
111 } bind def
112
113 /unknown {} bind def
114
115 /turnOnExperimentalFeatures { } bind def
116
117 /rulesym % thick length
118 {
119         gsave
120         exch setlinewidth
121         0 lineto stroke
122         grestore
123 } bind def
124
125 /draw_beam
126 {
127         2 div /beam_thick exch def
128         /beam_slope exch def
129         /beam_wd exch def
130         beam_slope beam_wd mul /beam_ht exch def
131         0 beam_thick neg moveto 
132         beam_wd beam_ht rlineto 
133         0 beam_thick 2 mul rlineto
134         0 beam_thick lineto
135         closepath fill
136 } bind def
137 %
138 /draw_decresc
139         {
140                 staffrulethickness setlinewidth
141                 /cresc_cont exch def
142                 /cresc_ht exch def
143                 /cresc_wd exch def
144 %
145                 cresc_wd cresc_cont moveto
146                 0 cresc_ht lineto
147                 stroke
148                 cresc_wd cresc_cont neg moveto
149                 0 cresc_ht neg lineto
150                 stroke
151         }
152         bind def
153         /draw_cresc
154         {
155                 staffrulethickness setlinewidth
156                 /cresc_cont exch def
157                 /cresc_ht exch def
158                 /cresc_wd exch def
159 %
160                 0 cresc_cont moveto
161                 cresc_wd cresc_ht lineto
162                 stroke
163                 0 cresc_cont neg moveto
164                 cresc_wd cresc_ht neg lineto
165                 stroke
166         }
167         bind def
168  /lily_distance {
169         1 copy mul exch 1 copy mul add sqrt
170  } bind def
171 staffrulethickness 1.2 mul /plet_t exch def
172 /draw_plet
173 {
174         plet_t setlinewidth
175         true setstrokeadjust
176         1 setlinecap
177         1 setlinejoin
178         /dir exch def
179         /plet_dy exch def
180         /plet_dx exch def
181         staffheight 2 div /plet_gapx exch def
182         plet_dy plet_dx div plet_gapx mul /plet_gapy exch def
183         staffheight 4 div dir mul /plet_h exch def
184 %
185         0 0 moveto
186         0 plet_h lineto 
187         plet_dx plet_gapx sub 2 div 
188                 plet_dy plet_gapy sub 2 div plet_h add lineto
189         plet_dx plet_gapx add 2 div 
190                 plet_dy plet_gapy add 2 div plet_h add moveto
191         plet_dx plet_dy plet_h add lineto
192         plet_dx plet_dy lineto
193         stroke
194 } bind def
195 %
196 /draw_slur
197 {
198         staffrulethickness setlinewidth
199         moveto
200         curveto
201         lineto
202         curveto
203         gsave
204         fill
205         grestore
206         stroke
207 } bind def
208 %
209 /draw_dashed_slur
210 {
211         1 setlinecap
212         1 setlinejoin
213         setdash
214         setlinewidth
215         moveto
216         curveto
217         stroke
218 } bind def
219 %
220 staffheight 4 div /interline exch def
221 %
222 /bracket_traject
223 {
224   /traject_ds exch def
225   /traject_alpha exch def
226   traject_ds traject_alpha sin mul add
227   exch
228   traject_ds traject_alpha cos mul add
229   exch
230 } bind def
231 %
232 % too fat for 20pt
233 % interline 2 div /bracket_b exch def
234 interline 3 div /bracket_b exch def
235 interline 2 mul /bracket_w exch def
236 staffrulethickness /stafflinethickness exch def
237 stafflinethickness 2 mul /bracket_t exch def
238 interline 1.5 mul /bracket_v exch def
239 bracket_v /bracket_u exch def
240 50 /bracket_alpha exch def
241 %
242 /half_bracket
243 {
244 %6
245         0 0
246 %5a
247         bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
248         bracket_alpha bracket_v -0.15 mul bracket_traject
249 %5b
250         1 bracket_h
251         0 bracket_v 0.5 mul bracket_traject
252 %5c
253         0 bracket_h
254 %4a
255         bracket_b bracket_h bracket_t sub
256         0 bracket_v 0.4 mul bracket_traject
257 %4b
258         bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
259         bracket_alpha bracket_v -0.25 mul bracket_traject
260 %4c
261         bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
262 %3
263         bracket_b bracket_h bracket_t sub
264 %2
265         bracket_b 0
266 %1
267         0 0
268 } bind def
269 %
270 /draw_half_bracket {
271         moveto
272         lineto
273         lineto
274         curveto
275         curveto
276         lineto
277         gsave
278         fill
279         grestore
280 } bind def
281 %
282 /draw_bracket
283 {
284         2 div bracket_b add /bracket_h exch def
285         bracket_t setlinewidth
286         true setstrokeadjust
287         1 setlinecap
288         1 setlinejoin
289         half_bracket
290         20 copy
291         1 -1 scale
292         draw_half_bracket
293         stroke
294         1 -1 scale
295 % ugh, ugh:
296         0.05 0 translate
297         draw_half_bracket
298         stroke
299 } bind def
300
301 stafflinethickness setlinewidth
302
303 % see if we're there...
304 % 10 setlinewidth 0 0 moveto 400 800 lineto stroke