]> git.donarmstrong.com Git - lilypond.git/blob - input/les-nereides.ly
release: 1.3.138
[lilypond.git] / input / les-nereides.ly
1 %{
2 cpp -P -traditional -o l.ly les-nereides.ly
3 cpp -P -traditional -o l-fake.ly  -DFAKE_GRACE les-nereides.ly
4 %}
5
6
7
8 \header{
9     composer =   "ARTHUR GRAY";
10     title =      "LES N\\'ER\\'EIDES";
11     subtitle =   "THE NEREIDS";
12     enteredby =  "JCN";
13     %piece =      "Allegretto scherzando";
14     copyright =  "public domain";
15     description = "Nastiest piece of competition at http://www.orphee.com/comparison/study.html, see http://www.orphee.com/comparison/gray.pdf";
16     comment =     "LilyPond (1.3.93) can't really do this yet, I guess";
17 }
18
19
20 %% cpp: don't start on first column
21  #(define (grace-beam-space-function multiplicity)
22          (* (if (<= multiplicity 3) 0.816 0.844) 0.8))
23
24 %% cpp: don't start on first column
25  #(define (make-text-checker text)
26   (lambda (elt)
27      ;; huh, string-match undefined?
28      ;; (string-match text (ly-get-grob-property elt 'text))
29      (equal? text (ly-get-grob-property elt 'text))
30     ))
31
32
33 global =  \notes{
34     \partial 2;
35     \key a \major;
36     \skip 2;
37     \skip 1*2;
38
39 #ifndef FAKE_GRACE
40     \skip 1;
41 #else % FAKE_GRACE
42     \skip 2.; \partial 32*24;
43     \skip 32*24;
44 #endif % FAKE_GRACE
45
46     \bar "||";
47 }
48
49 treble =  \context Voice=treble \notes\relative c''{
50     % Broken?
51     \property Voice.NoteColumn \override #'horizontal-shift = #0
52     \outputproperty #(make-type-checker 'text-item-interface) 
53             #'extra-offset = #'(-6 . 2)
54     %% *Style* = Large??
55     \property Voice.TextScript \override #'style = #"Large"
56     r2^"Allegretto scherzando"
57     \property Voice.TextScript \revert #'style
58     %2
59     \property Voice.Stem \revert #'direction
60     \property Voice.Stem \override #'direction = #1
61     r4 <cis\arpeggio eis a cis> r2
62     %3
63     r4 <cis\arpeggio fis a cis> r8.
64     % Huh, urg?  Implicit \context Staff lifts us up to Staff context???
65     \translator Staff=bass
66     % Get back
67     \context Voice 
68     \outputproperty #(make-text-checker "m.d.")
69             #'extra-offset = #'(-3 . -4)
70     % currently, this can't be (small) italic, because in the paperblock
71     % we set italic_magnifictation to get large italics.
72     cis,16^2^"m.d."( <fis8 fis,> <e! e,!>
73     %4
74     <)dis,4 a' dis>
75     % Urg, this lifts us up to staff context
76     \translator Staff=treble
77     % Get back
78     \context Voice 
79     \property Voice.Slur \revert #'direction
80     \property Voice.Slur \override #'direction = #1
81     \property PianoStaff.connectArpeggios = ##t
82     \property Voice.TextSpanner \revert #'type
83
84     %% Ghostview is ok, but xdvi shows a solid line
85     \property Voice.TextSpanner \override #'line-thickness = #2
86     \property Voice.TextSpanner \override #'dash-period = #0.5
87
88     \property Voice.TextSpanner \override #'type = #"dotted-line"
89     \property Voice.TextSpanner \override #'edge-height = #'(0 . 1.5)
90     \property Voice.TextSpanner \override #'edge-text = #'("8 " . "")
91     % Huh, urg?  Implicit \context Staff lifts us up to Staff context???
92
93         % no, see seq-mus-iter --hwn
94     \property Staff."c0-position" = #-13
95
96
97     % Get back
98     %\context Voice 
99     \outputproperty #(make-text-checker "m.g.")
100             #'extra-offset = #'(-3 . -2)
101     % currently, this can't be (small) italic, because in the paperblock
102     % we set italic_magnifictation to get large italics.
103     cis''''4^"m.g."\arpeggio \spanrequest \start "text"  (
104
105 #ifndef FAKE_GRACE
106
107     \property Voice.Stem \revert #'direction
108
109     % grace is a mess
110     % maybe we should fake this and put 5/4 in this bar?
111
112     \grace {
113         )cis8
114         \property Grace.Stem \revert #'direction
115         \property Grace.Stem \override #'direction = #0
116         \property Grace.Beam \override #'space-function = #grace-beam-space-function
117         %% urg, dim. during grace dumps core here
118         %% [a16-5( fis dis \spanrequest \stop "text" ]
119         %% [cis'32 a-1 fis-4 dis] [cis a )fis-2]
120         [a16-5( fis dis \spanrequest \stop "text" ]
121         \property Staff."c0-position" = #-6
122         [cis32 a-1 fis-4 dis] [cis a )fis-2]
123     }
124
125 #else % FAKE_GRACE 
126
127     \property Score.PaperColumn  \override #'space-factor = #0.6
128     \property Score.PaperColumn  \override #'to-musical-spacing-factor = #0.04
129     \property Voice.NoteHead \override #'font-relative-size = #-1
130     \property Voice.Stem \override #'font-relative-size = #-1
131     \property Voice.Stem \override #'length = #6
132     \property Voice.Stem \override #'beamed-lengths =
133         #(map (lambda (x) (* 1.25 x)) '(0.0 2.5 2.0 1.5))
134     \property Voice.Stem \override #'beamed-minimum-lengths =
135         #(map (lambda (x) (* 1.25 x)) '(0.0 1.5 1.25 1.0))
136
137     \property Voice.Beam \override #'font-relative-size = #-1
138     \property Voice.TextScript \override #'font-relative-size = #-1
139     \property Voice.Fingering \override #'font-relative-size = #-1
140     \property Voice.Slur \override #'font-relative-size = #-1
141     \property Staff.Accidentals \override #'font-relative-size = #-1
142     \property Voice.Beam \override #'space-function = #grace-beam-space-function
143
144     )cis16
145     \property Voice.Stem \revert #'direction
146     \property Voice.Stem \override #'direction = #0
147     %% [a16^5( fis dis \spanrequest \stop "text" ]
148     %% [cis'32 a-1 fis-4 dis] [cis a )fis-2] s s s
149     [a16^5( fis dis \spanrequest \stop "text" ]
150     \property Staff."c0-position" = #-6
151     [cis32 a^1 fis^4 dis] [cis a )fis-2] s % s s
152
153     \property Voice.NoteHead \revert #'font-relative-size
154     \property Voice.Stem \revert #'font-relative-size
155     \property Voice.Stem \revert #'length
156     \property Voice.Stem \revert #'beamed-lengths
157     \property Voice.Stem \revert #'beamed-minimum-lengths
158     \property Voice.Beam \revert #'font-relative-size
159     \property Voice.TextScript \revert #'font-relative-size
160     \property Voice.Fingering \revert #'font-relative-size
161     \property Voice.Slur \revert #'font-relative-size
162     \property Staff.Accidentals \revert #'font-relative-size
163     \property Voice.Beam \revert #'space-function
164     \property Score.PaperColumn  \revert #'space-factor
165     \property Score.PaperColumn \revert #'to-musical-spacing-factor
166 #endif % FAKE_GRACE
167     
168
169     \property Voice.Stem \revert #'direction
170     \property Voice.Stem \override #'direction = #1
171     cis'4()bis
172     r8
173     <a'8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e^" "^1^4^5 r|
174     r<a8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e r|
175 }
176
177 trebleTwo =  \context Voice=trebleTwo \notes\relative c''{
178     \property Voice.NoteColumn \override #'horizontal-shift = #1
179     s2
180     s1*2
181     s4
182     \property Voice.Stem \revert #'direction
183     \property Voice.Stem \override #'direction = #-1
184     <cis'4\arpeggio a fis dis>
185
186 #ifdef FAKE_GRACE
187     s32*16
188 #endif
189
190     \property Voice.NoteColumn \override #'force-hshift = #-0.2
191     <e,2 gis, e d!>
192     % Hmm s/r?
193     %r8 cis4. d4
194     s8 cis4. d4
195     \property Voice.NoteColumn \revert #'force-hshift
196     [<cis8( e,> <b-3 d,-1> |
197     \property Voice.NoteColumn \override #'force-hshift = #-0.2
198     <)a-2 cis,-1>] cis4. d4 
199     \property Voice.NoteColumn \revert #'force-hshift
200     [<cis8( e,> <b d,> |
201     <)a cis,>]
202 }
203
204 bass =  \context Voice=bass \notes\relative c{
205     % Allow ugly slurs
206     \property Voice.Slur \override #'beautiful = #5.0
207     \property Voice.Slur \override #'attachment-offset = #'((0 . -3) . (0 . -6))
208     \property Voice.Stem \revert #'direction
209     \property Voice.Slur \override #'direction = #-1
210     % huh, auto-beamer?
211     r8. e,16-2( [<a8 a,> <b b,>] <cis4 cis,> |
212     %2
213     % Huh, urg?  Implicit \context Staff lifts us up to Staff context???
214     \translator Staff=treble
215     % Get back
216     \context Voice 
217     \property Voice.Stem \revert #'direction
218     \property Voice.Stem \override #'direction = #-1
219     \property Voice.slurEndAttachment = #'stem
220     <)a''4\arpeggio eis cis> 
221     %\stemBoth
222     \property Voice.slurEndAttachment = ##f
223     % Huh, urg?  Implicit \context Staff lifts us up to Staff context???
224     \translator Staff=bass
225     % Get back
226     \context Voice 
227     \property Voice.Stem \revert #'direction
228     \property Voice.Slur \revert #'y-free
229     \property Voice.Slur \override #'y-free = #0.1
230     \property Voice.Slur \revert #'attachment-offset
231     \property Voice.Slur \override #'attachment-offset = #'((0 . -3) . (0 . -8))
232     r8. cis,,16( <fis8 fis,> <gis gis,>
233     %3
234     \property Voice.Stem \revert #'length
235     \property Voice.Stem \override #'length = #5
236     <a4 a,>
237     % Huh, urg?  Implicit \context Staff lifts us up to Staff context???
238     \translator Staff=treble
239     % Get back
240     \context Voice 
241     \property Voice.Stem \revert #'length
242     \property Voice.Stem \revert #'direction
243     \property Voice.Stem \override #'direction = #-1
244     <)a'\arpeggio fis cis>
245     % Huh, urg?  Implicit \context Staff lifts us up to Staff context???
246     \translator Staff=bass
247     % Get back
248     \context Voice 
249     \property Voice.Stem \revert #'direction
250     r2
251     %4
252     \property Voice.Slur \revert #'beautiful
253     \property Voice.Slur \revert #'attachment-offset
254     \property Voice.Stem \revert #'direction
255     \property Voice.Stem \override #'direction = #-1
256     <b,,4 b,>
257     \clef treble;
258     \property Voice.Stem \revert #'direction
259     \property Voice.Stem \override #'direction = #0
260     <
261         %urg: staff-change: ! on dis
262         <cis''\arpeggio a fis dis!>
263 %       { s8. \clef bass;}
264     >
265
266 #ifndef FAKE_GRACE
267     %Hmm
268     %\grace { s16 s s s s32 s s s s \clef bass; s }
269     \clef bass;
270     \grace { <e,,,32( e,> } <)gis'2 e>
271 #else
272     s4 s8 s32 s  s \clef bass;
273     \property Score.PaperColumn  \override #'space-factor = #0.6
274     \property Score.PaperColumn  \override #'to-musical-spacing-factor = #0.1
275     \property Voice.NoteHead \override #'font-relative-size = #-1
276     \property Voice.Stem \override #'font-relative-size = #-1
277     \property Voice.Stem \override #'length = #6
278     \property Voice.Slur \override #'font-relative-size = #-1
279     \property Voice.Slur \override #'attachment-offset = #'((-0.5 . 0) . (0.5 . 0))
280     <e,,,32( e,>
281
282     \property Voice.NoteHead \revert #'font-relative-size
283     \property Voice.Stem \revert #'font-relative-size
284     \property Voice.Stem \revert #'length
285     \property Voice.Slur \revert #'font-relative-size
286     \property Score.PaperColumn  \revert #'space-factor
287     \property Score.PaperColumn \revert #'to-musical-spacing-factor
288      <)gis'2 e>
289     \property Voice.Slur \revert #'attachment-offset
290 #endif
291     %5
292     \property Voice.Slur \revert #'direction
293     \property Voice.Slur \override #'direction = #1
294     a,8 [e'-5(<)a-2 cis-3>]
295     r b,-5 <e4-3 gis-5 d'>
296     \property Voice.Slur \revert #'direction
297     \property Voice.Slur \override #'direction = #0
298     [e,8-5(|
299     %6
300     )a-2]
301     \property Voice.Slur \revert #'direction
302     \property Voice.Slur \override #'direction = #1
303     [e'(<)a cis>] r b, <e4 gis d'>
304     \property Voice.Slur \revert #'direction
305     \property Voice.Slur \override #'direction = #0
306     [e,8(|
307     %7
308     )a]
309 }
310
311 bassTwo =  \context Voice=bassTwo \notes\relative c{
312     \skip 2;
313     \skip 1*2;
314     \skip 2;
315
316 #ifdef FAKE_GRACE
317     \skip 32*16;
318 #endif
319
320     \property Voice.Stem \revert #'direction
321     \property Voice.Stem \override #'direction = #1
322     \property Voice.Slur \revert #'direction
323     \property Voice.Slur \override #'direction = #1
324
325     cis'4()bis
326 }
327
328 middleDynamics =  \context Dynamics=middle \notes{
329     s8 s16 s\f s4
330     s1*2
331     %4
332     s2
333
334 #ifdef FAKE_GRACE
335     s32*12
336     \outputproperty #(make-type-checker 'dynamic-interface) 
337             #'extra-offset = #'(0 . 1.5)
338     s32\> s s \!s
339 #endif
340     s32 
341     \outputproperty #(make-type-checker 'text-item-interface) 
342             #'extra-offset = #'(0 . 1.5)
343     s-"rall." s s
344     s8 s4
345
346     \outputproperty #(make-type-checker 'dynamic-interface) 
347             #'extra-offset = #'(0 . 4)
348     %s1\mf-"a tempo"
349     s2\mf-"a tempo" s4
350     \outputproperty #(make-type-checker 'crescendo-interface) 
351             #'extra-offset = #'(0.5 . -1)
352     s\> \!s8
353     \outputproperty #(make-type-checker 'dynamic-interface) 
354             #'extra-offset = #'(-1 . 4)
355     s8\mf s4 s4 s8\> s32 s s \!s
356 }
357
358 lowerDynamics =  \context Dynamics=lower \notes{
359     s2
360     %2
361     s2\sustainDown s8. s16\sustainUp s4
362     %3
363     s2\sustainDown s8. s16\sustainUp s4
364     %3
365
366 #ifndef FAKE_GRACE
367     s4\sustainDown s16
368     s32 s s\sustainUp s
369     s32\sustainDown s s s
370     s8
371 #else
372     s2\sustainDown
373     s32*12
374     s32 s s\sustainUp s
375     s32\sustainDown s s s
376 #endif
377
378     \property Dynamics.stopSustain = #""
379     s4 s16. s32\sustainUp
380
381     %5
382     s8\sustainDown s s
383     \property Dynamics.stopSustain = #"*"
384     \property Dynamics.stopStartSustain = #"-P"
385     s s\sustainUp\sustainDown s s
386     s\sustainUp
387
388     %6
389     \property Dynamics.stopStartSustain = #""
390     s8\sustainDown s s
391     \property Dynamics.stopStartSustain = #"-P"
392     s s\sustainUp\sustainDown s s
393     s\sustainUp
394 }
395
396 \score{
397     \context PianoStaff <
398         \context Staff=treble <
399             \global
400             \treble
401             \trebleTwo
402         >
403         \context Dynamics=middle <
404             \global
405             \middleDynamics
406         >
407         \context Staff=bass <
408             \clef bass;
409             \global
410             \bass
411             \bassTwo
412         >
413         \context Dynamics=lower <
414             \global
415             \lowerDynamics
416         >
417     >
418     \paper {
419         %%BURP
420         magnification_italic = 1.;
421         \translator {
422             \ScoreContext
423             TimeSignature \override #'style = #'C
424             SpacingSpanner \override #'maximum-duration-for-spacing = #(make-moment 1 4)
425
426             \remove Bar_number_engraver;
427         }
428         \translator {
429             \type "Engraver_group_engraver";
430             \name Dynamics;
431             \consists "Output_property_engraver";
432             Generic_property_list = #generic-voice-properties
433             \consists "Property_engraver";
434             DynamicsMinimumVerticalExtent = #(cons -3 -3)
435             VerticalAlignment \override #'threshold = #'(9 . 9) 
436
437             startSustain = #"Ped."
438             stopSustain = #"*"
439             stopStartSustain = #"*Ped."
440             startUnaChorda = #"una chorda"
441             stopUnaChorda = #"tre chorde"
442             
443             \consists "Piano_pedal_engraver";
444             \consists "Script_engraver";
445             \consists "Dynamic_engraver";
446             \consists "Text_engraver";
447             %GURGURGU, text is initialised using TextScript
448             TextScript \override #'style = #"italic"
449             %%% TextScript \override #'font-relative-size = #2
450
451             \consists "Skip_req_swallow_translator";
452
453             \consistsend "Axis_group_engraver";
454         }
455
456         \translator {
457             \PianoStaffContext
458             \accepts Dynamics;
459             VerticalAlignment \override #'threshold = #'(7 . 7)
460         }
461         \translator {
462             \GraceContext
463             Stem \override #'flag-style = #""
464         }
465     }
466 }