lilypond-1.3.87
[lilypond.git] / tex / lilyponddefs.ps
blob07e3845d1542f3d79c30655dffb6313a33b92a3e
1 %!PS-Adobe-3.0: lilyponddefs
3 % hmm
4 /setgray { 1 add } bind def
6 /xoffset 30 def
7 /yoffset 700 def
8 /staffrulethickness 1 def
9 /staffheight 20 def
11 % round cappings
12 1 setlinecap
14 /placebox
16         /object exch def
17         gsave
18         %exch translate
19         translate
20         0 0 moveto
21         object
22         grestore
23 } bind def
25 /settext % '(' text ')'
27         gsave
28         % urg
29         /Times-Roman findfont 12 scalefont setfont
30         show
31         grestore
32 } bind def
34 /setfinger % '(' text ')'
36         gsave
37         % urg
38         /feta-nummer5 findfont 12 scalefont setfont
39         show
40         grestore
41 } bind def
43 /setitalic % '(' text ')'
45         gsave
46         % urg
47         /Times-Italic findfont 12 scalefont setfont
48         show
49         grestore
50 } bind def
52 /vrule % width height depth
54         gsave
55         3 -1 roll setlinewidth
56         neg 0 exch moveto
57         0 exch lineto stroke
58         grestore
59 } bind def
61 /draw_stem % kern width height depth
63         gsave
64         4 -1 roll neg 0 translate
65         vrule
66         grestore
67 } bind def
69 /widthbar % height width
71         gsave
72         setlinewidth
73         2 div dup neg 0 exch moveto
74         0 exch lineto stroke
75         2 div
76         grestore
77 } bind def
79 /thickbar % height
81         stafflinethickness 2 mul widthbar
82 } bind def
84 /thinbar % height
86         stafflinethickness 1.6 mul widthbar
87 } bind def
89 /maatstreep % height
91         thinbar
92 } bind def
94 /finishbar
96         thickbar
97 } bind def
99 /generalmeter % num den
101         pop pop
102 } bind def
104 /pianobrace
106         gsave
107         /feta-braces20 findfont 12 scalefont setfont%
108         show
109         grestore
110 } bind def
112 /repeatbar
114 } bind def
116 /start_line
118         gsave
119         xoffset yoffset translate
120 } bind def
122 /stop_line
124         /object exch def
125         0 0 moveto pathbbox exch pop sub exch pop
126         object
127         grestore
128         yoffset add /yoffset exch def
129         % urg...
130         yoffset staffheight 8 mul sub /yoffset exch def
131 } bind def
133 /unknown { (U) show} bind def
134 /empty {(E) show} bind def
136 /turnOnExperimentalFeatures { } bind def
138 /rulesym % thick length
140         gsave
141         exch setlinewidth
142         0 lineto stroke
143         grestore
144 } bind def
146 /draw_beam % width slope thick
148         2 div /beam_thick exch def
149         /beam_slope exch def
150         /beam_wd exch def
151         beam_slope beam_wd mul /beam_ht exch def
152         0 beam_thick neg moveto 
153         beam_wd beam_ht rlineto 
154         0 beam_thick 2 mul rlineto
155         0 beam_thick lineto
156         closepath fill
157 } bind def
159 /draw_decresc
160         {
161                 staffrulethickness setlinewidth
162                 /cresc_cont exch def
163                 /cresc_ht exch def
164                 /cresc_wd exch def
166                 cresc_wd cresc_cont moveto
167                 0 cresc_ht lineto
168                 stroke
169                 cresc_wd cresc_cont neg moveto
170                 0 cresc_ht neg lineto
171                 stroke
172         }
173         bind def
174         /draw_cresc
175         {
176                 staffrulethickness setlinewidth
177                 /cresc_cont exch def
178                 /cresc_ht exch def
179                 /cresc_wd exch def
181                 0 cresc_cont moveto
182                 cresc_wd cresc_ht lineto
183                 stroke
184                 0 cresc_cont neg moveto
185                 cresc_wd cresc_ht neg lineto
186                 stroke
187         }
188         bind def
189  /lily_distance {
190         1 copy mul exch 1 copy mul add sqrt
191  } bind def
192 staffrulethickness 1.2 mul /plet_t exch def
193 /draw_plet
195         plet_t setlinewidth
196         true setstrokeadjust
197         1 setlinecap
198         1 setlinejoin
199         /dir exch def
200         /plet_dy exch def
201         /plet_dx exch def
202         staffheight 2 div /plet_gapx exch def
203         plet_dy plet_dx div plet_gapx mul /plet_gapy exch def
204         staffheight 4 div dir mul /plet_h exch def
206         0 0 moveto
207         0 plet_h lineto 
208         plet_dx plet_gapx sub 2 div 
209                 plet_dy plet_gapy sub 2 div plet_h add lineto
210         plet_dx plet_gapx add 2 div 
211                 plet_dy plet_gapy add 2 div plet_h add moveto
212         plet_dx plet_dy plet_h add lineto
213         plet_dx plet_dy lineto
214         stroke
215 } bind def
217 /draw_slur
219         staffrulethickness setlinewidth
220         moveto
221         curveto
222         lineto
223         curveto
224         gsave
225         fill
226         grestore
227         stroke
228 } bind def
230 /draw_dashed_slur
232         1 setlinecap
233         1 setlinejoin
234         setdash
235         setlinewidth
236         moveto
237         curveto
238         stroke
239 } bind def
241 staffheight 4 div /interline exch def
243 /bracket_traject
245   /traject_ds exch def
246   /traject_alpha exch def
247   traject_ds traject_alpha sin mul add
248   exch
249   traject_ds traject_alpha cos mul add
250   exch
251 } bind def
253 % too fat for 20pt
254 % interline 2 div /bracket_b exch def
255 interline 3 div /bracket_b exch def
256 interline 2 mul /bracket_w exch def
257 staffrulethickness /stafflinethickness exch def
258 stafflinethickness 2 mul /bracket_t exch def
259 interline 1.5 mul /bracket_v exch def
260 bracket_v /bracket_u exch def
261 50 /bracket_alpha exch def
263 /half_bracket
266         0 0
268         bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
269         bracket_alpha bracket_v -0.15 mul bracket_traject
271         1 bracket_h
272         0 bracket_v 0.5 mul bracket_traject
274         0 bracket_h
276         bracket_b bracket_h bracket_t sub
277         0 bracket_v 0.4 mul bracket_traject
279         bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
280         bracket_alpha bracket_v -0.25 mul bracket_traject
282         bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
284         bracket_b bracket_h bracket_t sub
286         bracket_b 0
288         0 0
289 } bind def
291 /draw_half_bracket {
292         moveto
293         lineto
294         lineto
295         curveto
296         curveto
297         lineto
298         gsave
299         fill
300         grestore
301 } bind def
303 /draw_bracket
305         2 div bracket_b add /bracket_h exch def
306         bracket_t setlinewidth
307         true setstrokeadjust
308         1 setlinecap
309         1 setlinejoin
310         half_bracket
311         20 copy
312         1 -1 scale
313         draw_half_bracket
314         stroke
315         1 -1 scale
316 % ugh, ugh:
317         0.05 0 translate
318         draw_half_bracket
319         stroke
320 } bind def
322 stafflinethickness setlinewidth
324 % see if we're there...
325 % 10 setlinewidth 0 0 moveto 400 800 lineto stroke