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))
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???
90 \property Staff."c0-position" = #-13
93 \outputproperty #(make-text-checker "m.g.")
94 #'extra-offset = #'(-3 . -2)
95 % currently, this can't be (small) italic, because in the paperblock
96 % we set italic_magnifictation to get large italics.
97 cis''''4^"m.g."\arpeggio \spanrequest \start "text" (
101 \property Voice.Stem \pop #'direction
104 % maybe we should fake this and put 5/4 in this bar?
108 \property Grace.Stem \pop #'direction
109 \property Grace.Stem \push #'direction = #0
110 \property Grace.Beam \push #'space-function = #grace-beam-space-function
111 %% urg, dim. during grace dumps core here
112 %% [a16-5( fis dis \spanrequest \stop "text" ]
113 %% [cis'32 a-1 fis-4 dis] [cis a )fis-2]
114 [a16-5( fis dis \spanrequest \stop "text" ]
115 \property Staff."c0-position" = #-6
116 [cis32 a-1 fis-4 dis] [cis a )fis-2]
121 \property Score.PaperColumn \push #'space-factor = #0.6
122 \property Score.PaperColumn \push #'to-musical-spacing-factor = #0.04
123 \property Voice.NoteHead \push #'font-relative-size = #-1
124 \property Voice.Stem \push #'font-relative-size = #-1
125 \property Voice.Stem \push #'length = #6
126 \property Voice.Stem \push #'beamed-lengths =
127 #(map (lambda (x) (* 1.25 x)) '(0.0 2.5 2.0 1.5))
128 \property Voice.Stem \push #'beamed-minimum-lengths =
129 #(map (lambda (x) (* 1.25 x)) '(0.0 1.5 1.25 1.0))
131 \property Voice.Beam \push #'font-relative-size = #-1
132 \property Voice.TextScript \push #'font-relative-size = #-1
133 \property Voice.Fingering \push #'font-relative-size = #-1
134 \property Voice.Slur \push #'font-relative-size = #-1
135 \property Staff.Accidentals \push #'font-relative-size = #-1
136 \property Voice.Beam \push #'space-function = #grace-beam-space-function
139 \property Voice.Stem \pop #'direction
140 \property Voice.Stem \push #'direction = #0
141 %% [a16^5( fis dis \spanrequest \stop "text" ]
142 %% [cis'32 a-1 fis-4 dis] [cis a )fis-2] s s s
143 [a16^5( fis dis \spanrequest \stop "text" ]
144 \property Staff."c0-position" = #-6
145 [cis32 a^1 fis^4 dis] [cis a )fis-2] s % s s
147 \property Voice.NoteHead \pop #'font-relative-size
148 \property Voice.Stem \pop #'font-relative-size
149 \property Voice.Stem \pop #'length
150 \property Voice.Stem \pop #'beamed-lengths
151 \property Voice.Stem \pop #'beamed-minimum-lengths
152 \property Voice.Beam \pop #'font-relative-size
153 \property Voice.TextScript \pop #'font-relative-size
154 \property Voice.Fingering \pop #'font-relative-size
155 \property Voice.Slur \pop #'font-relative-size
156 \property Staff.Accidentals \pop #'font-relative-size
157 \property Voice.Beam \pop #'space-function
158 \property Score.PaperColumn \pop #'space-factor
159 \property Score.PaperColumn \pop #'to-musical-spacing-factor
163 \property Voice.Stem \pop #'direction
164 \property Voice.Stem \push #'direction = #1
167 <a'8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e^" "^1^4^5 r|
168 r<a8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e r|
171 trebleTwo = \context Voice=trebleTwo \notes\relative c''{
172 \property Voice.NoteColumn \push #'horizontal-shift = #1
176 \property Voice.Stem \pop #'direction
177 \property Voice.Stem \push #'direction = #-1
178 <cis'4\arpeggio a fis dis>
184 \property Voice.NoteColumn \push #'force-hshift = #-0.2
189 \property Voice.NoteColumn \pop #'force-hshift
190 [<cis8( e,> <b-3 d,-1> |
191 \property Voice.NoteColumn \push #'force-hshift = #-0.2
192 <)a-2 cis,-1>] cis4. d4
193 \property Voice.NoteColumn \pop #'force-hshift
198 bass = \context Voice=bass \notes\relative c{
200 \property Voice.Slur \push #'beautiful = #5.0
201 \property Voice.Slur \push #'attachment-offset = #'((0 . -3) . (0 . -6))
202 \property Voice.Stem \pop #'direction
203 \property Voice.Slur \push #'direction = #-1
205 r8. e,16-2( [<a8 a,> <b b,>] <cis4 cis,> |
207 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
208 \translator Staff=treble
211 \property Voice.Stem \pop #'direction
212 \property Voice.Stem \push #'direction = #-1
213 \property Voice.slurEndAttachment = #'stem
214 <)a''4\arpeggio eis cis>
216 \property Voice.slurEndAttachment = ##f
217 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
218 \translator Staff=bass
221 \property Voice.Stem \pop #'direction
222 \property Voice.Slur \pop #'y-free
223 \property Voice.Slur \push #'y-free = #0.1
224 \property Voice.Slur \pop #'attachment-offset
225 \property Voice.Slur \push #'attachment-offset = #'((0 . -3) . (0 . -8))
226 r8. cis,,16( <fis8 fis,> <gis gis,>
228 \property Voice.Stem \pop #'length
229 \property Voice.Stem \push #'length = #5
231 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
232 \translator Staff=treble
235 \property Voice.Stem \pop #'length
236 \property Voice.Stem \pop #'direction
237 \property Voice.Stem \push #'direction = #-1
238 <)a'\arpeggio fis cis>
239 % Huh, urg? Implicit \context Staff lifts us up to Staff context???
240 \translator Staff=bass
243 \property Voice.Stem \pop #'direction
246 \property Voice.Slur \pop #'beautiful
247 \property Voice.Slur \pop #'attachment-offset
248 \property Voice.Stem \pop #'direction
249 \property Voice.Stem \push #'direction = #-1
252 \property Voice.Stem \pop #'direction
253 \property Voice.Stem \push #'direction = #0
255 %urg: staff-change: ! on dis
256 <cis''\arpeggio a fis dis!>
262 %\grace { s16 s s s s32 s s s s \clef bass; s }
264 \grace { <e,,,32( e,> } <)gis'2 e>
266 s4 s8 s32 s s \clef bass;
267 \property Score.PaperColumn \push #'space-factor = #0.6
268 \property Score.PaperColumn \push #'to-musical-spacing-factor = #0.1
269 \property Voice.NoteHead \push #'font-relative-size = #-1
270 \property Voice.Stem \push #'font-relative-size = #-1
271 \property Voice.Stem \push #'length = #6
272 \property Voice.Slur \push #'font-relative-size = #-1
273 \property Voice.Slur \push #'attachment-offset = #'((-0.5 . 0) . (0.5 . 0))
276 \property Voice.NoteHead \pop #'font-relative-size
277 \property Voice.Stem \pop #'font-relative-size
278 \property Voice.Stem \pop #'length
279 \property Voice.Slur \pop #'font-relative-size
280 \property Score.PaperColumn \pop #'space-factor
281 \property Score.PaperColumn \pop #'to-musical-spacing-factor
283 \property Voice.Slur \pop #'attachment-offset
286 \property Voice.Slur \pop #'direction
287 \property Voice.Slur \push #'direction = #1
288 a,8 [e'-5(<)a-2 cis-3>]
289 r b,-5 <e4-3 gis-5 d'>
290 \property Voice.Slur \pop #'direction
291 \property Voice.Slur \push #'direction = #0
295 \property Voice.Slur \pop #'direction
296 \property Voice.Slur \push #'direction = #1
297 [e'(<)a cis>] r b, <e4 gis d'>
298 \property Voice.Slur \pop #'direction
299 \property Voice.Slur \push #'direction = #0
305 bassTwo = \context Voice=bassTwo \notes\relative c{
314 \property Voice.Stem \pop #'direction
315 \property Voice.Stem \push #'direction = #1
316 \property Voice.Slur \pop #'direction
317 \property Voice.Slur \push #'direction = #1
322 middleDynamics = \context Dynamics=middle \notes{
330 \outputproperty #(make-type-checker 'dynamic-interface)
331 #'extra-offset = #'(0 . 1.5)
335 \outputproperty #(make-type-checker 'text-item-interface)
336 #'extra-offset = #'(0 . 1.5)
340 \outputproperty #(make-type-checker 'dynamic-interface)
341 #'extra-offset = #'(0 . 4)
344 \outputproperty #(make-type-checker 'crescendo-interface)
345 #'extra-offset = #'(0.5 . -1)
347 \outputproperty #(make-type-checker 'dynamic-interface)
348 #'extra-offset = #'(-1 . 4)
349 s8\mf s4 s4 s8\> s32 s s \!s
352 lowerDynamics = \context Dynamics=lower \notes{
355 s2\sustaindown s8. s16\sustainup s4
357 s2\sustaindown s8. s16\sustainup s4
363 s32\sustaindown s s s
369 s32\sustaindown s s s
372 \property Dynamics.stopSustain = #""
373 s4 s16. s32\sustainup
377 \property Dynamics.stopSustain = #"*"
378 \property Dynamics.stopStartSustain = #"-P"
379 s s\sustainup\sustaindown s s
383 \property Dynamics.stopStartSustain = #""
385 \property Dynamics.stopStartSustain = #"-P"
386 s s\sustainup\sustaindown s s
391 \context PianoStaff <
392 \context Staff=treble <
397 \context Dynamics=middle <
401 \context Staff=bass <
407 \context Dynamics=lower <
414 magnification_italic = 1.;
417 TimeSignature \push #'style = #"C"
418 SpacingSpanner \push #'maximum-duration-for-spacing = #(make-moment 1 4)
420 \remove Bar_number_engraver;
423 \type "Engraver_group_engraver";
425 \consists "Output_property_engraver";
426 Generic_property_list = #generic-voice-properties
427 \consists "Property_engraver";
428 DynamicsMinimumVerticalExtent = #(cons -3 -3)
429 VerticalAlignment \push #'threshold = #'(9 . 9)
431 startSustain = #"Ped."
433 stopStartSustain = #"*Ped."
434 startUnaChorda = #"una chorda"
435 stopUnaChorda = #"tre chorde"
437 \consists "Piano_pedal_engraver";
438 \consists "Script_engraver";
439 \consists "Dynamic_engraver";
440 \consists "Text_engraver";
441 %GURGURGU, text is initialised using TextScript
442 TextScript \push #'style = #"italic"
443 %%% TextScript \push #'font-relative-size = #2
445 \consists "Skip_req_swallow_translator";
447 \consistsend "Axis_group_engraver";
453 VerticalAlignment \push #'threshold = #'(7 . 7)
457 Stem \push #'flag-style = #""