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::
138 @node Single-staff polyphony
139 @unnumberedsubsubsec Single-staff polyphony
141 To typeset parallel pieces of music that have the same rhythm, they
142 can be combined into a single @code{Voice} context, thus forming
143 chords. To achieve this, enclose them in a simultaneous music
146 @lilypond[quote,relative=2,verbatim]
148 { e4 f8 d e16 f g8 d4 }
149 { c4 d8 b c16 d e8 b4 }
153 This method leads to strange beamings and warnings if the pieces of
154 music do not have the same rhythm. To typeset multiple, truly
155 independent voices in a single staff, the @code{<<@{...@} \\
156 @{...@}>>} construction is used, where the two (or more) voices are
157 separated by double backslashes.
159 @lilypond[quote,relative=3,verbatim]
161 { r8 r16 g e8. f16 g8[ c,] f e16 d }
163 { d16 c d8~ d16 b c8~ c16 b c8~ c16 b8. }
167 First and third voices get stems up, second and fourth voices get
168 stems down, third and fourth voice note heads are horizontally shifted,
169 and rests move to avoid collisions. In the following example, the
170 intermediate voice has stems up, therefore we enter it in the third
171 place, so it becomes voice three which has the stems up as desired.
173 @lilypond[quote,relative=3,verbatim]
175 { r8 g g g g f16 es f8 d }
177 { es,8 r es r d r d r }
179 { d'8 s c s bes s a s }
183 Spacing rests are often used to avoid too many rests, as seen in the
186 Each music expression in the @code{<<@{...@} \\ @{...@}>>} construct
187 is placed in a new voice, distinct from the voice for single-voice
188 music; to temporarily add only one additional voice to an existing
189 one, it is necessary to instantiate that voice explicitly. For
190 these purposes, the @code{\voiceOne} ... @code{\voiceFour}, and
191 @code{\oneVoice} commands can be used:
194 << @{ \voiceOne ... @} \new Voice @{ \voiceTwo ... @} >> \oneVoice
197 This is a better construct to keep the control of the voices, for
198 example, to ease a consistent assign of lyrics to the proper voice
207 @funindex \voiceThree
217 @rlearning{Voices contain music},
218 @rlearning{Explicitly instantiating voices}.
221 @ref{Percussion staves}.
224 @rlsr{Simultaneous notes}.
228 @unnumberedsubsubsec Voice styles
231 @cindex styles, voice
232 @cindex coloring voices
234 Voices may be given distinct colors and shapes, allowing them to be
237 @lilypond[quote,relative=2,verbatim]
239 { \voiceOneStyle d4 c2 b4 }
241 { \voiceTwoStyle e,2 e }
243 { \voiceThreeStyle b2. c4 }
245 { \voiceFourStyle g'2 g }
249 To revert the standard presentation, the @code{\voiceNeutralstyle}
254 @funindex \voiceOneStyle
255 @code{\voiceOneStyle},
256 @funindex \voiceTwoStyle
257 @code{\voiceTwoStyle},
258 @funindex \voiceThreeStyle
259 @code{\voiceThreeStyle},
260 @funindex \voiceFourStyle
261 @code{\voiceFourStyle},
262 @funindex \voiceNeutralStyle
263 @code{\voiceNeutralStyle}.
268 @rlearning{I'm hearing Voices},
269 @rlearning{Other sources of information}.
272 @rlsr{Simultaneous notes}.
275 @node Collision resolution
276 @unnumberedsubsubsec Collision resolution
278 @cindex merging notes
279 @cindex note collisions
285 @cindex shift rest, automatic
287 Note heads with equal durations are automatically merged, while
288 note heads with unequal durations are not merged. Rests opposite
289 a stem are shifted vertically.
291 @lilypond[quote,verbatim,relative=2]
307 Note heads with different note heads may be merged, with the
308 exception of half-note heads and quarter-note heads:
310 @lilypond[quote,verbatim,relative=2]
313 \mergeDifferentlyHeadedOn
327 Note heads with different dots may be merged:
329 @lilypond[quote,relative=2,verbatim]
332 \mergeDifferentlyHeadedOn
333 \mergeDifferentlyDottedOn
349 The collision on the second measure happens because
350 @code{merge-differently-headed} cannot successfully complete the
351 merge when three or more notes line up in the same column -- in
352 fact, you will obtain a warning for this reason. To allow the
353 merge to work properly, apply a @code{\shift} to the note that
354 should not be merged. Here, @code{\shiftOn} is applied to move
355 the top @code{g} out of the column, and
356 @code{merge-differently-headed} works properly.
358 @lilypond[quote,relative=2,verbatim]
361 \mergeDifferentlyHeadedOn
362 \mergeDifferentlyDottedOn
378 The @code{\shiftOn}, @code{\shiftOnn}, and @code{\shiftOnnn}
379 commands specify the degree to which chords of the current voice
380 should be shifted. The outer voices (normally: voices one and
381 two) have @code{\shiftOff}, while the inner voices (three and
382 four) have @code{\shiftOn}. @code{\shiftOnn} and
383 @code{\shiftOnnn} define further shift levels.
385 Notes are only merged if they have opposing stem directions (i.e., in
386 @code{Voice} 1 and 2).
388 @cindex multiple voices
389 @cindex polyphonic music
390 @cindex shifting voices
394 @funindex \mergeDifferentlyDottedOn
395 @code{\mergeDifferentlyDottedOn},
396 @funindex \mergeDifferentlyDottedOff
397 @code{\mergeDifferentlyDottedOff},
398 @funindex \mergeDifferentlyHeadedOn
399 @code{\mergeDifferentlyHeadedOn},
400 @funindex \mergeDifferentlyHeadedOff
401 @code{\mergeDifferentlyHeadedOff}.
414 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
415 {additional-voices-to-avoid-collisions.ly}
417 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
418 {forcing-horizontal-shift-of-notes.ly}
426 @rlearning{Multiple notes at once},
427 @rlearning{Voices contain music},
428 @rlearning{Collisions of objects}.
431 @rlsr{Simultaneous notes}.
434 @rinternals{NoteColumn},
435 @rinternals{NoteCollision},
436 @rinternals{RestCollision}.
440 When using @code{merge-differently-headed} with an upstem eighth
441 or a shorter note, and a downstem half note, the eighth note stem
442 gets a slightly wrong offset because of the different width of the
443 half note head symbol.
445 @c investigate! Sometimes it works, sometimes not. --FV
446 The requirements for successfully merging different note heads that
447 are at the same time differently dotted are not clear.
449 There is no support for chords where the same note occurs with
450 different accidentals in the same chord. In this case, it is
451 recommended to use enharmonic transcription, or to use special
452 cluster notation (see @ref{Clusters}).
455 @node Automatic part combining
456 @unnumberedsubsubsec Automatic part combining
458 @cindex automatic part combining
459 @cindex part combiner
460 @cindex combining parts
461 @funindex \partcombine
463 Automatic part combining is used to merge two parts of music onto
464 a staff. It is aimed at typesetting orchestral scores. When the
465 two parts are identical for a period of time, only one is shown.
466 In places where the two parts differ, they are typeset as separate
467 voices, and stem directions are set automatically. Also, solo and
468 @notation{a due} parts are identified and marked by default.
470 The syntax for part combining is:
473 \partcombine @var{musicexpr1} @var{musicexpr2}
476 The following example demonstrates the basic functionality of the
477 part combiner: putting parts on one staff and setting stem
478 directions and polyphony. The same variables are used for the
479 independent parts and the combined staff.
481 @lilypond[quote,verbatim]
482 instrumentOne = \relative c' {
490 instrumentTwo = \relative g' {
499 \new Staff \instrumentOne
500 \new Staff \instrumentTwo
501 \new Staff \partcombine \instrumentOne \instrumentTwo
505 The notes in the third measure appear only once, although they
506 were specified in both parts. Stem, slur, and tie directions are
507 set automatically, depending whether there is a solo or unison.
508 When needed in polyphony situations, the first part (with context
509 called @code{one}) always gets up stems, while the second (called
510 @code{two}) always gets down stems. In solo situations, the parts
511 get marked with @q{Solo} and @q{Solo II}, respectively. The
512 unisono (@notation{a due}) parts are marked by default with the
515 Both arguments to @code{\partcombine} will be interpreted as
516 @code{Voice} contexts. If using relative octaves,
517 @code{\relative} should be specified for both music expressions,
522 \relative @dots{} @var{musicexpr1}
523 \relative @dots{} @var{musicexpr2}
527 A @code{\relative} section that is outside of @code{\partcombine}
528 has no effect on the pitches of @var{musicexpr1} and
533 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
534 {combining-two-parts-on-the-same-staff.ly}
536 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
537 {changing-partcombine-texts.ly}
549 @rlsr{Simultaneous notes}.
552 @rinternals{PartCombineMusic},
557 When @code{printPartCombineTexts} is set, if the two voices play
558 the same notes on and off, the part combiner may typeset @code{a2}
559 more than once in a measure.
561 @code{\partcombine} cannot be inside @code{\times}.
563 @code{\partcombine} cannot be inside @code{\relative}.
565 Internally, the @code{\partcombine} interprets both arguments as
566 @code{Voice}s named @code{one} and @code{two}, and then decides
567 when the parts can be combined. Consequently, if the arguments
568 switch to differently named @rinternals{Voice} contexts, the
569 events in those will be ignored.
571 @c IIRC in users list someone pointed out more issues. TODO: lookup FV
574 @node Writing music in parallel
575 @unnumberedsubsubsec Writing music in parallel
577 @cindex Writing music in parallel
578 @cindex Interleaved music
579 @funindex parallelMusic
581 Music for multiple parts can be interleaved in input code. The
582 function @code{\parallelMusic} accepts a list with the names of a
583 number of variables to be created, and a musical expression. The
584 content of alternate measures from the expression become the value
585 of the respective variables, so you can use them afterwards to
588 @warning{Bar checks @code{|} must be used, and the measures must
589 be of the same length.}
591 @lilypond[quote,verbatim]
592 \parallelMusic #'(voiceA voiceB voiceC) {
594 r8 g'16 c'' e'' g' c'' e'' r8 g'16 c'' e'' g' c'' e'' |
595 r16 e'8.~ e'4 r16 e'8.~ e'4 |
599 r8 a'16 d'' f'' a' d'' f'' r8 a'16 d'' f'' a' d'' f'' |
600 r16 d'8.~ d'4 r16 d'8.~ d'4 |
605 \new Staff << \voiceA \\ \voiceB >>
606 \new Staff { \clef bass \voiceC }
610 Relative mode may be used. Note that the @code{\relative} command
611 is not used inside @code{\parallelMusic} itself. The notes are
612 relative to the preceding note in the voice, not to the previous
613 note in the input -- in other words, relative notes for
614 @code{voiceA} ignore the notes in @code{voiceB}.
616 @lilypond[quote,verbatim]
617 \parallelMusic #'(voiceA voiceB voiceC) {
619 r8 g16 c e g, c e r8 g,16 c e g, c e |
620 r16 e8.~ e4 r16 e8.~ e4 |
624 r8 a,16 d f a, d f r8 a,16 d f a, d f |
625 r16 d8.~ d4 r16 d8.~ d4 |
630 \new Staff << \relative c'' \voiceA \\ \relative c' \voiceB >>
631 \new Staff \relative c' { \clef bass \voiceC }
635 This works quite well for piano music. This example maps four
636 consecutive measures to four variables:
638 @lilypond[quote,verbatim]
644 \parallelMusic #'(voiceA voiceB voiceC voiceD) {
648 c16 d e fis d e fis g |
654 e16 fis g a fis g a b |
665 \relative c'' \voiceA
685 @rlearning{Organizing pieces with variables}.
688 @rlsr{Simultaneous notes}.