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