1 @c -*- coding: utf-8; mode: texinfo; -*-
3 Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
5 When revising a translation, copy the HEAD committish of the
6 version that you are working on. See TRANSLATION for details.
12 @node Simultaneous notes
13 @section Simultaneous notes
15 @lilypondfile[quote]{simultaneous-headword.ly}
17 Polyphony in music refers to having more than one voice occurring
18 in a piece of music. Polyphony in LilyPond refers to having more
19 than one voice on the same staff.
28 @subsection Single voice
30 This section discusses simultaneous notes inside the same voice.
39 @unnumberedsubsubsec Chorded notes
42 @cindex brackets, angle
47 A chord is formed by a enclosing a set of pitches between @code{<} and
48 @code{>}. A chord may be followed by a duration and/or a set of
49 articulations, just like simple notes:
51 @lilypond[verbatim,quote,relative=1]
52 <c e g>2 <c f a>4-> <e g c>-.
55 For more information about chords, see @ref{Chord notation}.
63 @rlearning{Combining notes into chords}.
69 @rlsr{Simultaneous notes}.
74 For some reason, music expressions like @code{<< @{ g8 e8 @} a4 >>}
75 that should automatically turn into chords, appear split in two
76 staves. To avoid this, use explicit chords instead as in
82 @unnumberedsubsubsec Clusters
85 @funindex \makeClusters
87 A cluster indicates a continuous range of pitches to be played. They
88 can be denoted as the envelope of a set of notes. They are entered by
89 applying the function @code{\makeClusters} to a sequence of chords,
92 @lilypond[quote,relative=2,verbatim]
93 \makeClusters { <g b>2 <c g'> }
96 Ordinary notes and clusters can be put together in the same staff,
97 even simultaneously. In such a case no attempt is made to
98 automatically avoid collisions between ordinary notes and clusters.
106 @rlsr{Simultaneous notes}.
109 @rinternals{ClusterSpanner},
110 @rinternals{ClusterSpannerBeacon},
111 @rinternals{Cluster_spanner_engraver}.
115 Clusters look good only if they span at least two chords; otherwise
116 they appear too narrow.
118 Clusters do not have a stem and cannot indicate durations by
119 themselves. Separate clusters would need a separating rest between
123 @node Multiple voices
124 @subsection Multiple voices
126 This section discusses simultaneous notes in multiple voices or
130 * Single-staff polyphony::
132 * Collision resolution::
133 * Automatic part combining::
134 * Writing music in parallel::
137 @ignore FUTURE PLANS. Carl suggested:
139 Perhaps it would be clearer if we started with single-staff polyphony
140 with named and explicitly created voices, along with the \voiceOne
141 through \voiceFour properties.
143 We could then introduce the << \\ >> syntax as a simple way to handle
144 music where we don't care that temporary voices are created and then
147 It seems to me to be much easier to go from the full understanding to
148 the shortcut than the other way around.
152 @node Single-staff polyphony
153 @unnumberedsubsubsec Single-staff polyphony
155 To typeset parallel pieces of music that have the same rhythm, they
156 can be combined into a single @code{Voice} context, thus forming
157 chords. To achieve this, enclose them in a simultaneous music
160 @lilypond[quote,relative=2,verbatim]
162 { e4 f8 d e16 f g8 d4 }
163 { c4 d8 b c16 d e8 b4 }
167 This method leads to strange beamings and warnings if the pieces of
168 music do not have the same rhythm. To typeset multiple, truly
169 independent voices in a single staff, the @code{<<@{...@} \\
170 @{...@}>>} construction can be used as a simplified method, where the
171 two (or more) voices are separated by double backslashes.
173 @lilypond[quote,relative=3,verbatim]
175 { r8 r16 g e8. f16 g8[ c,] f e16 d }
177 { d16 c d8~ d16 b c8~ c16 b c8~ c16 b8. }
181 First and third voices get stems up, second and fourth voices get
182 stems down, third and fourth voice note heads are horizontally shifted,
183 and rests move to avoid collisions. In the following example, the
184 intermediate voice has stems up, therefore we enter it in the third
185 place, so it becomes voice three which has the stems up as desired.
187 @lilypond[quote,relative=3,verbatim]
189 { r8 g g g g f16 es f8 d }
191 { es,8 r es r d r d r }
193 { d'8 s c s bes s a s }
197 Spacing rests are often used to avoid too many rests, as seen in the
200 Voices created by this simplified method are implicit @code{Voice}
201 contexts; in all but simplest works it is advised to create explicit
202 @code{Voice} contexts using the @code{\new} and @code{\context}
203 commands as it is explained in @rlearning{Contexts and engravers} and
204 @rlearning{Explicitly instantiating voices}.
206 This applies to a common case: each music expression in the
207 @code{<<@{...@} \\ @{...@}>>} construct is placed in a new voice,
208 distinct from the voice for single-voice music; to temporarily add
209 only one additional voice to an existing one, it is necessary to
210 instantiate that voice explicitly. When doing this, to force the
211 settings that would be implicitly made by the simplified method, the
212 @code{\voiceOne} ... @code{\voiceFour}, and @code{\oneVoice} commands
216 << @{ \voiceOne ... @} \new Voice @{ \voiceTwo ... @} >> \oneVoice
219 This construct keeps a voice alive throughout the polyphonic section.
220 For example, this allows lyrics to be assigned to one consistent voice.
222 @lilypond[quote, verbatim, relative=2]
224 \new Voice = "melody" {
239 \new Lyrics \lyricsto "melody" {
251 @funindex \voiceThree
261 @rlearning{Voices contain music},
262 @rlearning{Explicitly instantiating voices}.
265 @ref{Percussion staves}.
268 @rlsr{Simultaneous notes}.
272 @unnumberedsubsubsec Voice styles
275 @cindex styles, voice
276 @cindex coloring voices
278 Voices may be given distinct colors and shapes, allowing them to be
281 @lilypond[quote,relative=2,verbatim]
283 { \voiceOneStyle d4 c2 b4 }
285 { \voiceTwoStyle e,2 e }
287 { \voiceThreeStyle b2. c4 }
289 { \voiceFourStyle g'2 g }
293 To revert the standard presentation, the @code{\voiceNeutralstyle}
298 @funindex \voiceOneStyle
299 @code{\voiceOneStyle},
300 @funindex \voiceTwoStyle
301 @code{\voiceTwoStyle},
302 @funindex \voiceThreeStyle
303 @code{\voiceThreeStyle},
304 @funindex \voiceFourStyle
305 @code{\voiceFourStyle},
306 @funindex \voiceNeutralStyle
307 @code{\voiceNeutralStyle}.
312 @rlearning{I'm hearing Voices},
313 @rlearning{Other sources of information}.
316 @rlsr{Simultaneous notes}.
319 @node Collision resolution
320 @unnumberedsubsubsec Collision resolution
322 @cindex merging notes
323 @cindex note collisions
329 @cindex shift rest, automatic
331 Note heads with equal durations are automatically merged, while
332 note heads with unequal durations are not merged. Rests opposite
333 a stem are shifted vertically.
335 @lilypond[quote,verbatim,relative=2]
351 Note heads with different note heads may be merged, with the
352 exception of half-note heads and quarter-note heads:
354 @lilypond[quote,verbatim,relative=2]
357 \mergeDifferentlyHeadedOn
371 Note heads with different dots may be merged:
373 @lilypond[quote,relative=2,verbatim]
376 \mergeDifferentlyHeadedOn
377 \mergeDifferentlyDottedOn
393 The collision on the second measure happens because
394 @code{merge-differently-headed} cannot successfully complete the
395 merge when three or more notes line up in the same column -- in
396 fact, you will obtain a warning for this reason. To allow the
397 merge to work properly, apply a @code{\shift} to the note that
398 should not be merged. Here, @code{\shiftOn} is applied to move
399 the top @code{g} out of the column, and
400 @code{merge-differently-headed} works properly.
402 @lilypond[quote,relative=2,verbatim]
405 \mergeDifferentlyHeadedOn
406 \mergeDifferentlyDottedOn
422 The @code{\shiftOn}, @code{\shiftOnn}, and @code{\shiftOnnn}
423 commands specify the degree to which chords of the current voice
424 should be shifted. The outer voices (normally: voices one and
425 two) have @code{\shiftOff}, while the inner voices (three and
426 four) have @code{\shiftOn}. @code{\shiftOnn} and
427 @code{\shiftOnnn} define further shift levels.
429 Notes are only merged if they have opposing stem directions (i.e., in
430 @code{Voice} 1 and 2).
432 @cindex multiple voices
433 @cindex polyphonic music
434 @cindex shifting voices
438 @funindex \mergeDifferentlyDottedOn
439 @code{\mergeDifferentlyDottedOn},
440 @funindex \mergeDifferentlyDottedOff
441 @code{\mergeDifferentlyDottedOff},
442 @funindex \mergeDifferentlyHeadedOn
443 @code{\mergeDifferentlyHeadedOn},
444 @funindex \mergeDifferentlyHeadedOff
445 @code{\mergeDifferentlyHeadedOff}.
458 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
459 {additional-voices-to-avoid-collisions.ly}
461 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
462 {forcing-horizontal-shift-of-notes.ly}
470 @rlearning{Multiple notes at once},
471 @rlearning{Voices contain music},
472 @rlearning{Collisions of objects}.
475 @rlsr{Simultaneous notes}.
478 @rinternals{NoteColumn},
479 @rinternals{NoteCollision},
480 @rinternals{RestCollision}.
484 When using @code{merge-differently-headed} with an upstem eighth
485 or a shorter note, and a downstem half note, the eighth note stem
486 gets a slightly wrong offset because of the different width of the
487 half note head symbol.
489 @c investigate! Sometimes it works, sometimes not. --FV
490 The requirements for successfully merging different note heads that
491 are at the same time differently dotted are not clear.
493 There is no support for chords where the same note occurs with
494 different accidentals in the same chord. In this case, it is
495 recommended to use enharmonic transcription, or to use special
496 cluster notation (see @ref{Clusters}).
499 @node Automatic part combining
500 @unnumberedsubsubsec Automatic part combining
502 @cindex automatic part combining
503 @cindex part combiner
504 @cindex combining parts
505 @funindex \partcombine
507 Automatic part combining is used to merge two parts of music onto
508 a staff. It is aimed at typesetting orchestral scores. When the
509 two parts are identical for a period of time, only one is shown.
510 In places where the two parts differ, they are typeset as separate
511 voices, and stem directions are set automatically. Also, solo and
512 @notation{a due} parts are identified and marked by default.
514 The syntax for part combining is:
517 \partcombine @var{musicexpr1} @var{musicexpr2}
520 The following example demonstrates the basic functionality of the
521 part combiner: putting parts on one staff and setting stem
522 directions and polyphony. The same variables are used for the
523 independent parts and the combined staff.
525 @lilypond[quote,verbatim]
526 instrumentOne = \relative c' {
534 instrumentTwo = \relative g' {
543 \new Staff \instrumentOne
544 \new Staff \instrumentTwo
545 \new Staff \partcombine \instrumentOne \instrumentTwo
549 The notes in the third measure appear only once, although they
550 were specified in both parts. Stem, slur, and tie directions are
551 set automatically, depending whether there is a solo or unison.
552 When needed in polyphony situations, the first part (with context
553 called @code{one}) always gets up stems, while the second (called
554 @code{two}) always gets down stems. In solo situations, the parts
555 get marked with @q{Solo} and @q{Solo II}, respectively. The
556 unisono (@notation{a due}) parts are marked by default with the
559 Both arguments to @code{\partcombine} will be interpreted as
560 @code{Voice} contexts. If using relative octaves,
561 @code{\relative} should be specified for both music expressions,
566 \relative @dots{} @var{musicexpr1}
567 \relative @dots{} @var{musicexpr2}
571 A @code{\relative} section that is outside of @code{\partcombine}
572 has no effect on the pitches of @var{musicexpr1} and
577 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
578 {combining-two-parts-on-the-same-staff.ly}
580 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
581 {changing-partcombine-texts.ly}
593 @rlsr{Simultaneous notes}.
596 @rinternals{PartCombineMusic},
601 When @code{printPartCombineTexts} is set, if the two voices play
602 the same notes on and off, the part combiner may typeset @code{a2}
603 more than once in a measure.
605 @code{\partcombine} cannot be inside @code{\times}.
607 @code{\partcombine} cannot be inside @code{\relative}.
609 Internally, the @code{\partcombine} interprets both arguments as
610 @code{Voice}s named @code{one} and @code{two}, and then decides
611 when the parts can be combined. Consequently, if the arguments
612 switch to differently named @rinternals{Voice} contexts, the
613 events in those will be ignored.
615 @c IIRC in users list someone pointed out more issues. TODO: lookup FV
618 @node Writing music in parallel
619 @unnumberedsubsubsec Writing music in parallel
621 @cindex Writing music in parallel
622 @cindex Interleaved music
623 @funindex parallelMusic
625 Music for multiple parts can be interleaved in input code. The
626 function @code{\parallelMusic} accepts a list with the names of a
627 number of variables to be created, and a musical expression. The
628 content of alternate measures from the expression become the value
629 of the respective variables, so you can use them afterwards to
632 @warning{Bar checks @code{|} must be used, and the measures must
633 be of the same length.}
635 @lilypond[quote,verbatim]
636 \parallelMusic #'(voiceA voiceB voiceC) {
638 r8 g'16 c'' e'' g' c'' e'' r8 g'16 c'' e'' g' c'' e'' |
639 r16 e'8.~ e'4 r16 e'8.~ e'4 |
643 r8 a'16 d'' f'' a' d'' f'' r8 a'16 d'' f'' a' d'' f'' |
644 r16 d'8.~ d'4 r16 d'8.~ d'4 |
649 \new Staff << \voiceA \\ \voiceB >>
650 \new Staff { \clef bass \voiceC }
654 Relative mode may be used. Note that the @code{\relative} command
655 is not used inside @code{\parallelMusic} itself. The notes are
656 relative to the preceding note in the voice, not to the previous
657 note in the input -- in other words, relative notes for
658 @code{voiceA} ignore the notes in @code{voiceB}.
660 @lilypond[quote,verbatim]
661 \parallelMusic #'(voiceA voiceB voiceC) {
663 r8 g16 c e g, c e r8 g,16 c e g, c e |
664 r16 e8.~ e4 r16 e8.~ e4 |
668 r8 a,16 d f a, d f r8 a,16 d f a, d f |
669 r16 d8.~ d4 r16 d8.~ d4 |
674 \new Staff << \relative c'' \voiceA \\ \relative c' \voiceB >>
675 \new Staff \relative c' { \clef bass \voiceC }
679 This works quite well for piano music. This example maps four
680 consecutive measures to four variables:
682 @lilypond[quote,verbatim]
688 \parallelMusic #'(voiceA voiceB voiceC voiceD) {
692 c16 d e fis d e fis g |
698 e16 fis g a fis g a b |
709 \relative c'' \voiceA
729 @rlearning{Organizing pieces with variables}.
732 @rlsr{Simultaneous notes}.