]> git.donarmstrong.com Git - lilypond.git/blob - input/les-nereides.ly
patch::: 1.3.94.jcn1
[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 \header{
7     composer =   "ARTHUR GRAY";
8     title =      "LES N\\'ER\\'EIDES";
9     subtitle =   "THE NEREIDS";
10     enteredby =  "JCN";
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";
15 }
16
17 global = \notes{
18     \partial 2;
19     \key a \major;
20     \skip 2;
21     \skip 1*2;
22
23 #ifndef FAKE_GRACE
24     \skip 1;
25 #else % FAKE_GRACE
26     \skip 2.; \partial 32*24;
27     \skip 32*24;
28 #endif % FAKE_GRACE
29
30     \bar "||";
31 }
32
33 treble = \context Voice=treble \notes\relative c''{
34     % Broken?
35     \property Voice.NoteColumn \push #'horizontal-shift = #0
36     r2
37     %2
38     \property Voice.Stem \pop #'direction
39     \property Voice.Stem \push #'direction = #1
40     r4 <cis eis a cis> r2
41     %3
42     r4 <cis fis a cis> r8.
43     \translator Staff=bass
44     cis,16^2^"m.d."( <fis8 fis,> <e! e,!>
45     %4
46     <)dis,4 a' dis>
47     \translator Staff=treble
48     \property Voice.Slur \pop #'direction
49     \property Voice.Slur \push #'direction = #1
50     %% 8va
51     cis''''4^"m.g." (
52
53 #ifndef FAKE_GRACE
54
55     \property Voice.Stem \pop #'direction
56
57     % grace is a mess
58     % maybe we should fake this and put 5/4 in this bar?
59
60     \grace {
61         )cis8
62         \property Grace.Stem \pop #'direction
63         \property Grace.Stem \push #'direction = #0
64         %urg, dim. during grace dumps core here
65         %%[a16-5( fis dis] [cis'32 a-1 fis-4 dis] [cis a )fis-2]
66         [a16-5( fis dis] [cis32 a-1 fis-4 dis] [cis a )fis-2]
67     }
68
69 #else % FAKE_GRACE 
70
71     \property Voice.NoteHead \push #'font-size = #-1
72     \property Voice.Stem \push #'font-size = #-1
73     \property Voice.Beam \push #'font-size = #-1
74     \property Voice.TextScript \push #'font-size = #-1
75     \property Voice.Slur \push #'font-size = #-1
76     \property Voice.LocalKey \push #'font-size = #-1
77
78     )cis16
79     \property Voice.Stem \pop #'direction
80     \property Voice.Stem \push #'direction = #0
81     %%[a16^5( fis dis] [cis'32 a-1 fis-4 dis] [cis a )fis-2] s s s
82     [a16^5( fis dis] [cis32 a^1 fis^4 dis] [cis a )fis-2] s % s s
83
84     \property Voice.NoteHead \pop #'font-size
85     \property Voice.Stem \pop #'font-size
86     \property Voice.Beam \pop #'font-size
87     \property Voice.TextScript \pop #'font-size
88     \property Voice.Slur \pop #'font-size
89     \property Voice.LocalKey \pop #'font-size
90
91 #endif % FAKE_GRACE
92     
93
94     \property Voice.Stem \pop #'direction
95     \property Voice.Stem \push #'direction = #1
96     cis'4()bis
97     r8
98     <a'8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e^" "^1^4^5 r|
99     r<a8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e r|
100 }
101
102 trebleTwo = \context Voice=trebleTwo \notes\relative c''{
103     % Broken?
104     \property Voice.NoteColumn \push #'horizontal-shift = #-1
105     s2
106     s1*2
107     s4
108     \property Voice.Stem \pop #'direction
109     \property Voice.Stem \push #'direction = #-1
110     <cis4 a fis dis>
111
112 #ifdef FAKE_GRACE
113     s32*16
114 #endif
115
116     <e2 g, e d>
117     %r8 cis4. d4 [<cis8-5-4( e,-1> <b-3 d,-1> |
118     r8 cis4. d4 [<cis8( e,> <b-3 d,-1> |
119     <)a-2 cis,-1>] cis4. d4 [<cis8( e,> <b d,> |
120     <)a cis,>]
121 }
122
123 bass = \context Voice=bass \notes\relative c{
124     \property Voice.Slur \pop #'details
125     \property Voice.Slur \push #'details =
126 %        #'((height-limit . 2.0) (ratio . 0.333) (force-blowfit . 0.5) (beautiful . 1.0))
127         #'((height-limit . 6.0) (ratio . 0.333) (force-blowfit . 1.0) (beautiful . 0.1))
128     \property Voice.Slur \pop #'de-uglify-parameters
129     \property Voice.Slur \push #'de-uglify-parameters =
130 %    #'(1.5  0.8  -2.0)
131     #'(2.4  0.8  4.0)
132     \property Voice.Stem \pop #'direction
133     \property Voice.Slur \push #'direction = #-1
134     % huh, auto-beamer?
135     r8. e,16-2( [<a8 a,> <b b,>] <cis4 cis,> |
136     %2
137     \translator Staff=treble
138     \property Voice.Stem \pop #'direction
139     \property Voice.Stem \push #'direction = #-1
140     \property Voice.slurEndAttachment = #'stem
141     <)a''4 eis cis> 
142     %\stemboth
143     \property Voice.slurEndAttachment = ##f
144     \translator Staff=bass
145     \property Voice.Stem \pop #'direction
146     \property Voice.Slur \pop #'y-free
147     \property Voice.Slur \push #'y-free = #0.1
148     r8. cis,,16( <fis8 fis,> <gis gis,>
149     %3
150     \property Voice.Stem \pop #'length
151     \property Voice.Stem \push #'length = #5
152     <a4 a,>
153     \translator Staff=treble
154     \property Voice.Stem \pop #'direction
155     \property Voice.Stem \push #'direction = #-1
156     <)a' fis cis>
157     \translator Staff=bass
158     \property Voice.Stem \pop #'direction
159     r2
160     %4
161     \property Voice.Slur \pop #'details
162     \property Voice.Slur \push #'details =
163         #'((height-limit . 2.0) (ratio . 0.333) (force-blowfit . 0.5) (beautiful . 0.5))
164     \property Voice.Stem \pop #'direction
165     \property Voice.Stem \push #'direction = #-1
166     <b,,4 b,>
167     \clef treble;
168     \property Voice.Stem \pop #'direction
169     \property Voice.Stem \push #'direction = #0
170     <
171         %urg: staff-change: ! on dis
172         <cis'' a fis dis!>
173 %       { s8. \clef bass;}
174     >
175
176 #ifndef FAKE_GRACE
177     %Hmm
178     %\grace { s16 s s s s32 s s s s \clef bass; s }
179     \clef bass;
180 #else
181     s4 s8 s32 s  s \clef bass; s
182 #endif
183
184     \grace { <e,,,32( e,> } <)gis'2 e>
185     %5%
186     \property Voice.Slur \pop #'direction
187     \property Voice.Slur \push #'direction = #1
188     a,8 [e'-5(<)a-2 cis-3>]
189     r b,-5 <e4-3 gis-5 d'>
190     \property Voice.Slur \pop #'direction
191     \property Voice.Slur \push #'direction = #0
192     [e,8-5(|
193     %6
194     )a-2]
195     \property Voice.Slur \pop #'direction
196     \property Voice.Slur \push #'direction = #1
197     [e'(<)a cis>] r b, <e4 gis d'>
198     \property Voice.Slur \pop #'direction
199     \property Voice.Slur \push #'direction = #0
200     [e,8(|
201     %7
202     )a]
203 }
204
205 bassTwo = \context Voice=bassTwo \notes\relative c{
206     \skip 2;
207     \skip 1*2;
208     \skip 2;
209
210 #ifdef FAKE_GRACE
211     \skip 32*16;
212 #endif
213
214     \property Voice.Stem \pop #'direction
215     \property Voice.Stem \push #'direction = #1
216     \property Voice.Slur \pop #'direction
217     \property Voice.Slur \push #'direction = #1
218     cis'4()bis
219 }
220
221 middleDynamics = \context Dynamics=middle \notes{
222     s8 s16 s\f s4
223     s1*2
224     %4
225     s2
226
227 #ifdef FAKE_GRACE
228     s32*12
229     s32\> s s \!s
230 #endif
231
232     s32 s-"rall." s s
233     s8 s4
234
235     s1\mf-"a tempo"
236     s8 s8\mf s4 s4 s8\> s32 s s \!s
237 }
238
239 lowerDynamics = \context Dynamics=lower \notes{
240     s2
241     %2
242     s2\sustaindown s8. s16\sustainup s4
243     %3
244     s2\sustaindown s8. s16\sustainup s4
245     %3
246
247 #ifndef FAKE_GRACE
248     s4\sustaindown s16
249     s32 s s\sustainup s
250     s32\sustaindown s s s
251     s8
252 #else
253     s2\sustaindown
254     s32*12
255     s32 s s\sustainup s
256     s32\sustaindown s s s
257 #endif
258
259     \property Dynamics.stopSustain = #""
260     s4 s16. s32\sustainup
261
262     %5
263     s8\sustaindown s s
264     \property Dynamics.stopSustain = #"*"
265     \property Dynamics.stopStartSustain = #"-P"
266     s s\sustainup\sustaindown s s
267     s\sustainup
268
269     %6
270     \property Dynamics.stopStartSustain = #""
271     s8\sustaindown s s
272     \property Dynamics.stopStartSustain = #"-P"
273     s s\sustainup\sustaindown s s
274     s\sustainup
275 }
276
277 \score{
278     \context PianoStaff <
279         \context Staff=treble <
280             \global
281             \treble
282             \trebleTwo
283         >
284         \context Dynamics=middle <
285             \global
286             \middleDynamics
287         >
288         \context Staff=bass <
289             \clef bass;
290             \global
291             \bass
292             \bassTwo
293         >
294         \context Dynamics=lower <
295             \global
296             \lowerDynamics
297         >
298     >
299     \paper {
300         \translator {
301             \ScoreContext
302             TimeSignature \push #'style = #"C"
303         }
304         \translator {
305             \type "Engraver_group_engraver";
306             \name Dynamics;
307             Generic_property_list = #generic-lyrics-properties
308             \consists "Property_engraver";
309             DynamicsMinimumVerticalExtent = #(cons -3 -3)
310
311             startSustain = #"Ped."
312             stopSustain = #"*"
313             stopStartSustain = #"*Ped."
314             startUnaChorda = #"una chorda"
315             stopUnaChorda = #"tre chorde"
316             % should make separate lists for stopsustain and startsustain 
317             
318             \consists "Piano_pedal_engraver";
319             \consists "Script_engraver";
320             \consists "Dynamic_engraver";
321             \consists "Text_engraver";
322             %GURGURGU, text is initialised using TextScript
323             TextScript \push #'style = #"italic"
324             TextScript \push #'font-size = #2
325             \consists "Skip_req_swallow_translator";
326
327             \consistsend "Axis_group_engraver";
328         }
329
330         \translator {
331             \VoiceContext
332             TextScript \push #'style = #"italic"
333         }
334         \translator {
335             \PianoStaffContext
336             \accepts Dynamics;
337             % aarg, also separates Dynamics context...
338             %VerticalAlignment \push #'threshold = #'(12 . 12) 
339             %VerticalAlignment \pop #'threshold
340             VerticalAlignment \push #'threshold = #'(1 . 10) 
341         }
342         \translator {
343             \GraceContext
344             Stem \push #'flag-style = #""
345         }
346     }
347 }