]> git.donarmstrong.com Git - lilypond.git/blob - input/tutorial/orchestral-score.ly
patch::: 1.3.128.jcn1
[lilypond.git] / input / tutorial / orchestral-score.ly
1 \version "1.3.120";
2
3 \include "paper16.ly";
4
5 % #(set! point-and-click #t)
6 #(define text-flat '((font-relative-size . -2) (music "accidentals--1")))
7
8 staffCombineStaffProperties = {
9         \property Staff.devNullThread = #'unisolo
10         \property Staff.soloADue = ##t
11         \property Staff.soloText = #""
12         \property Staff.soloIIText = #""
13         % This is non-conventional, but currently it is
14         % the only way to tell the difference.
15         \property Staff.aDueText = #"\\`a2"
16         \property Staff.splitInterval = #'(1 . 0)
17         \property Staff.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1))
18 }
19
20 staffCombineVoiceProperties = {
21         \property Voice.devNullThread = #'unisolo
22         \property Voice.soloADue = ##t
23         \property Voice.soloText = #""
24         \property Voice.soloIIText = #""
25         % This is non-conventional, but currently it is
26         % the only way to tell the difference.
27         \property Voice.aDueText = #"\\`a2"
28         \property Voice.splitInterval = #'(1 . 0)
29         \property Voice.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1))
30 }
31
32
33 % Coriolan 218-222
34 flautoI = \notes\relative c'' {
35   \property Score.currentBarNumber = #218
36   des2.()c4|e(f e)f|\break
37   r2 des4\sf()c|r2 des4\sf()c|
38 }
39 flautoII = \notes\relative c'' {
40  g2.()as4|bes(as bes)as|
41  R1*2
42 }
43 oboeI = \notes\relative c'' {
44  e2.()f4|e(f e)f|
45  r2 as|r as\sf|
46 }
47 oboeII = \notes\relative c'' {
48  g2.()as4|bes(as bes)as|
49  r2 as'|r as\sf|
50 }
51 clarinettoI = \notes\relative c' {
52   es2.()d4|c(bis c)bes|
53 % r2 es4\sf()d|r2 es4\sf()d|
54 }
55 clarinettoII = \notes\relative c' {
56   es2.()d4|c(bes c)bes|
57 % r2 es'4\sf()d|r2 es4\sf()d|
58 }
59 fagottoI = \notes\relative c' {
60   bes2.()as4|g(f g)f|
61   r r8 des' des4\sf()es|r r8 des des4\sf()es|
62 }
63 fagottoII = \notes\relative c' {
64   bes2.()as4 | g(f g)f|
65   f4 r r2 | f4 r r2|
66 }
67 cornoI = \notes\relative c''' {
68   g2. f4|g f g f|
69 % r4 r8 f f2|r4 r8 f f2|
70 }
71 cornoII = \notes\relative c''' {
72   g,2. d'4|g, d' g, d'|
73   r4 r8 d d4\sf()es|r4 r8 d d4\sf()es|
74 }
75 tromboI = \notes\relative c'' {
76   c2. c4|c c c c|
77   R1*2|
78 }
79 tromboII = \notes\relative c' {
80   c2. c4|c c c c|
81   R1*2|
82 }
83 timpani = \notes\relative c {
84   c2:16 c4 c|c c c c |
85   R1*2|
86 }
87 violinoI = \notes\relative c' {
88  des'2:16\ff des4: c:|e,: f: e: f:|
89  r8 as des,4\sf~des()c |r8 as' des,4\sf~des()c|
90 }
91 violinoII = \notes\relative c' {
92   des2:16\ff des4: c: |  bes: as: bes: as:|
93 % r8 as des,4\sf ~ des()c| r8 as' des,4\sf ~ des()c|
94 }
95 violaI = \notes\relative c' {
96   e2:16\ff e4: f:|b,: c: b: c:|
97   r4 r8 as as2\sf|r4 r8 as as2\sf|
98 }
99 violaII = \notes\relative c' {
100   bes2:16\ff bes4: as:|g: f: g: f: |
101   r4 r8 f f4\sf()ges|r4 r8 f f4\sf()ges|
102 }
103 violoncello = \notes\relative c {
104   bes2.\ff()as4|g( f g )f |
105   r4 r8 f' f4\sf()ges |r4 r8 f f4\sf()ges |
106 }
107 contrabasso = \notes\relative c {
108   bes2.\ff()as4|g( f g )f|
109   f4 r r2 |f'4 r r2|
110 }
111
112
113
114 %%
115 %% Hmm, can't we move this to a `template.ly'
116 %%
117 \score {
118   < 
119     \context StaffGroup = wood <
120       \context Staff = flauti <
121         \property Staff.midiInstrument = #"flute"
122         \property Staff.instrument = "2 Flauti"
123         \property Staff.instr = "Fl."
124         \context Voice=one \partcombine Voice
125           \context Thread=one \flautoI
126           \context Thread=two \flautoII
127       >
128       \context Staff = oboes <
129         \property Staff.midiInstrument = #"oboe"
130         \property Staff.instrument = "2 Oboi"
131         \property Staff.instr = "Ob."
132         \context Voice=one \partcombine Voice
133           \context Thread=one \oboeI
134           \context Thread=two \oboeII
135       >
136       \context Staff = clarinets <
137         \property Staff.midiInstrument = #"clarinet"
138         \property Staff.instrument = #`((kern . 0.5)
139           (lines "2 Clarinetti" (rows "(B" ,text-flat ")")))
140         \property Staff.instr = #`((kern . 0.5)
141           (lines "Cl."  (rows "(B" ,text-flat ")")))
142         \property Staff.transposing = #-2
143         \notes \key f \major;
144         \context Voice=one \partcombine Voice
145           \context Thread=one \clarinettoI
146           \context Thread=two \clarinettoII
147       >
148       \context Staff = bassoons <
149         \property Staff.midiInstrument = #"bassoon"
150         \property Staff.instrument = "2 Fagotti"
151         \property Staff.instr = "Fg."
152         \clef bass;
153         \context Voice=one \partcombine Voice
154           \context Thread=one \fagottoI
155           \context Thread=two \fagottoII
156       >
157     >
158     \context StaffGroup = brass <
159       \context Staff = frenshHorns <
160         \property Staff.midiInstrument = #"french horn"
161         \property Staff.instrument = #`((kern . 0.5)
162           (lines "2 Corni" (rows "(E" ,text-flat ")")))
163         \property Staff.instr = #`((kern . 0.5)
164           (lines "Cor."  (rows "(E" ,text-flat ")")))
165         \property Staff.transposing = #3
166         \notes \key c \major;
167         \context Voice=one \partcombine Voice
168           \context Thread=one \cornoI
169           \context Thread=two \cornoII
170       >
171       \context Staff = trumpets <
172         \property Staff.midiInstrument = #"clarinet"
173         \property Staff.instrument = #`((kern . 0.5)
174           (lines "2 Trombe" (rows "(C)")))
175         \property Staff.instr = #`((kern . 0.5)
176           (lines "Tbe." (rows "(C)")))
177         \context Voice=one \partcombine Voice
178           \context Thread=one \tromboI
179           \context Thread=two \tromboII
180       >
181     >
182     \context StaffGroup = timpani <
183       \context Staff = timpani <
184         \property Staff.midiInstrument = #"timpani"
185         \property Staff.instrument = #'((kern . 0.5)
186           (lines "2 Timpani" "(C-G)"))
187         \property Staff.instr = #"Timp."
188         \clef bass;
189         \timpani
190       >
191     >
192     \context StaffGroup = strings <
193       \context GrandStaff = violins <
194         \context Staff = viI <
195           \property Staff.midiInstrument = #"violin"
196           \property Staff.instrument = "Violino I"
197           \property Staff.instr = "Vi. I"
198           \violinoI       
199         >
200         \context Staff = viII <
201           \property Staff.midiInstrument = #"violin"
202           \property Staff.instrument = "Violino II"
203           \property Staff.instr = "Vi. II"
204           \violinoII
205         >
206       >
207       \context Staff = vla <
208         \property Staff.midiInstrument = #"viola"
209         \property Staff.instrument = "Viola"
210         \property Staff.instr = "Vla."
211         \clef alto;
212         \context Voice=one \partcombine Voice
213           \context Thread=one \violaI
214           \context Thread=two \violaII
215       >
216       \context GrandStaff=bass <
217         \context Staff=one <
218           %\staffCombineStaffProperties
219           \property Staff.midiInstrument = #"cello"
220           \property Staff.instrument = #'((kern . 0.5)
221             (lines "Violoncello" (rows "    e") (rows "Contrabasso")))
222           \property Staff.instr = "Vc."
223           \clef bass;
224         >
225         \context Staff=two <
226           %\staffCombineStaffProperties
227           \property Staff.midiInstrument = #"contrabass"
228           \property Staff.instrument = "Contrabasso"
229           \property Staff.instr = "C.B."
230           \clef bass;
231           \skip 1*4; % sustain clef
232         >
233         \context Staff=one \partcombine Staff
234           \context Voice=one { \staffCombineVoiceProperties \violoncello }
235           \context Voice=two { \staffCombineVoiceProperties \contrabasso }
236       >
237     >
238   >
239   \paper {
240     \paperSixteen
241     linewidth = 80 * \staffspace;
242     textheight = 200 * \staffspace;
243     \translator{
244       \ThreadContext
245       \consists "Rest_engraver";
246     }
247     \translator{
248       \VoiceContext
249       \remove "Rest_engraver";    
250
251       % The staff combine (bassi part) needs a
252       % thread_devnull_engraver here.
253       % Instead of maintaining two separate hierarchies,
254       % we switch add it, but switch it off immideately.
255       % The staff combine parts switch it on.
256       devNullThread = #'never
257       \consists "Thread_devnull_engraver";
258     }
259     \translator{
260       \HaraKiriStaffContext
261       \consists "Mark_engraver";
262     }
263     \translator {
264       \OrchestralScoreContext
265       skipBars = ##t
266
267       soloText = #"I."
268       soloIIText = #"II."
269
270       % Hmm
271       currentBarNumber = #218
272       BarNumber \override #'padding = #3
273       RestCollision \override #'maximum-rest-count = #1
274       marginScriptHorizontalAlignment = #1
275       TimeSignature \override #'style = #'C
276     }
277   }
278 }
279