2 cpp -P -traditional -o l.ly les-nereides.ly
3 cpp -P -traditional -o l-fake.ly -DFAKE_GRACE les-nereides.ly
7 composer = "ARTHUR GRAY";
8 title = "LES N\\'ER\\'EIDES";
9 subtitle = "THE NEREIDS";
11 %piece = "Allegretto scherzando";
12 copyright = "public domain";
13 description = "Nastiest piece of competition at http://www.orphee.com/comparison/study.html, see http://www.orphee.com/comparison/gray.pdf";
14 comment = "LilyPond (1.3.93) can't really do this yet, I guess";
18 %% cpp: don't start on first column
19 #(define (grace-beam-space-function multiplicity)
20 (* (if (<= multiplicity 3) 0.816 0.844) 0.8))
22 %% cpp: don't start on first column
23 #(define (make-text-checker text)
25 ;; huh, string-match undefined?
26 ;; (string-match text (ly-get-elt-property elt 'text))
27 (equal? text (ly-get-elt-property elt 'text))
40 \skip 2.; \partial 32*24;
47 treble = \context Voice=treble \notes\relative c''{
49 \property Voice.NoteColumn \push #'horizontal-shift = #0
50 \outputproperty #(make-type-checker 'text-item-interface)
51 #'extra-offset = #'(-6 . 2)
53 \property Voice.TextScript \push #'style = #"Large"
54 r2^"Allegretto scherzando"
55 \property Voice.TextScript \pop #'style
57 \property Voice.Stem \pop #'direction
58 \property Voice.Stem \push #'direction = #1
59 r4 <cis\arpeggio eis a cis> r2
61 r4 <cis\arpeggio fis a cis> r8.
62 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
63 \translator Staff=bass
66 \outputproperty #(make-text-checker "m.d.")
67 #'extra-offset = #'(-3 . -4)
68 % currently, this can't be (small) italic, because in the paperblock
69 % we set italic_magnifictation to get large italics.
70 cis,16^2^"m.d."( <fis8 fis,> <e! e,!>
73 % Urg, this lifts us up to staff context
74 \translator Staff=treble
77 \property Voice.Slur \pop #'direction
78 \property Voice.Slur \push #'direction = #1
79 \property PianoStaff.connectArpeggios = ##t
80 \property Voice.TextSpanner \pop #'type
82 %% Ghostview is ok, but xdvi shows a solid line
83 \property Voice.TextSpanner \push #'line-thickness = #2
84 \property Voice.TextSpanner \push #'dash-period = #0.5
86 \property Voice.TextSpanner \push #'type = #"dotted-line"
87 \property Voice.TextSpanner \push #'edge-height = #'(0 . 1.5)
88 \property Voice.TextSpanner \push #'edge-text = #'("8 " . "")
89 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
91 % no, see seq-mus-iter --hwn
92 \property Staff."c0-position" = #-13
97 \outputproperty #(make-text-checker "m.g.")
98 #'extra-offset = #'(-3 . -2)
99 % currently, this can't be (small) italic, because in the paperblock
100 % we set italic_magnifictation to get large italics.
101 cis''''4^"m.g."\arpeggio \spanrequest \start "text" (
105 \property Voice.Stem \pop #'direction
108 % maybe we should fake this and put 5/4 in this bar?
112 \property Grace.Stem \pop #'direction
113 \property Grace.Stem \push #'direction = #0
114 \property Grace.Beam \push #'space-function = #grace-beam-space-function
115 %% urg, dim. during grace dumps core here
116 %% [a16-5( fis dis \spanrequest \stop "text" ]
117 %% [cis'32 a-1 fis-4 dis] [cis a )fis-2]
118 [a16-5( fis dis \spanrequest \stop "text" ]
119 \property Staff."c0-position" = #-6
120 [cis32 a-1 fis-4 dis] [cis a )fis-2]
125 \property Score.PaperColumn \push #'space-factor = #0.6
126 \property Score.PaperColumn \push #'to-musical-spacing-factor = #0.04
127 \property Voice.NoteHead \push #'font-relative-size = #-1
128 \property Voice.Stem \push #'font-relative-size = #-1
129 \property Voice.Stem \push #'length = #6
130 \property Voice.Stem \push #'beamed-lengths =
131 #(map (lambda (x) (* 1.25 x)) '(0.0 2.5 2.0 1.5))
132 \property Voice.Stem \push #'beamed-minimum-lengths =
133 #(map (lambda (x) (* 1.25 x)) '(0.0 1.5 1.25 1.0))
135 \property Voice.Beam \push #'font-relative-size = #-1
136 \property Voice.TextScript \push #'font-relative-size = #-1
137 \property Voice.Fingering \push #'font-relative-size = #-1
138 \property Voice.Slur \push #'font-relative-size = #-1
139 \property Staff.Accidentals \push #'font-relative-size = #-1
140 \property Voice.Beam \push #'space-function = #grace-beam-space-function
143 \property Voice.Stem \pop #'direction
144 \property Voice.Stem \push #'direction = #0
145 %% [a16^5( fis dis \spanrequest \stop "text" ]
146 %% [cis'32 a-1 fis-4 dis] [cis a )fis-2] s s s
147 [a16^5( fis dis \spanrequest \stop "text" ]
148 \property Staff."c0-position" = #-6
149 [cis32 a^1 fis^4 dis] [cis a )fis-2] s % s s
151 \property Voice.NoteHead \pop #'font-relative-size
152 \property Voice.Stem \pop #'font-relative-size
153 \property Voice.Stem \pop #'length
154 \property Voice.Stem \pop #'beamed-lengths
155 \property Voice.Stem \pop #'beamed-minimum-lengths
156 \property Voice.Beam \pop #'font-relative-size
157 \property Voice.TextScript \pop #'font-relative-size
158 \property Voice.Fingering \pop #'font-relative-size
159 \property Voice.Slur \pop #'font-relative-size
160 \property Staff.Accidentals \pop #'font-relative-size
161 \property Voice.Beam \pop #'space-function
162 \property Score.PaperColumn \pop #'space-factor
163 \property Score.PaperColumn \pop #'to-musical-spacing-factor
167 \property Voice.Stem \pop #'direction
168 \property Voice.Stem \push #'direction = #1
171 <a'8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e^" "^1^4^5 r|
172 r<a8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e r|
175 trebleTwo = \context Voice=trebleTwo \notes\relative c''{
176 \property Voice.NoteColumn \push #'horizontal-shift = #1
180 \property Voice.Stem \pop #'direction
181 \property Voice.Stem \push #'direction = #-1
182 <cis'4\arpeggio a fis dis>
188 \property Voice.NoteColumn \push #'force-hshift = #-0.2
193 \property Voice.NoteColumn \pop #'force-hshift
194 [<cis8( e,> <b-3 d,-1> |
195 \property Voice.NoteColumn \push #'force-hshift = #-0.2
196 <)a-2 cis,-1>] cis4. d4
197 \property Voice.NoteColumn \pop #'force-hshift
202 bass = \context Voice=bass \notes\relative c{
204 \property Voice.Slur \push #'beautiful = #5.0
205 \property Voice.Slur \push #'attachment-offset = #'((0 . -3) . (0 . -6))
206 \property Voice.Stem \pop #'direction
207 \property Voice.Slur \push #'direction = #-1
209 r8. e,16-2( [<a8 a,> <b b,>] <cis4 cis,> |
211 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
212 \translator Staff=treble
215 \property Voice.Stem \pop #'direction
216 \property Voice.Stem \push #'direction = #-1
217 \property Voice.slurEndAttachment = #'stem
218 <)a''4\arpeggio eis cis>
220 \property Voice.slurEndAttachment = ##f
221 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
222 \translator Staff=bass
225 \property Voice.Stem \pop #'direction
226 \property Voice.Slur \pop #'y-free
227 \property Voice.Slur \push #'y-free = #0.1
228 \property Voice.Slur \pop #'attachment-offset
229 \property Voice.Slur \push #'attachment-offset = #'((0 . -3) . (0 . -8))
230 r8. cis,,16( <fis8 fis,> <gis gis,>
232 \property Voice.Stem \pop #'length
233 \property Voice.Stem \push #'length = #5
235 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
236 \translator Staff=treble
239 \property Voice.Stem \pop #'length
240 \property Voice.Stem \pop #'direction
241 \property Voice.Stem \push #'direction = #-1
242 <)a'\arpeggio fis cis>
243 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
244 \translator Staff=bass
247 \property Voice.Stem \pop #'direction
250 \property Voice.Slur \pop #'beautiful
251 \property Voice.Slur \pop #'attachment-offset
252 \property Voice.Stem \pop #'direction
253 \property Voice.Stem \push #'direction = #-1
256 \property Voice.Stem \pop #'direction
257 \property Voice.Stem \push #'direction = #0
259 %urg: staff-change: ! on dis
260 <cis''\arpeggio a fis dis!>
266 %\grace { s16 s s s s32 s s s s \clef bass; s }
268 \grace { <e,,,32( e,> } <)gis'2 e>
270 s4 s8 s32 s s \clef bass;
271 \property Score.PaperColumn \push #'space-factor = #0.6
272 \property Score.PaperColumn \push #'to-musical-spacing-factor = #0.1
273 \property Voice.NoteHead \push #'font-relative-size = #-1
274 \property Voice.Stem \push #'font-relative-size = #-1
275 \property Voice.Stem \push #'length = #6
276 \property Voice.Slur \push #'font-relative-size = #-1
277 \property Voice.Slur \push #'attachment-offset = #'((-0.5 . 0) . (0.5 . 0))
280 \property Voice.NoteHead \pop #'font-relative-size
281 \property Voice.Stem \pop #'font-relative-size
282 \property Voice.Stem \pop #'length
283 \property Voice.Slur \pop #'font-relative-size
284 \property Score.PaperColumn \pop #'space-factor
285 \property Score.PaperColumn \pop #'to-musical-spacing-factor
287 \property Voice.Slur \pop #'attachment-offset
290 \property Voice.Slur \pop #'direction
291 \property Voice.Slur \push #'direction = #1
292 a,8 [e'-5(<)a-2 cis-3>]
293 r b,-5 <e4-3 gis-5 d'>
294 \property Voice.Slur \pop #'direction
295 \property Voice.Slur \push #'direction = #0
299 \property Voice.Slur \pop #'direction
300 \property Voice.Slur \push #'direction = #1
301 [e'(<)a cis>] r b, <e4 gis d'>
302 \property Voice.Slur \pop #'direction
303 \property Voice.Slur \push #'direction = #0
309 bassTwo = \context Voice=bassTwo \notes\relative c{
318 \property Voice.Stem \pop #'direction
319 \property Voice.Stem \push #'direction = #1
320 \property Voice.Slur \pop #'direction
321 \property Voice.Slur \push #'direction = #1
326 middleDynamics = \context Dynamics=middle \notes{
334 \outputproperty #(make-type-checker 'dynamic-interface)
335 #'extra-offset = #'(0 . 1.5)
339 \outputproperty #(make-type-checker 'text-item-interface)
340 #'extra-offset = #'(0 . 1.5)
344 \outputproperty #(make-type-checker 'dynamic-interface)
345 #'extra-offset = #'(0 . 4)
348 \outputproperty #(make-type-checker 'crescendo-interface)
349 #'extra-offset = #'(0.5 . -1)
351 \outputproperty #(make-type-checker 'dynamic-interface)
352 #'extra-offset = #'(-1 . 4)
353 s8\mf s4 s4 s8\> s32 s s \!s
356 lowerDynamics = \context Dynamics=lower \notes{
359 s2\sustaindown s8. s16\sustainup s4
361 s2\sustaindown s8. s16\sustainup s4
367 s32\sustaindown s s s
373 s32\sustaindown s s s
376 \property Dynamics.stopSustain = #""
377 s4 s16. s32\sustainup
381 \property Dynamics.stopSustain = #"*"
382 \property Dynamics.stopStartSustain = #"-P"
383 s s\sustainup\sustaindown s s
387 \property Dynamics.stopStartSustain = #""
389 \property Dynamics.stopStartSustain = #"-P"
390 s s\sustainup\sustaindown s s
395 \context PianoStaff <
396 \context Staff=treble <
401 \context Dynamics=middle <
405 \context Staff=bass <
411 \context Dynamics=lower <
418 magnification_italic = 1.;
421 TimeSignature \push #'style = #"C"
422 SpacingSpanner \push #'maximum-duration-for-spacing = #(make-moment 1 4)
424 \remove Bar_number_engraver;
427 \type "Engraver_group_engraver";
429 \consists "Output_property_engraver";
430 Generic_property_list = #generic-voice-properties
431 \consists "Property_engraver";
432 DynamicsMinimumVerticalExtent = #(cons -3 -3)
433 VerticalAlignment \push #'threshold = #'(9 . 9)
435 startSustain = #"Ped."
437 stopStartSustain = #"*Ped."
438 startUnaChorda = #"una chorda"
439 stopUnaChorda = #"tre chorde"
441 \consists "Piano_pedal_engraver";
442 \consists "Script_engraver";
443 \consists "Dynamic_engraver";
444 \consists "Text_engraver";
445 %GURGURGU, text is initialised using TextScript
446 TextScript \push #'style = #"italic"
447 %%% TextScript \push #'font-relative-size = #2
449 \consists "Skip_req_swallow_translator";
451 \consistsend "Axis_group_engraver";
457 VerticalAlignment \push #'threshold = #'(7 . 7)
461 Stem \push #'flag-style = #""