2 You should preprocess this file with the C preprocessor. The one with
6 cpp -P -traditional -o l.ly les-nereides.ly
9 cpp -P -traditional -o l-fake.ly -DFAKE_GRACE les-nereides.ly
16 composer = "ARTHUR GRAY"
17 title = "LES N\\'ER\\'EIDES"
18 subtitle = "THE NEREIDS"
20 %piece = "Allegretto scherzando"
21 copyright = "public domain"
22 description = "Nastiest piece of competition at http://www.orphee.com/comparison/study.html, see http://www.orphee.com/comparison/gray.pdf"
23 comment = "LilyPond (1.3.93) can't really do this yet, I guess"
27 % cpp: don't start on first column
28 #(set! point-and-click line-column-location)
30 %% cpp: don't start on first column
31 #(define (grace-beam-space-function multiplicity)
32 (* (if (<= multiplicity 3) 0.816 0.844) 0.8))
34 %% cpp: don't start on first column
35 #(define (make-text-checker text)
36 (lambda (elt) (equal? text (ly-get-grob-property elt 'text))))
38 % complete and move to propert.ly?
40 \property Score.PaperColumn \override #'space-factor = #0.6
41 \property Score.PaperColumn \override #'to-musical-spacing-factor = #0.04
42 \property Voice.NoteHead \override #'font-relative-size = #-1
43 \property Voice.Stem \override #'font-relative-size = #-1
44 \property Voice.Stem \override #'length = #6
45 \property Voice.Stem \override #'beamed-lengths =
46 #(map (lambda (x) (* 1.25 x)) '(0.0 2.5 2.0 1.5))
47 \property Voice.Stem \override #'beamed-minimum-lengths =
48 #(map (lambda (x) (* 1.25 x)) '(0.0 1.5 1.25 1.0))
50 \property Voice.Beam \override #'font-relative-size = #-1
51 \property Voice.TextScript \override #'font-relative-size = #0
52 \property Voice.Fingering \override #'font-relative-size = #-4
53 \property Voice.Slur \override #'font-relative-size = #-1
54 \property Staff.Accidentals \override #'font-relative-size = #-1
55 \property Voice.Beam \override #'space-function = #grace-beam-space-function
59 \property Voice.NoteHead \revert #'font-relative-size
60 \property Voice.Stem \revert #'font-relative-size
61 \property Voice.Stem \revert #'length
62 \property Voice.Stem \revert #'beamed-lengths
63 \property Voice.Stem \revert #'beamed-minimum-lengths
64 \property Voice.Beam \revert #'font-relative-size
65 \property Voice.TextScript \revert #'font-relative-size
66 \property Voice.Fingering \revert #'font-relative-size
67 \property Voice.Slur \revert #'font-relative-size
68 \property Staff.Accidentals \revert #'font-relative-size
69 \property Voice.Beam \revert #'space-function
70 \property Score.PaperColumn \revert #'space-factor
71 \property Score.PaperColumn \revert #'to-musical-spacing-factor
80 #ifndef FAKE_GRACE /* First run this through cpp. See head les-nereides.ly */
83 \skip 2. \partial 32*24
90 treble = \context Voice=treble \notes\relative c''{
92 \property Voice.NoteColumn \override #'horizontal-shift = #0
93 \outputproperty #(make-type-checker 'text-interface)
94 #'extra-offset = #'(-6 . 2)
95 r2^#'((Large upright) "Allegretto scherzando")
97 \property Voice.Stem \revert #'direction
98 \property Voice.Stem \override #'direction = #1
99 r4 <cis\arpeggio eis a cis> r2
101 r4 <cis\arpeggio fis a cis> r8.
103 % Urg, this lifts us up to staff context
104 \translator Staff=bass
109 % If we don't get back to Voice, this text-checker doesn't work
110 \outputproperty #(make-text-checker "m.d.")
111 #'extra-offset = #'(-3 . -4)
113 % currently, this can't be (small) italic, because in the paperblock
114 % we set italic_magnifictation to get large italics.
115 cis,16^2^"m.d."( <fis8 fis,> <e! e,!>
119 % Urg, this lifts us up to staff context
120 \translator Staff=treble
124 \property Voice.Slur \revert #'direction
125 \property Voice.Slur \override #'direction = #1
126 \property PianoStaff.connectArpeggios = ##t
127 \property Voice.TextSpanner \revert #'type
129 %% Ghostview is ok, but xdvi shows a solid line
130 \property Voice.TextSpanner \override #'line-thickness = #2
131 \property Voice.TextSpanner \override #'dash-period = #0.5
133 \property Voice.TextSpanner \override #'type = #'dotted-line
134 \property Voice.TextSpanner \override #'edge-height = #'(0 . 1.5)
135 %% \property Voice.TextSpanner \override #'edge-text = #'("8 " . "")
136 \property Voice.TextSpanner \override #'edge-text = #'("8 " . " ")
138 % Urg, this lifts us up to staff context
139 \property Staff.centralCPosition = #-13
144 % If we don't get back to Voice, this text-checker doesn't work
145 \outputproperty #(make-text-checker "m.g.")
146 #'extra-offset = #'(-3 . -3)
148 % currently, this can't be (small) italic, because in the paperblock
149 % we set italic_magnifictation to get large italics.
150 cis''''4^"m.g."\arpeggio \spanrequest \start "text" (
154 \property Voice.Stem \revert #'direction
157 % maybe we should fake this and put 5/4 in this bar?
161 \property Grace.Stem \revert #'direction
162 \property Grace.Stem \override #'direction = #0
163 \property Grace.Beam \override #'space-function = #grace-beam-space-function
164 %% urg, dim. during grace dumps core here
165 %% [a16-5( fis dis \spanrequest \stop "text" ]
166 %%[cis'32 a-1 fis-4 dis] [cis a )fis-2]
167 [a16-5( fis dis \spanrequest \stop "text" ]
168 \property Staff.centralCPosition = #-6
170 [cis32 a-1 fis-4 dis] [cis a )fis-2]
178 \property Voice.Stem \revert #'direction
179 \property Voice.Stem \override #'direction = #0
180 %% [a16^5( fis dis \spanrequest \stop "text" ]
181 %% [cis'32 a-1 fis-4 dis] [cis a )fis-2] s s s
182 [a16^5( fis dis \spanrequest \stop "text" ]
183 \property Staff.centralCPosition = #-6
184 [cis32 a^1 fis^4 dis] [cis a )fis-2] s % s s
190 \property Voice.Stem \revert #'direction
191 \property Voice.Stem \override #'direction = #1
194 <a'8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e^" "^1^4^5 r|
195 r<a8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e r|
198 trebleTwo = \context Voice=trebleTwo \notes\relative c''{
199 \property Voice.NoteColumn \override #'horizontal-shift = #1
203 \property Voice.Stem \revert #'direction
204 \property Voice.Stem \override #'direction = #-1
205 <cis'4\arpeggio a fis dis>
211 \property Voice.NoteColumn \override #'force-hshift = #-0.2
216 \property Voice.NoteColumn \revert #'force-hshift
217 [<cis8( e,> <b-3 d,-1> |
218 \property Voice.NoteColumn \override #'force-hshift = #-0.2
219 <)a-2 cis,-1>] cis4. d4
220 \property Voice.NoteColumn \revert #'force-hshift
225 bass = \context Voice=bass \notes\relative c{
227 \property Voice.Slur \override #'beautiful = #5.0
228 \property Voice.Slur \override #'attachment-offset = #'((0 . 3) . (0 . -4))
229 \property Voice.Stem \revert #'direction
230 \property Voice.Slur \override #'direction = #-1
232 r8. e,16-2( [<a8 a,> <b b,>] |
235 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
236 \translator Staff=treble
239 \property Voice.Stem \revert #'direction
240 \property Voice.Stem \override #'direction = #-1
241 \property Voice.Slur \override #'attachment = #'(stem . stem)
242 <)a''4\arpeggio eis cis>
244 \property Voice.Slur \revert #'attachment
245 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
246 \translator Staff=bass
249 \property Voice.Stem \revert #'direction
250 \property Voice.Slur \revert #'y-free
251 \property Voice.Slur \override #'y-free = #0.1
252 \property Voice.Slur \revert #'attachment-offset
253 \property Voice.Slur \override #'attachment-offset = #'((0 . 3) . (0 . 8))
254 r8. cis,,16( <fis8 fis,> <gis gis,>
256 \property Voice.Stem \revert #'length
257 \property Voice.Stem \override #'length = #5
259 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
260 \translator Staff=treble
263 \property Voice.Stem \revert #'length
264 \property Voice.Stem \revert #'direction
265 \property Voice.Stem \override #'direction = #-1
266 <)a'\arpeggio fis cis>
267 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
268 \translator Staff=bass
271 \property Voice.Stem \revert #'direction
274 \property Voice.Slur \revert #'beautiful
275 \property Voice.Slur \revert #'attachment-offset
276 \property Voice.Stem \revert #'direction
277 \property Voice.Stem \override #'direction = #-1
280 \property Voice.Stem \revert #'direction
281 \property Voice.Stem \override #'direction = #0
283 %urg: staff-change: ! on dis
284 <cis''\arpeggio a fis dis!>
290 %\grace { s16 s s s s32 s s s s \clef bass s }
292 \grace { <e,,,32( e,> } <)gis'2 e>
294 s4 s8 s32 s s \clef bass
298 \property Voice.Slur \override #'attachment-offset = #'((-0.5 . 0) . (0.5 . 0))
303 \property Voice.Slur \revert #'attachment-offset
306 \property Voice.Slur \revert #'direction
307 \property Voice.Slur \override #'direction = #1
308 a,8 [e'-5(<)a-2 cis-3>]
309 r b,-5 <e4-3 gis-5 d'>
310 \property Voice.Slur \revert #'direction
311 \property Voice.Slur \override #'direction = #0
315 \property Voice.Slur \revert #'direction
316 \property Voice.Slur \override #'direction = #1
317 [e'(<)a cis>] r b, <e4 gis d'>
318 \property Voice.Slur \revert #'direction
319 \property Voice.Slur \override #'direction = #0
325 bassTwo = \context Voice=bassTwo \notes\relative c{
334 \property Voice.Stem \revert #'direction
335 \property Voice.Stem \override #'direction = #1
336 \property Voice.Slur \revert #'direction
337 \property Voice.Slur \override #'direction = #1
342 middleDynamics = \context Dynamics=middle \notes{
350 \outputproperty #(make-type-checker 'dynamic-interface)
351 #'extra-offset = #'(0 . 1.5)
355 \outputproperty #(make-type-checker 'text-interface)
356 #'extra-offset = #'(0 . 1.5)
360 \outputproperty #(make-type-checker 'dynamic-interface)
361 #'extra-offset = #'(0 . 4)
363 %% s2\mf-"a tempo" s4
366 s16 s32 s64 \> s s8 s \!s8
367 \outputproperty #(make-type-checker 'dynamic-interface)
368 #'extra-offset = #'(-1 . 4)
369 %% s8\mf s4 s4 s8\> s32 s s \!s
370 s8\mf s4 s8 s16 s32 s64 \> s s16 s8 s32 s s s\! s128
373 lowerDynamics = \context Dynamics=lower \notes{
376 s2\sustainDown s8. s16\sustainUp s4
378 s2\sustainDown s8. s16\sustainUp s4
384 s32\sustainDown s s s
390 s32\sustainDown s s s
393 \property Dynamics.pedalSustainStrings = #'("Ped." "*Ped." "")
394 s4 s16. s32\sustainUp
398 \property Dynamics.pedalSustainStrings = #'("Ped." "-P" "*")
399 s s\sustainUp\sustainDown s s
403 \property Dynamics.pedalSustainStrings = #'("Ped." "*Ped." "")
405 \property Dynamics.pedalSustainStrings = #'("Ped." "-P" "*")
406 s s\sustainUp\sustainDown s s
411 \context PianoStaff <
412 \context Staff=treble <
417 \context Dynamics=middle <
421 \context Staff=bass <
427 \context Dynamics=lower <
434 % magnification_italic = 1.
437 TimeSignature \override #'style = #'C
438 SpacingSpanner \override #'maximum-duration-for-spacing = #(make-moment 1 4)
440 \remove Bar_number_engraver
443 \type "Engraver_group_engraver"
445 \consists "Output_property_engraver"
446 Generic_property_list = #generic-voice-properties
447 \consists "Property_engraver"
448 minimumVerticalExtent = #'(-1 . 1)
450 pedalSustainStrings = #'("Ped." "*Ped." "*")
451 pedalUnaCordaStrings = #'("una corda" "" "tre corde")
453 \consists "Piano_pedal_engraver"
454 \consists "Script_engraver"
455 \consists "Dynamic_engraver"
456 \consists "Text_engraver"
458 TextScript \override #'font-relative-size = #1
459 TextScript \override #'font-shape = #'italic
461 \consists "Skip_req_swallow_translator"
463 \consistsend "Axis_group_engraver"
469 VerticalAlignment \override #'forced-distance = #7
473 Stem \override #'flag-style = #""