lilypond-1.3.124
[lilypond.git] / input / les-nereides.ly
blob85a28ffe399893219cd725e0f8cf34dddd464b79
1 %{
2 cpp -P -traditional -o l.ly les-nereides.ly
3 cpp -P -traditional -o l-fake.ly -DFAKE_GRACE les-nereides.ly
4 %}
6 \version "1.3.117";
8 \header{
9 composer = "ARTHUR GRAY";
10 title = "LES N\\'ER\\'EIDES";
11 subtitle = "THE NEREIDS";
12 enteredby = "JCN";
13 %piece = "Allegretto scherzando";
14 copyright = "public domain";
15 description = "Nastiest piece of competition at http://www.orphee.com/comparison/study.html, see http://www.orphee.com/comparison/gray.pdf";
16 comment = "LilyPond (1.3.93) can't really do this yet, I guess";
20 %% cpp: don't start on first column
21 #(define (grace-beam-space-function multiplicity)
22 (* (if (<= multiplicity 3) 0.816 0.844) 0.8))
24 %% cpp: don't start on first column
25 #(define (make-text-checker text)
26 (lambda (elt)
27 ;; huh, string-match undefined?
28 ;; (string-match text (ly-get-elt-property elt 'text))
29 (equal? text (ly-get-elt-property elt 'text))
33 global = \notes{
34 \partial 2;
35 \key a \major;
36 \skip 2;
37 \skip 1*2;
39 #ifndef FAKE_GRACE
40 \skip 1;
41 #else % FAKE_GRACE
42 \skip 2.; \partial 32*24;
43 \skip 32*24;
44 #endif % FAKE_GRACE
46 \bar "||";
49 treble = \context Voice=treble \notes\relative c''{
50 % Broken?
51 \property Voice.NoteColumn \override #'horizontal-shift = #0
52 \outputproperty #(make-type-checker 'text-item-interface)
53 #'extra-offset = #'(-6 . 2)
54 %% *Style* = Large??
55 \property Voice.TextScript \override #'style = #"Large"
56 r2^"Allegretto scherzando"
57 \property Voice.TextScript \revert #'style
59 \property Voice.Stem \revert #'direction
60 \property Voice.Stem \override #'direction = #1
61 r4 <cis\arpeggio eis a cis> r2
63 r4 <cis\arpeggio fis a cis> r8.
64 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
65 \translator Staff=bass
66 % Get back
67 \context Voice
68 \outputproperty #(make-text-checker "m.d.")
69 #'extra-offset = #'(-3 . -4)
70 % currently, this can't be (small) italic, because in the paperblock
71 % we set italic_magnifictation to get large italics.
72 cis,16^2^"m.d."( <fis8 fis,> <e! e,!>
74 <)dis,4 a' dis>
75 % Urg, this lifts us up to staff context
76 \translator Staff=treble
77 % Get back
78 \context Voice
79 \property Voice.Slur \revert #'direction
80 \property Voice.Slur \override #'direction = #1
81 \property PianoStaff.connectArpeggios = ##t
82 \property Voice.TextSpanner \revert #'type
84 %% Ghostview is ok, but xdvi shows a solid line
85 \property Voice.TextSpanner \override #'line-thickness = #2
86 \property Voice.TextSpanner \override #'dash-period = #0.5
88 \property Voice.TextSpanner \override #'type = #"dotted-line"
89 \property Voice.TextSpanner \override #'edge-height = #'(0 . 1.5)
90 \property Voice.TextSpanner \override #'edge-text = #'("8 " . "")
91 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
93 % no, see seq-mus-iter --hwn
94 \property Staff."c0-position" = #-13
97 % Get back
98 %\context Voice
99 \outputproperty #(make-text-checker "m.g.")
100 #'extra-offset = #'(-3 . -2)
101 % currently, this can't be (small) italic, because in the paperblock
102 % we set italic_magnifictation to get large italics.
103 cis''''4^"m.g."\arpeggio \spanrequest \start "text" (
105 #ifndef FAKE_GRACE
107 \property Voice.Stem \revert #'direction
109 % grace is a mess
110 % maybe we should fake this and put 5/4 in this bar?
112 \grace {
113 )cis8
114 \property Grace.Stem \revert #'direction
115 \property Grace.Stem \override #'direction = #0
116 \property Grace.Beam \override #'space-function = #grace-beam-space-function
117 %% urg, dim. during grace dumps core here
118 %% [a16-5( fis dis \spanrequest \stop "text" ]
119 %% [cis'32 a-1 fis-4 dis] [cis a )fis-2]
120 [a16-5( fis dis \spanrequest \stop "text" ]
121 \property Staff."c0-position" = #-6
122 [cis32 a-1 fis-4 dis] [cis a )fis-2]
125 #else % FAKE_GRACE
127 \property Score.PaperColumn \override #'space-factor = #0.6
128 \property Score.PaperColumn \override #'to-musical-spacing-factor = #0.04
129 \property Voice.NoteHead \override #'font-relative-size = #-1
130 \property Voice.Stem \override #'font-relative-size = #-1
131 \property Voice.Stem \override #'length = #6
132 \property Voice.Stem \override #'beamed-lengths =
133 #(map (lambda (x) (* 1.25 x)) '(0.0 2.5 2.0 1.5))
134 \property Voice.Stem \override #'beamed-minimum-lengths =
135 #(map (lambda (x) (* 1.25 x)) '(0.0 1.5 1.25 1.0))
137 \property Voice.Beam \override #'font-relative-size = #-1
138 \property Voice.TextScript \override #'font-relative-size = #-1
139 \property Voice.Fingering \override #'font-relative-size = #-1
140 \property Voice.Slur \override #'font-relative-size = #-1
141 \property Staff.Accidentals \override #'font-relative-size = #-1
142 \property Voice.Beam \override #'space-function = #grace-beam-space-function
144 )cis16
145 \property Voice.Stem \revert #'direction
146 \property Voice.Stem \override #'direction = #0
147 %% [a16^5( fis dis \spanrequest \stop "text" ]
148 %% [cis'32 a-1 fis-4 dis] [cis a )fis-2] s s s
149 [a16^5( fis dis \spanrequest \stop "text" ]
150 \property Staff."c0-position" = #-6
151 [cis32 a^1 fis^4 dis] [cis a )fis-2] s % s s
153 \property Voice.NoteHead \revert #'font-relative-size
154 \property Voice.Stem \revert #'font-relative-size
155 \property Voice.Stem \revert #'length
156 \property Voice.Stem \revert #'beamed-lengths
157 \property Voice.Stem \revert #'beamed-minimum-lengths
158 \property Voice.Beam \revert #'font-relative-size
159 \property Voice.TextScript \revert #'font-relative-size
160 \property Voice.Fingering \revert #'font-relative-size
161 \property Voice.Slur \revert #'font-relative-size
162 \property Staff.Accidentals \revert #'font-relative-size
163 \property Voice.Beam \revert #'space-function
164 \property Score.PaperColumn \revert #'space-factor
165 \property Score.PaperColumn \revert #'to-musical-spacing-factor
166 #endif % FAKE_GRACE
169 \property Voice.Stem \revert #'direction
170 \property Voice.Stem \override #'direction = #1
171 cis'4()bis
173 <a'8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e^" "^1^4^5 r|
174 r<a8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e r|
177 trebleTwo = \context Voice=trebleTwo \notes\relative c''{
178 \property Voice.NoteColumn \override #'horizontal-shift = #1
180 s1*2
182 \property Voice.Stem \revert #'direction
183 \property Voice.Stem \override #'direction = #-1
184 <cis'4\arpeggio a fis dis>
186 #ifdef FAKE_GRACE
187 s32*16
188 #endif
190 \property Voice.NoteColumn \override #'force-hshift = #-0.2
191 <e,2 gis, e d!>
192 % Hmm s/r?
193 %r8 cis4. d4
194 s8 cis4. d4
195 \property Voice.NoteColumn \revert #'force-hshift
196 [<cis8( e,> <b-3 d,-1> |
197 \property Voice.NoteColumn \override #'force-hshift = #-0.2
198 <)a-2 cis,-1>] cis4. d4
199 \property Voice.NoteColumn \revert #'force-hshift
200 [<cis8( e,> <b d,> |
201 <)a cis,>]
204 bass = \context Voice=bass \notes\relative c{
205 % Allow ugly slurs
206 \property Voice.Slur \override #'beautiful = #5.0
207 \property Voice.Slur \override #'attachment-offset = #'((0 . -3) . (0 . -6))
208 \property Voice.Stem \revert #'direction
209 \property Voice.Slur \override #'direction = #-1
210 % huh, auto-beamer?
211 r8. e,16-2( [<a8 a,> <b b,>] <cis4 cis,> |
213 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
214 \translator Staff=treble
215 % Get back
216 \context Voice
217 \property Voice.Stem \revert #'direction
218 \property Voice.Stem \override #'direction = #-1
219 \property Voice.slurEndAttachment = #'stem
220 <)a''4\arpeggio eis cis>
221 %\stemboth
222 \property Voice.slurEndAttachment = ##f
223 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
224 \translator Staff=bass
225 % Get back
226 \context Voice
227 \property Voice.Stem \revert #'direction
228 \property Voice.Slur \revert #'y-free
229 \property Voice.Slur \override #'y-free = #0.1
230 \property Voice.Slur \revert #'attachment-offset
231 \property Voice.Slur \override #'attachment-offset = #'((0 . -3) . (0 . -8))
232 r8. cis,,16( <fis8 fis,> <gis gis,>
234 \property Voice.Stem \revert #'length
235 \property Voice.Stem \override #'length = #5
236 <a4 a,>
237 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
238 \translator Staff=treble
239 % Get back
240 \context Voice
241 \property Voice.Stem \revert #'length
242 \property Voice.Stem \revert #'direction
243 \property Voice.Stem \override #'direction = #-1
244 <)a'\arpeggio fis cis>
245 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
246 \translator Staff=bass
247 % Get back
248 \context Voice
249 \property Voice.Stem \revert #'direction
252 \property Voice.Slur \revert #'beautiful
253 \property Voice.Slur \revert #'attachment-offset
254 \property Voice.Stem \revert #'direction
255 \property Voice.Stem \override #'direction = #-1
256 <b,,4 b,>
257 \clef treble;
258 \property Voice.Stem \revert #'direction
259 \property Voice.Stem \override #'direction = #0
261 %urg: staff-change: ! on dis
262 <cis''\arpeggio a fis dis!>
263 % { s8. \clef bass;}
266 #ifndef FAKE_GRACE
267 %Hmm
268 %\grace { s16 s s s s32 s s s s \clef bass; s }
269 \clef bass;
270 \grace { <e,,,32( e,> } <)gis'2 e>
271 #else
272 s4 s8 s32 s s \clef bass;
273 \property Score.PaperColumn \override #'space-factor = #0.6
274 \property Score.PaperColumn \override #'to-musical-spacing-factor = #0.1
275 \property Voice.NoteHead \override #'font-relative-size = #-1
276 \property Voice.Stem \override #'font-relative-size = #-1
277 \property Voice.Stem \override #'length = #6
278 \property Voice.Slur \override #'font-relative-size = #-1
279 \property Voice.Slur \override #'attachment-offset = #'((-0.5 . 0) . (0.5 . 0))
280 <e,,,32( e,>
282 \property Voice.NoteHead \revert #'font-relative-size
283 \property Voice.Stem \revert #'font-relative-size
284 \property Voice.Stem \revert #'length
285 \property Voice.Slur \revert #'font-relative-size
286 \property Score.PaperColumn \revert #'space-factor
287 \property Score.PaperColumn \revert #'to-musical-spacing-factor
288 <)gis'2 e>
289 \property Voice.Slur \revert #'attachment-offset
290 #endif
292 \property Voice.Slur \revert #'direction
293 \property Voice.Slur \override #'direction = #1
294 a,8 [e'-5(<)a-2 cis-3>]
295 r b,-5 <e4-3 gis-5 d'>
296 \property Voice.Slur \revert #'direction
297 \property Voice.Slur \override #'direction = #0
298 [e,8-5(|
300 )a-2]
301 \property Voice.Slur \revert #'direction
302 \property Voice.Slur \override #'direction = #1
303 [e'(<)a cis>] r b, <e4 gis d'>
304 \property Voice.Slur \revert #'direction
305 \property Voice.Slur \override #'direction = #0
306 [e,8(|
311 bassTwo = \context Voice=bassTwo \notes\relative c{
312 \skip 2;
313 \skip 1*2;
314 \skip 2;
316 #ifdef FAKE_GRACE
317 \skip 32*16;
318 #endif
320 \property Voice.Stem \revert #'direction
321 \property Voice.Stem \override #'direction = #1
322 \property Voice.Slur \revert #'direction
323 \property Voice.Slur \override #'direction = #1
325 cis'4()bis
328 middleDynamics = \context Dynamics=middle \notes{
329 s8 s16 s\f s4
330 s1*2
334 #ifdef FAKE_GRACE
335 s32*12
336 \outputproperty #(make-type-checker 'dynamic-interface)
337 #'extra-offset = #'(0 . 1.5)
338 s32\> s s \!s
339 #endif
340 s32
341 \outputproperty #(make-type-checker 'text-item-interface)
342 #'extra-offset = #'(0 . 1.5)
343 s-"rall." s s
344 s8 s4
346 \outputproperty #(make-type-checker 'dynamic-interface)
347 #'extra-offset = #'(0 . 4)
348 %s1\mf-"a tempo"
349 s2\mf-"a tempo" s4
350 \outputproperty #(make-type-checker 'crescendo-interface)
351 #'extra-offset = #'(0.5 . -1)
352 s\> \!s8
353 \outputproperty #(make-type-checker 'dynamic-interface)
354 #'extra-offset = #'(-1 . 4)
355 s8\mf s4 s4 s8\> s32 s s \!s
358 lowerDynamics = \context Dynamics=lower \notes{
361 s2\sustaindown s8. s16\sustainup s4
363 s2\sustaindown s8. s16\sustainup s4
366 #ifndef FAKE_GRACE
367 s4\sustaindown s16
368 s32 s s\sustainup s
369 s32\sustaindown s s s
371 #else
372 s2\sustaindown
373 s32*12
374 s32 s s\sustainup s
375 s32\sustaindown s s s
376 #endif
378 \property Dynamics.stopSustain = #""
379 s4 s16. s32\sustainup
382 s8\sustaindown s s
383 \property Dynamics.stopSustain = #"*"
384 \property Dynamics.stopStartSustain = #"-P"
385 s s\sustainup\sustaindown s s
386 s\sustainup
389 \property Dynamics.stopStartSustain = #""
390 s8\sustaindown s s
391 \property Dynamics.stopStartSustain = #"-P"
392 s s\sustainup\sustaindown s s
393 s\sustainup
396 \score{
397 \context PianoStaff <
398 \context Staff=treble <
399 \global
400 \treble
401 \trebleTwo
403 \context Dynamics=middle <
404 \global
405 \middleDynamics
407 \context Staff=bass <
408 \clef bass;
409 \global
410 \bass
411 \bassTwo
413 \context Dynamics=lower <
414 \global
415 \lowerDynamics
418 \paper {
419 %%BURP
420 magnification_italic = 1.;
421 \translator {
422 \ScoreContext
423 TimeSignature \override #'style = #"C"
424 SpacingSpanner \override #'maximum-duration-for-spacing = #(make-moment 1 4)
426 \remove Bar_number_engraver;
428 \translator {
429 \type "Engraver_group_engraver";
430 \name Dynamics;
431 \consists "Output_property_engraver";
432 Generic_property_list = #generic-voice-properties
433 \consists "Property_engraver";
434 DynamicsMinimumVerticalExtent = #(cons -3 -3)
435 VerticalAlignment \override #'threshold = #'(9 . 9)
437 startSustain = #"Ped."
438 stopSustain = #"*"
439 stopStartSustain = #"*Ped."
440 startUnaChorda = #"una chorda"
441 stopUnaChorda = #"tre chorde"
443 \consists "Piano_pedal_engraver";
444 \consists "Script_engraver";
445 \consists "Dynamic_engraver";
446 \consists "Text_engraver";
447 %GURGURGU, text is initialised using TextScript
448 TextScript \override #'style = #"italic"
449 %%% TextScript \override #'font-relative-size = #2
451 \consists "Skip_req_swallow_translator";
453 \consistsend "Axis_group_engraver";
456 \translator {
457 \PianoStaffContext
458 \accepts Dynamics;
459 VerticalAlignment \override #'threshold = #'(7 . 7)
461 \translator {
462 \GraceContext
463 Stem \override #'flag-style = #""