\new Staff \relative {
% Main voice
c'16 d e f
- % Voice = "1" Voice = "2" Voice = "3"
+ % Voice = "1" Voice = "2" Voice = "3"
<< { g4 f e } \\ { r8 e4 d c8~ } >> |
<< { d2 e } \\ { c8 b16 a b8 g~ 2 } \\ { s4 b c2 } >> |
}
@end lilypond
+@funindex \voices
+If you prefer entering the voices in a different order, like top
+to bottom, you can specify the respective voice numbers in front
+of one @code{<< @dots{} >>} construct using the @code{\voices}
+command, like
+
+@lilypond[quote,verbatim]
+\new Staff \relative {
+ % Main voice
+ c'16 d e f
+ % Voice = "1" Voice = "2"
+ << { g4 f e } \\ { r8 e4 d c8~ } >> |
+ \voices 1,3,2
+ % Voice = "1" Voice = "3" Voice = "2"
+ << { d2 e } \\ { s4 b c2 } \\ { c8 b16 a b8 g~ 2 } >> |
+}
+@end lilypond
+
These voices are all separate from the main voice that contains
the notes just outside the @code{<< @dots{} >>} construct. Let's call
this the @emph{simultaneous construct}. Slurs and ties may only
@lilypond[quote,ragged-right]
\new Staff \relative {
\key aes \major
+ \voices 1,2,4 % No voice three
<< % Voice one
{ c''2 aes4. bes8 }
\\ % Voice two
\once \override NoteColumn.force-hshift = #0.5
des2
}
- \\ % No voice three
\\ % Voice four
{
\override NoteColumn.force-hshift = #0
@lilypond[quote,ragged-right]
\new Staff \relative {
\key aes \major
+ \voices 1,2,4 % No Voice three (we want stems down)
<<
{ % Voice one
\voiceOneStyle
\once \override NoteColumn.force-hshift = #0.5
des2
}
- \\ % No Voice three (we want stems down)
\\ % Voice four
{ \voiceThreeStyle
\override NoteColumn.force-hshift = #0
voices downward ones. The stems for voices 1 and 2 are right,
but the stems in voice 3 should go down in this particular piece
of music. We can correct this by skipping voice three
-and placing the music in voice four. This is done by simply
-adding another pair of @code{\\}.
+and placing the music in voice four. This could be done by simply
+adding another pair of @code{\\}, but we use the @code{\voices}
+command instead (which would also allow us to enter the voices in
+different order if we preferred doing that):
@lilypond[quote,verbatim,ragged-right]
\new Staff \relative {
\key aes \major
+ \voices 1,2,4 % Omit Voice three
<< % Voice one
{ c''2 aes4. bes8 }
\\ % Voice two
{ <ees, c>2 des }
- \\ % Omit Voice three
\\ % Voice four
{ aes'2 f4 fes }
>> |
}
@end lilypond
-Now let's look at three different ways to notate the same passage of
+Now let's look at four different ways to notate the same passage of
polyphonic music, each of which is advantageous in different
circumstances, using the example from the previous section.
}
@end lilypond
+@cindex voices, continued
+@funindex \voices
+
+The @code{\voices} command can also be used for continuing a main
+voice into the simultaneous construct:
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff \relative {
+ \new Voice = "main" {
+ \voiceOneStyle
+ % This section is homophonic
+ c'16^( d e f
+ % Start simultaneous section of three voices
+ \voices "main",2,3
+ <<
+ % Continue the main voice in parallel
+ { g4 f e | d2 e) | }
+ % Initiate second voice
+ \\
+ % Set stems, etc., down
+ { r8 e4 d c8~ | 8 b16 a b8 g~ 2 | }
+ \\
+ % Initiate third voice
+ % Set stems, etc, up
+ { s2. | s4 b c2 | }
+ >>
+ }
+}
+@end lilypond
+
+
@cindex nesting music expressions
@cindex nesting simultaneous constructs
@cindex nesting voices
@cindex creating contexts
@cindex contexts, creating
-In an input file a score block, introduced with a @code{\score}
-command, contains a single music expression and an associated
-output definition (either a @code{\layout} or a @code{\midi} block).
-The @code{Score} context is usually left to be created automatically
-when the interpretation of that music expression starts.
+In an input file, a score block (introduced with a @code{\score}
+command) contains a single music expression; but it can also contain
+associated output definitions too -- either a @code{\layout} block, a
+@code{\midi} block or both. The @code{Score} context is usually left to
+be created automatically when the interpretation of that music
+expression starts.
For scores with only one voice and one staff, the @code{Voice} and
@code{Staff} contexts may also be left to be created automatically,