3 You should preprocess this file with the C preprocessor. The one with
8 cpp -P -traditional -o l.ly les-nereides.ly
12 cpp -P -traditional -o l-fake.ly -DFAKE_GRACE les-nereides.ly
19 composer = "ARTHUR GRAY";
20 title = "LES N\\'ER\\'EIDES";
21 subtitle = "THE NEREIDS";
23 %piece = "Allegretto scherzando";
24 copyright = "public domain";
25 description = "Nastiest piece of competition at http://www.orphee.com/comparison/study.html, see http://www.orphee.com/comparison/gray.pdf";
26 comment = "LilyPond (1.3.93) can't really do this yet, I guess";
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)
37 ;; huh, string-match undefined?
38 ;; (string-match text (ly-get-grob-property elt 'text))
39 (equal? text (ly-get-grob-property elt 'text))
49 #ifndef FAKE_GRACE /* First run this through cpp. See head les-nereides.ly */
52 \skip 2.; \partial 32*24;
59 treble = \context Voice=treble \notes\relative c''{
61 \property Voice.NoteColumn \override #'horizontal-shift = #0
62 \outputproperty #(make-type-checker 'text-item-interface)
63 #'extra-offset = #'(-6 . 2)
65 \property Voice.TextScript \override #'style = #"Large"
66 r2^"Allegretto scherzando"
67 \property Voice.TextScript \revert #'style
69 \property Voice.Stem \revert #'direction
70 \property Voice.Stem \override #'direction = #1
71 r4 <cis\arpeggio eis a cis> r2
73 r4 <cis\arpeggio fis a cis> r8.
74 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
75 \translator Staff=bass
78 \outputproperty #(make-text-checker "m.d.")
79 #'extra-offset = #'(-3 . -4)
80 % currently, this can't be (small) italic, because in the paperblock
81 % we set italic_magnifictation to get large italics.
82 cis,16^2^"m.d."( <fis8 fis,> <e! e,!>
85 % Urg, this lifts us up to staff context
86 \translator Staff=treble
89 \property Voice.Slur \revert #'direction
90 \property Voice.Slur \override #'direction = #1
91 \property PianoStaff.connectArpeggios = ##t
92 \property Voice.TextSpanner \revert #'type
94 %% Ghostview is ok, but xdvi shows a solid line
95 \property Voice.TextSpanner \override #'line-thickness = #2
96 \property Voice.TextSpanner \override #'dash-period = #0.5
98 \property Voice.TextSpanner \override #'type = #"dotted-line"
99 \property Voice.TextSpanner \override #'edge-height = #'(0 . 1.5)
100 \property Voice.TextSpanner \override #'edge-text = #'("8 " . "")
101 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
103 % no, see seq-mus-iter --hwn
104 \property Staff."c0-position" = #-13
109 \outputproperty #(make-text-checker "m.g.")
110 #'extra-offset = #'(-3 . -2)
111 % currently, this can't be (small) italic, because in the paperblock
112 % we set italic_magnifictation to get large italics.
113 cis''''4^"m.g."\arpeggio \spanrequest \start "text" (
117 \property Voice.Stem \revert #'direction
120 % maybe we should fake this and put 5/4 in this bar?
124 \property Grace.Stem \revert #'direction
125 \property Grace.Stem \override #'direction = #0
126 \property Grace.Beam \override #'space-function = #grace-beam-space-function
127 %% urg, dim. during grace dumps core here
128 %% [a16-5( fis dis \spanrequest \stop "text" ]
129 %% [cis'32 a-1 fis-4 dis] [cis a )fis-2]
130 [a16-5( fis dis \spanrequest \stop "text" ]
131 \property Staff."c0-position" = #-6
132 [cis32 a-1 fis-4 dis] [cis a )fis-2]
137 \property Score.PaperColumn \override #'space-factor = #0.6
138 \property Score.PaperColumn \override #'to-musical-spacing-factor = #0.04
139 \property Voice.NoteHead \override #'font-relative-size = #-1
140 \property Voice.Stem \override #'font-relative-size = #-1
141 \property Voice.Stem \override #'length = #6
142 \property Voice.Stem \override #'beamed-lengths =
143 #(map (lambda (x) (* 1.25 x)) '(0.0 2.5 2.0 1.5))
144 \property Voice.Stem \override #'beamed-minimum-lengths =
145 #(map (lambda (x) (* 1.25 x)) '(0.0 1.5 1.25 1.0))
147 \property Voice.Beam \override #'font-relative-size = #-1
148 \property Voice.TextScript \override #'font-relative-size = #-1
149 \property Voice.Fingering \override #'font-relative-size = #-1
150 \property Voice.Slur \override #'font-relative-size = #-1
151 \property Staff.Accidentals \override #'font-relative-size = #-1
152 \property Voice.Beam \override #'space-function = #grace-beam-space-function
155 \property Voice.Stem \revert #'direction
156 \property Voice.Stem \override #'direction = #0
157 %% [a16^5( fis dis \spanrequest \stop "text" ]
158 %% [cis'32 a-1 fis-4 dis] [cis a )fis-2] s s s
159 [a16^5( fis dis \spanrequest \stop "text" ]
160 \property Staff."c0-position" = #-6
161 [cis32 a^1 fis^4 dis] [cis a )fis-2] s % s s
163 \property Voice.NoteHead \revert #'font-relative-size
164 \property Voice.Stem \revert #'font-relative-size
165 \property Voice.Stem \revert #'length
166 \property Voice.Stem \revert #'beamed-lengths
167 \property Voice.Stem \revert #'beamed-minimum-lengths
168 \property Voice.Beam \revert #'font-relative-size
169 \property Voice.TextScript \revert #'font-relative-size
170 \property Voice.Fingering \revert #'font-relative-size
171 \property Voice.Slur \revert #'font-relative-size
172 \property Staff.Accidentals \revert #'font-relative-size
173 \property Voice.Beam \revert #'space-function
174 \property Score.PaperColumn \revert #'space-factor
175 \property Score.PaperColumn \revert #'to-musical-spacing-factor
179 \property Voice.Stem \revert #'direction
180 \property Voice.Stem \override #'direction = #1
183 <a'8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e^" "^1^4^5 r|
184 r<a8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e r|
187 trebleTwo = \context Voice=trebleTwo \notes\relative c''{
188 \property Voice.NoteColumn \override #'horizontal-shift = #1
192 \property Voice.Stem \revert #'direction
193 \property Voice.Stem \override #'direction = #-1
194 <cis'4\arpeggio a fis dis>
200 \property Voice.NoteColumn \override #'force-hshift = #-0.2
205 \property Voice.NoteColumn \revert #'force-hshift
206 [<cis8( e,> <b-3 d,-1> |
207 \property Voice.NoteColumn \override #'force-hshift = #-0.2
208 <)a-2 cis,-1>] cis4. d4
209 \property Voice.NoteColumn \revert #'force-hshift
214 bass = \context Voice=bass \notes\relative c{
216 \property Voice.Slur \override #'beautiful = #5.0
217 \property Voice.Slur \override #'attachment-offset = #'((0 . -3) . (0 . -6))
218 \property Voice.Stem \revert #'direction
219 \property Voice.Slur \override #'direction = #-1
221 r8. e,16-2( [<a8 a,> <b b,>] <cis4 cis,> |
223 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
224 \translator Staff=treble
227 \property Voice.Stem \revert #'direction
228 \property Voice.Stem \override #'direction = #-1
229 \property Voice.slurEndAttachment = #'stem
230 <)a''4\arpeggio eis cis>
232 \property Voice.slurEndAttachment = ##f
233 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
234 \translator Staff=bass
237 \property Voice.Stem \revert #'direction
238 \property Voice.Slur \revert #'y-free
239 \property Voice.Slur \override #'y-free = #0.1
240 \property Voice.Slur \revert #'attachment-offset
241 \property Voice.Slur \override #'attachment-offset = #'((0 . -3) . (0 . -8))
242 r8. cis,,16( <fis8 fis,> <gis gis,>
244 \property Voice.Stem \revert #'length
245 \property Voice.Stem \override #'length = #5
247 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
248 \translator Staff=treble
251 \property Voice.Stem \revert #'length
252 \property Voice.Stem \revert #'direction
253 \property Voice.Stem \override #'direction = #-1
254 <)a'\arpeggio fis cis>
255 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
256 \translator Staff=bass
259 \property Voice.Stem \revert #'direction
262 \property Voice.Slur \revert #'beautiful
263 \property Voice.Slur \revert #'attachment-offset
264 \property Voice.Stem \revert #'direction
265 \property Voice.Stem \override #'direction = #-1
268 \property Voice.Stem \revert #'direction
269 \property Voice.Stem \override #'direction = #0
271 %urg: staff-change: ! on dis
272 <cis''\arpeggio a fis dis!>
278 %\grace { s16 s s s s32 s s s s \clef bass; s }
280 \grace { <e,,,32( e,> } <)gis'2 e>
282 s4 s8 s32 s s \clef bass;
283 \property Score.PaperColumn \override #'space-factor = #0.6
284 \property Score.PaperColumn \override #'to-musical-spacing-factor = #0.1
285 \property Voice.NoteHead \override #'font-relative-size = #-1
286 \property Voice.Stem \override #'font-relative-size = #-1
287 \property Voice.Stem \override #'length = #6
288 \property Voice.Slur \override #'font-relative-size = #-1
289 \property Voice.Slur \override #'attachment-offset = #'((-0.5 . 0) . (0.5 . 0))
292 \property Voice.NoteHead \revert #'font-relative-size
293 \property Voice.Stem \revert #'font-relative-size
294 \property Voice.Stem \revert #'length
295 \property Voice.Slur \revert #'font-relative-size
296 \property Score.PaperColumn \revert #'space-factor
297 \property Score.PaperColumn \revert #'to-musical-spacing-factor
299 \property Voice.Slur \revert #'attachment-offset
302 \property Voice.Slur \revert #'direction
303 \property Voice.Slur \override #'direction = #1
304 a,8 [e'-5(<)a-2 cis-3>]
305 r b,-5 <e4-3 gis-5 d'>
306 \property Voice.Slur \revert #'direction
307 \property Voice.Slur \override #'direction = #0
311 \property Voice.Slur \revert #'direction
312 \property Voice.Slur \override #'direction = #1
313 [e'(<)a cis>] r b, <e4 gis d'>
314 \property Voice.Slur \revert #'direction
315 \property Voice.Slur \override #'direction = #0
321 bassTwo = \context Voice=bassTwo \notes\relative c{
330 \property Voice.Stem \revert #'direction
331 \property Voice.Stem \override #'direction = #1
332 \property Voice.Slur \revert #'direction
333 \property Voice.Slur \override #'direction = #1
338 middleDynamics = \context Dynamics=middle \notes{
346 \outputproperty #(make-type-checker 'dynamic-interface)
347 #'extra-offset = #'(0 . 1.5)
351 \outputproperty #(make-type-checker 'text-item-interface)
352 #'extra-offset = #'(0 . 1.5)
356 \outputproperty #(make-type-checker 'dynamic-interface)
357 #'extra-offset = #'(0 . 4)
360 \outputproperty #(make-type-checker 'crescendo-interface)
361 #'extra-offset = #'(0.5 . -1)
363 \outputproperty #(make-type-checker 'dynamic-interface)
364 #'extra-offset = #'(-1 . 4)
365 s8\mf s4 s4 s8\> s32 s s \!s
368 lowerDynamics = \context Dynamics=lower \notes{
371 s2\sustainDown s8. s16\sustainUp s4
373 s2\sustainDown s8. s16\sustainUp s4
379 s32\sustainDown s s s
385 s32\sustainDown s s s
388 \property Dynamics.stopSustain = #""
389 s4 s16. s32\sustainUp
393 \property Dynamics.stopSustain = #"*"
394 \property Dynamics.stopStartSustain = #"-P"
395 s s\sustainUp\sustainDown s s
399 \property Dynamics.stopStartSustain = #""
401 \property Dynamics.stopStartSustain = #"-P"
402 s s\sustainUp\sustainDown s s
407 \context PianoStaff <
408 \context Staff=treble <
413 \context Dynamics=middle <
417 \context Staff=bass <
423 \context Dynamics=lower <
430 magnification_italic = 1.;
433 TimeSignature \override #'style = #'C
434 SpacingSpanner \override #'maximum-duration-for-spacing = #(make-moment 1 4)
436 \remove Bar_number_engraver;
439 \type "Engraver_group_engraver";
441 \consists "Output_property_engraver";
442 Generic_property_list = #generic-voice-properties
443 \consists "Property_engraver";
444 DynamicsMinimumVerticalExtent = #(cons -3 -3)
445 VerticalAlignment \override #'threshold = #'(9 . 9)
447 startSustain = #"Ped."
449 stopStartSustain = #"*Ped."
450 startUnaChorda = #"una chorda"
451 stopUnaChorda = #"tre chorde"
453 \consists "Piano_pedal_engraver";
454 \consists "Script_engraver";
455 \consists "Dynamic_engraver";
456 \consists "Text_engraver";
457 %GURGURGU, text is initialised using TextScript
458 TextScript \override #'style = #"italic"
459 %%% TextScript \override #'font-relative-size = #2
461 \consists "Skip_req_swallow_translator";
463 \consistsend "Axis_group_engraver";
469 VerticalAlignment \override #'threshold = #'(7 . 7)
473 Stem \override #'flag-style = #""