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 = "Natiest 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))
31 \skip 2.; \partial 32*24;
38 treble = \context Voice=treble \notes\relative c''{
40 \property Voice.NoteColumn \push #'horizontal-shift = #0
41 \outputproperty #(make-type-checker 'text-item-interface)
42 #'extra-offset = #'(-6 . 2)
43 r2^"Allegretto scherzando"
45 \property Voice.Stem \pop #'direction
46 \property Voice.Stem \push #'direction = #1
47 r4 <cis\arpeggio eis a cis> r2
49 r4 <cis\arpeggio fis a cis> r8.
50 \translator Staff=bass
51 cis,16^2^"m.d."( <fis8 fis,> <e! e,!>
54 \translator Staff=treble
55 \property Voice.Slur \pop #'direction
56 \property Voice.Slur \push #'direction = #1
57 \property PianoStaff.connectArpeggios = ##t
58 \property Voice.TextSpanner \pop #'type
59 \property Voice.TextSpanner \push #'type = #"dotted-line"
60 \property Voice.TextSpanner \push #'edge-height = #'(0 . 1.5)
61 \property Voice.TextSpanner \push #'edge-text = #'("8va " . "")
62 \property Staff."c0-position" = #-13
63 cis''''4^"m.g."\arpeggio \spanrequest \start "text" (
67 \property Voice.Stem \pop #'direction
70 % maybe we should fake this and put 5/4 in this bar?
74 \property Grace.Stem \pop #'direction
75 \property Grace.Stem \push #'direction = #0
76 \property Grace.Beam \push #'space-function = #grace-beam-space-function
77 %% urg, dim. during grace dumps core here
78 %% [a16-5( fis dis \spanrequest \stop "text" ]
79 %% [cis'32 a-1 fis-4 dis] [cis a )fis-2]
80 [a16-5( fis dis \spanrequest \stop "text" ]
81 \property Staff."c0-position" = #-6
82 [cis32 a-1 fis-4 dis] [cis a )fis-2]
87 \property Voice.NoteHead \push #'font-size = #-1
88 \property Voice.Stem \push #'font-size = #-1
89 \property Voice.Beam \push #'font-size = #-1
90 \property Voice.TextScript \push #'font-size = #-1
91 \property Voice.Slur \push #'font-size = #-1
92 \property Voice.LocalKey \push #'font-size = #-1
93 \property Voice.Beam \push #'space-function = #grace-beam-space-function
96 \property Voice.Stem \pop #'direction
97 \property Voice.Stem \push #'direction = #0
98 %% [a16^5( fis dis \spanrequest \stop "text" ]
99 %% [cis'32 a-1 fis-4 dis] [cis a )fis-2] s s s
100 [a16^5( fis dis \spanrequest \stop "text" ]
101 \property Staff."c0-position" = #-6
102 [cis32 a^1 fis^4 dis] [cis a )fis-2] s % s s
104 \property Voice.NoteHead \pop #'font-size
105 \property Voice.Stem \pop #'font-size
106 \property Voice.Beam \pop #'font-size
107 \property Voice.TextScript \pop #'font-size
108 \property Voice.Slur \pop #'font-size
109 \property Voice.LocalKey \pop #'font-size
110 \property Voice.Beam \pop #'space-function
115 \property Voice.Stem \pop #'direction
116 \property Voice.Stem \push #'direction = #1
119 <a'8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e^" "^1^4^5 r|
120 r<a8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e r|
123 trebleTwo = \context Voice=trebleTwo \notes\relative c''{
125 \property Voice.NoteColumn \push #'horizontal-shift = #1
129 \property Voice.Stem \pop #'direction
130 \property Voice.Stem \push #'direction = #-1
131 <cis4\arpeggio a fis dis>
137 \property Voice.NoteColumn \push #'force-hshift = #-0.2
139 %r8 cis4. d4 [<cis8-5-4( e,-1> <b-3 d,-1> |
141 \property Voice.NoteColumn \pop #'force-hshift
142 [<cis8( e,> <b-3 d,-1> |
143 \property Voice.NoteColumn \push #'force-hshift = #-0.2
144 <)a-2 cis,-1>] cis4. d4
145 \property Voice.NoteColumn \pop #'force-hshift
150 bass = \context Voice=bass \notes\relative c{
151 \property Voice.Slur \pop #'details
152 \property Voice.Slur \push #'details =
153 % #'((height-limit . 2.0) (ratio . 0.333) (force-blowfit . 0.5) (beautiful . 1.0))
154 #'((height-limit . 6.0) (ratio . 0.333) (force-blowfit . 1.0) (beautiful . 0.1))
155 \property Voice.Slur \pop #'de-uglify-parameters
156 \property Voice.Slur \push #'de-uglify-parameters =
159 \property Voice.Stem \pop #'direction
160 \property Voice.Slur \push #'direction = #-1
162 r8. e,16-2( [<a8 a,> <b b,>] <cis4 cis,> |
164 \translator Staff=treble
165 \property Voice.Stem \pop #'direction
166 \property Voice.Stem \push #'direction = #-1
167 \property Voice.slurEndAttachment = #'stem
168 <)a''4\arpeggio eis cis>
170 \property Voice.slurEndAttachment = ##f
171 \translator Staff=bass
172 \property Voice.Stem \pop #'direction
173 \property Voice.Slur \pop #'y-free
174 \property Voice.Slur \push #'y-free = #0.1
175 r8. cis,,16( <fis8 fis,> <gis gis,>
177 \property Voice.Stem \pop #'length
178 \property Voice.Stem \push #'length = #5
180 \translator Staff=treble
181 \property Voice.Stem \pop #'length
182 \property Voice.Stem \pop #'direction
183 \property Voice.Stem \push #'direction = #-1
184 <)a'\arpeggio fis cis>
185 \translator Staff=bass
186 \property Voice.Stem \pop #'direction
189 \property Voice.Slur \pop #'details
190 \property Voice.Slur \push #'details =
191 #'((height-limit . 2.0) (ratio . 0.333) (force-blowfit . 0.5) (beautiful . 0.5))
192 \property Voice.Stem \pop #'direction
193 \property Voice.Stem \push #'direction = #-1
196 \property Voice.Stem \pop #'direction
197 \property Voice.Stem \push #'direction = #0
199 %urg: staff-change: ! on dis
200 <cis''\arpeggio a fis dis!>
206 %\grace { s16 s s s s32 s s s s \clef bass; s }
209 s4 s8 s32 s s \clef bass; s
212 \grace { <e,,,32( e,> } <)gis'2 e>
214 \property Voice.Slur \pop #'direction
215 \property Voice.Slur \push #'direction = #1
216 a,8 [e'-5(<)a-2 cis-3>]
217 r b,-5 <e4-3 gis-5 d'>
218 \property Voice.Slur \pop #'direction
219 \property Voice.Slur \push #'direction = #0
223 \property Voice.Slur \pop #'direction
224 \property Voice.Slur \push #'direction = #1
225 [e'(<)a cis>] r b, <e4 gis d'>
226 \property Voice.Slur \pop #'direction
227 \property Voice.Slur \push #'direction = #0
233 bassTwo = \context Voice=bassTwo \notes\relative c{
242 \property Voice.Stem \pop #'direction
243 \property Voice.Stem \push #'direction = #1
244 \property Voice.Slur \pop #'direction
245 \property Voice.Slur \push #'direction = #1
250 middleDynamics = \context Dynamics=middle \notes{
258 \outputproperty #(make-type-checker 'dynamic-interface)
259 #'extra-offset = #'(0 . 1.5)
263 \outputproperty #(make-type-checker 'text-item-interface)
264 #'extra-offset = #'(0 . 1.5)
268 \outputproperty #(make-type-checker 'dynamic-interface)
269 #'extra-offset = #'(0 . 3.5)
272 \outputproperty #(make-type-checker 'dynamic-interface)
273 #'extra-offset = #'(-1 . 3.5)
274 s8\mf s4 s4 s8\> s32 s s \!s
277 lowerDynamics = \context Dynamics=lower \notes{
280 s2\sustaindown s8. s16\sustainup s4
282 s2\sustaindown s8. s16\sustainup s4
288 s32\sustaindown s s s
294 s32\sustaindown s s s
297 \property Dynamics.stopSustain = #""
298 s4 s16. s32\sustainup
302 \property Dynamics.stopSustain = #"*"
303 \property Dynamics.stopStartSustain = #"-P"
304 s s\sustainup\sustaindown s s
308 \property Dynamics.stopStartSustain = #""
310 \property Dynamics.stopStartSustain = #"-P"
311 s s\sustainup\sustaindown s s
316 \context PianoStaff <
317 \context Staff=treble <
322 \context Dynamics=middle <
326 \context Staff=bass <
332 \context Dynamics=lower <
340 TimeSignature \push #'style = #"C"
343 \type "Engraver_group_engraver";
345 \consists "Output_property_engraver";
346 Generic_property_list = #generic-voice-properties
347 %Generic_property_list = #generic-lyrics-properties
348 \consists "Property_engraver";
349 DynamicsMinimumVerticalExtent = #(cons -3 -3)
350 %VerticalAlignment \push #'threshold = #'(8 . 8)
351 %VerticalAlignment \push #'threshold = #'(10 . 10)
352 VerticalAlignment \push #'threshold = #'(9 . 9)
354 startSustain = #"Ped."
356 stopStartSustain = #"*Ped."
357 startUnaChorda = #"una chorda"
358 stopUnaChorda = #"tre chorde"
359 % should make separate lists for stopsustain and startsustain
361 \consists "Piano_pedal_engraver";
362 \consists "Script_engraver";
363 \consists "Dynamic_engraver";
364 \consists "Text_engraver";
365 %GURGURGU, text is initialised using TextScript
366 TextScript \push #'style = #"italic"
367 TextScript \push #'font-size = #2
369 \consists "Skip_req_swallow_translator";
371 \consistsend "Axis_group_engraver";
376 %TextScript \push #'style = #"italic"
377 %TextScript \push #'font-size = #3
378 TextScript \push #'size = #"Large"
379 TextScript \push #'font-size = #"Large"
384 %VerticalAlignment \push #'threshold = #'(8 . 8)
385 %VerticalAlignment \push #'threshold = #'(6 . 6)
386 VerticalAlignment \push #'threshold = #'(7 . 7)
390 Stem \push #'flag-style = #""