]> git.donarmstrong.com Git - lilypond.git/blob - tex/lilyponddefs.ps
patch::: 1.1.0.jcn1: tegen nul
[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         translate
20         0 0 moveto
21         object
22         grestore
23 } bind def
24
25 /settext % '(' text ')'
26 {
27         gsave
28         % urg
29         /Times-Roman findfont 12 scalefont setfont
30         show
31         grestore
32 } bind def
33
34 /setfinger % '(' text ')'
35 {
36         gsave
37         % urg
38         /feta-nummer5 findfont 12 scalefont setfont
39         show
40         grestore
41 } bind def
42
43 /setitalic % '(' text ')'
44 {
45         gsave
46         % urg
47         /Times-Italic findfont 12 scalefont setfont
48         show
49         grestore
50 } bind def
51
52 /vrule % width height depth
53 {
54         gsave
55         3 -1 roll setlinewidth
56         neg 0 exch moveto
57         0 exch lineto stroke
58         grestore
59 } bind def
60
61 /draw_stem % kern width height depth
62 {
63         gsave
64         4 -1 roll neg 0 translate
65         vrule
66         grestore
67 } bind def
68
69 /widthbar % height width
70 {
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
78
79 /thickbar % height
80 {
81         stafflinethickness 2 mul widthbar
82 } bind def
83
84 /thinbar % height
85 {
86         stafflinethickness 1.6 mul widthbar
87 } bind def
88
89 /maatstreep % height
90 {
91         thinbar
92 } bind def
93
94 /finishbar
95 {
96         thickbar
97 } bind def
98
99 /generalmeter % num den
100 {
101         pop pop
102 } bind def
103
104 /pianobrace
105 {
106         gsave
107         /feta-braces20 findfont 12 scalefont setfont%
108         show
109         grestore
110 } bind def
111
112 /repeatbar
113 {
114 } bind def
115
116 /start_line
117
118         gsave
119         xoffset yoffset translate
120 } bind def
121
122 /stop_line
123
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
132
133 /unknown { (U) show} bind def
134 /empty {(E) show} bind def
135
136 /turnOnExperimentalFeatures { } bind def
137
138 /rulesym % thick length
139 {
140         gsave
141         exch setlinewidth
142         0 lineto stroke
143         grestore
144 } bind def
145
146 /draw_beam % width slope thick
147 {
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
158 %
159 /draw_decresc
160         {
161                 staffrulethickness setlinewidth
162                 /cresc_cont exch def
163                 /cresc_ht exch def
164                 /cresc_wd exch def
165 %
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
180 %
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
194 {
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
205 %
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
216 %
217 /draw_slur
218 {
219         staffrulethickness setlinewidth
220         moveto
221         curveto
222         lineto
223         curveto
224         gsave
225         fill
226         grestore
227         stroke
228 } bind def
229 %
230 /draw_dashed_slur
231 {
232         1 setlinecap
233         1 setlinejoin
234         setdash
235         setlinewidth
236         moveto
237         curveto
238         stroke
239 } bind def
240 %
241 staffheight 4 div /interline exch def
242 %
243 /bracket_traject
244 {
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
252 %
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
262 %
263 /half_bracket
264 {
265 %6
266         0 0
267 %5a
268         bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
269         bracket_alpha bracket_v -0.15 mul bracket_traject
270 %5b
271         1 bracket_h
272         0 bracket_v 0.5 mul bracket_traject
273 %5c
274         0 bracket_h
275 %4a
276         bracket_b bracket_h bracket_t sub
277         0 bracket_v 0.4 mul bracket_traject
278 %4b
279         bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
280         bracket_alpha bracket_v -0.25 mul bracket_traject
281 %4c
282         bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
283 %3
284         bracket_b bracket_h bracket_t sub
285 %2
286         bracket_b 0
287 %1
288         0 0
289 } bind def
290 %
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
302 %
303 /draw_bracket
304 {
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
321
322 stafflinethickness setlinewidth
323
324 % see if we're there...
325 % 10 setlinewidth 0 0 moveto 400 800 lineto stroke