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.
11 @node Simultaneous notes
12 @section Simultaneous notes
14 @lilypondfile[quote]{simultaneous-headword.ly}
16 Polyphony in music refers to having more than one voice occurring
17 in a piece of music. Polyphony in LilyPond refers to having more
18 than one voice on the same staff.
27 @subsection Single voice
29 This section discusses simultaneous notes inside the same voice.
37 @unnumberedsubsubsec Chorded notes
40 @cindex brackets, angle
45 A chord is formed by a enclosing a set of pitches between @code{<} and
46 @code{>}. A chord may be followed by a duration and/or a set of
47 articulations, just like simple notes:
49 @lilypond[verbatim,quote,relative=1]
50 <c e g>2 <c f a>4-> <e g c>-.
53 For more information about chords, see @ref{Chord notation}.
61 @rlearning{Combining notes into chords}.
67 @rlsr{Simultaneous notes}.
72 For some reason, music expressions like @code{<< @{ g8 e8 @} a4 >>}
73 that should automatically turn into chords, appear split in two
74 staves. To avoid this, use explicit chords instead as in
79 @unnumberedsubsubsec Clusters
82 @funindex \makeClusters
84 A cluster indicates a continuous range of pitches to be played. They
85 can be denoted as the envelope of a set of notes. They are entered by
86 applying the function @code{\makeClusters} to a sequence of chords,
89 @lilypond[quote,relative=2,verbatim]
90 \makeClusters { <g b>2 <c g'> }
93 Ordinary notes and clusters can be put together in the same staff,
94 even simultaneously. In such a case no attempt is made to
95 automatically avoid collisions between ordinary notes and clusters.
103 @rlsr{Simultaneous notes}.
106 @rinternals{ClusterSpanner},
107 @rinternals{ClusterSpannerBeacon},
108 @rinternals{Cluster_spanner_engraver}.
112 Clusters look good only if they span at least two chords; otherwise
113 they appear too narrow.
115 Clusters do not have a stem and cannot indicate durations by
116 themselves. Separate clusters would need a separating rest between
119 @node Multiple voices
120 @subsection Multiple voices
122 This section discusses simultaneous notes in multiple voices or
126 * Single-staff polyphony::
128 * Collision resolution::
129 * Automatic part combining::
130 * Writing music in parallel::
133 @node Single-staff polyphony
134 @unnumberedsubsubsec Single-staff polyphony
136 To typeset parallel pieces of music that have the same rhythm, they
137 can be combined into a single @code{Voice} context, thus forming
138 chords. To achieve this, enclose them in a simultaneous music
141 @lilypond[quote,relative=2,verbatim]
143 { e4 f8 d e16 f g8 d4 }
144 { c4 d8 b c16 d e8 b4 }
148 This method leads to strange beamings and warnings if the pieces of
149 music do not have the same rhythm. To typeset multiple, truly
150 independent voices in a single staff, the @code{<<@{...@} \\
151 @{...@}>>} construction is used, where the two (or more) voices are
152 separated by double backslashes.
154 @lilypond[quote,relative=3,verbatim]
156 { r8 r16 g e8. f16 g8[ c,] f e16 d }
158 { d16 c d8~ d16 b c8~ c16 b c8~ c16 b8. }
162 First and third voices get stems up, second and fourth voices get
163 stems down, third and fourth voice noteheads are horizontally shifted,
164 and rests move to avoid collisions.
166 @lilypond[quote,relative=3,verbatim]
168 { r8 g g g g f16 es f8 d }
170 { es,8 r es r d r d r }
172 { d'8 s c s bes s a s }
176 For these purposes, the @code{\voiceOne} ... @code{\voiceFour}
177 commands can be used instead. Spacing rests are often used to avoid
178 too many rests, as seen in the example avobe.
186 @funindex \voiceThree
195 @rlearning{Voices contain music}.
198 @rlsr{Simultaneous notes}.
202 @unnumberedsubsubsec Voice styles
205 @cindex styles, voice
206 @cindex coloring voices
208 Voices may be given distinct colors and shapes, allowing them to be
211 @lilypond[quote,relative=2,verbatim]
213 { \voiceOneStyle d4 c2 b4 }
215 { \voiceTwoStyle e,2 e }
217 { \voiceThreeStyle b2. c4 }
219 { \voiceFourStyle g'2 g }
223 To revert the standard presentation, the @code{\voiceNeutralstyle}
226 These styles are arbitrarily defined but can be changed. For example,
227 the initial definition for @code{\voiceOneStyle} is as follows:
231 \override NoteHead #'style = #'diamond
232 \override NoteHead #'color = #red
233 \override Stem #'color = #red
234 \override Beam #'color = #red
241 @funindex \voiceOneStyle
242 @code{\voiceOneStyle},
243 @funindex \voiceTwoStyle
244 @code{\voiceTwoStyle},
245 @funindex \voiceThreeStyle
246 @code{\voiceThreeStyle},
247 @funindex \voiceFourStyle
248 @code{\voiceFourStyle},
249 @funindex \voiceNeutralStyle
250 @code{\voiceNeutralStyle}.
255 @rlearning{I'm hearing Voices},
256 @rlearning{Other sources of information}.
259 @rlsr{Simultaneous notes}.
261 @node Collision resolution
262 @unnumberedsubsubsec Collision resolution
264 @cindex merging notes
265 @cindex note collisions
271 @cindex shift rest, automatic
273 Note heads with equal durations are automatically merged, while
274 note heads with unequal durations are not merged. Rests opposite
275 a stem are shifted vertically.
277 @lilypond[quote,verbatim,relative=2]
293 Note heads with different note heads may be merged, with the
294 exception of half-note heads and quarter-note heads:
296 @lilypond[quote,verbatim,relative=2]
299 \mergeDifferentlyHeadedOn
313 Note heads with different dots may be merged:
315 @lilypond[quote,relative=2,verbatim]
318 \mergeDifferentlyHeadedOn
319 \mergeDifferentlyDottedOn
335 The collision on the second measure happens because
336 @code{merge-differently-headed} cannot successfully complete the
337 merge when three or more notes line up in the same column -- in
338 fact, you will obtain a warning for this reason. To allow the
339 merge to work properly, apply a @code{\shift} to the note that
340 should not be merged. Here, @code{\shiftOn} is applied to move
341 the top @code{g} out of the column, and
342 @code{merge-differently-headed} works properly.
344 @lilypond[quote,relative=2,verbatim]
347 \mergeDifferentlyHeadedOn
348 \mergeDifferentlyDottedOn
364 The @code{\shiftOn}, @code{\shiftOnn}, and @code{\shiftOnnn}
365 commands specify the degree to which chords of the current voice
366 should be shifted. The outer voices (normally: voices one and
367 two) have @code{\shiftOff}, while the inner voices (three and
368 four) have @code{\shiftOn}. @code{\shiftOnn} and
369 @code{\shiftOnnn} define further shift levels.
371 Notes are only merged if they have opposing stem directions (i.e., in
372 @code{Voice} 1 and 2).
375 @cindex multiple voices
376 @cindex polyphonic music
377 @cindex shifting voices
381 @funindex \mergeDifferentlyDottedOn
382 @code{\mergeDifferentlyDottedOn},
383 @funindex \mergeDifferentlyDottedOff
384 @code{\mergeDifferentlyDottedOff},
385 @funindex \mergeDifferentlyHeadedOn
386 @code{\mergeDifferentlyHeadedOn},
387 @funindex \mergeDifferentlyHeadedOff
388 @code{\mergeDifferentlyHeadedOff}.
405 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
406 {additional-voices-to-avoid-collisions.ly}
408 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
409 {forcing-horizontal-shift-of-notes.ly}
417 @rlearning{Multiple notes at once},
418 @rlearning{Voices contain music},
419 @rlearning{Collisions of objects}.
422 @rlsr{Simultaneous notes}.
425 @rinternals{NoteColumn},
426 @rinternals{NoteCollision},
427 @rinternals{RestCollision}.
432 When using @code{merge-differently-headed} with an upstem eighth
433 or a shorter note, and a downstem half note, the eighth note stem
434 gets a slightly wrong offset because of the different width of the
435 half note head symbol.
437 @c investigate! Sometimes it works, sometimes not. --FV
438 It is not clear in which circumpstances you can succesfully merge
439 different note heads that are at the same time differently dotted.
441 There is no support for chords where the same note occurs with
442 different accidentals in the same chord. In this case, it is
443 recommended to use enharmonic transcription, or to use special
444 cluster notation (see @ref{Clusters}).
447 @node Automatic part combining
448 @unnumberedsubsubsec Automatic part combining
450 @cindex automatic part combining
451 @cindex part combiner
452 @cindex combining parts
453 @funindex \partcombine
455 Automatic part combining is used to merge two parts of music onto
456 a staff. It is aimed at typesetting orchestral scores. When the
457 two parts are identical for a period of time, only one is shown.
458 In places where the two parts differ, they are typeset as separate
459 voices, and stem directions are set automatically. Also, solo and
460 @notation{a due} parts are identified and marked by default.
462 The syntax for part combining is:
465 \partcombine @var{musicexpr1} @var{musicexpr2}
468 The following example demonstrates the basic functionality of the
469 part combiner: putting parts on one staff and setting stem
470 directions and polyphony. The same variables are used for the
471 independent parts and the combined staff.
473 @lilypond[quote,verbatim]
474 instrumentOne = \relative c' {
482 instrumentTwo = \relative g' {
491 \new Staff \instrumentOne
492 \new Staff \instrumentTwo
493 \new Staff \partcombine \instrumentOne \instrumentTwo
497 The notes in the third measure appear only once, although they
498 were specified in both parts. Stem, slur, and tie directions are
499 set automatically, depending whether there is a solo or unison.
500 When needed in polyphony situations, the first part (with context
501 called @code{one}) always gets up stems, while the second (called
502 @code{two}) always gets down stems. In solo situations, the parts
503 get marked with @q{Solo} and @q{Solo II}, respectively. The
504 unisono (@notation{a due}) parts are marked by default with the
507 Both arguments to @code{\partcombine} will be interpreted as
508 @code{Voice} contexts. If using relative octaves,
509 @code{\relative} should be specified for both music expressions,
514 \relative @dots{} @var{musicexpr1}
515 \relative @dots{} @var{musicexpr2}
519 A @code{\relative} section that is outside of @code{\partcombine}
520 has no effect on the pitches of @var{musicexpr1} and
525 Parts may be merged without printing text:
527 @lilypond[quote,verbatim]
529 \set Staff.printPartCombineTexts = ##f
531 \relative g' { g a( b) r }
532 \relative g' { g r4 r f }
536 The printed text may be changed:
538 @lilypond[quote,verbatim]
540 \set Score.soloText = #"girl"
541 \set Score.soloIIText = #"boy"
542 \set Score.aDueText = #"together"
544 \relative g' { g4 g r r a2 g }
545 \relative g' { r4 r a( b) a2 g }
560 @rlsr{Simultaneous notes}.
564 @rinternals{PartCombineMusic},
569 When @code{printPartCombineTexts} is set, if the two voices play
570 the same notes on and off, the part combiner may typeset @code{a2}
571 more than once in a measure.
573 @code{\partcombine} cannot be inside @code{\times}.
575 @code{\partcombine} cannot be inside @code{\relative}.
577 Internally, the @code{\partcombine} interprets both arguments as
578 @code{Voice}s named @code{one} and @code{two}, and then decides
579 when the parts can be combined. Consequently, if the arguments
580 switch to differently named @rinternals{Voice} contexts, the
581 events in those will be ignored.
583 @c IIRC in users list someone pointed out more issues. TODO: lookup FV
585 @node Writing music in parallel
586 @unnumberedsubsubsec Writing music in parallel
588 @cindex Writing music in parallel
589 @cindex Interleaved music
590 @funindex parallelMusic
592 Music for multiple parts can be interleaved in input code. The
593 function @code{\parallelMusic} accepts a list with the names of a
594 number of variables to be created, and a musical expression. The
595 content of alternate measures from the expression become the value
596 of the respective variables, so you can use them afterwards to
599 @warning{Bar checks @code{|} must be used, and the measures must
600 be of the same length.}
602 @lilypond[quote,verbatim]
603 \parallelMusic #'(voiceA voiceB voiceC) {
605 r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
607 r16 e'8.~ e'4 r16 e'8.~ e'4 |
609 r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
611 r16 d'8.~ d'4 r16 d'8.~ d'4 |
614 \new Staff << \voiceA \\ \voiceC >>
615 \new Staff { \clef bass \voiceB }
619 Relative mode may be used. Note that the @code{\relative} command
620 is not used inside @code{\parallelMusic} itself. The notes are
621 relative to the preceding note in the voice, not to the previous
622 note in the input -- in other words, relative notes for
623 @code{voiceA} ignore the notes in @code{voiceB}.
625 @lilypond[quote,verbatim]
626 \parallelMusic #'(voiceA voiceB voiceC) {
628 r8 g16 c e g, c e r8 g,16 c e g, c e |
630 r16 e8.~ e4 r16 e8.~ e4 |
633 r8 a,16 d f a, d f r8 a,16 d f a, d f |
635 r16 d8.~ d4 r16 d8.~ d4 |
638 \new Staff << \relative c'' \voiceA \\ \relative c' \voiceC >>
639 \new Staff \relative c' { \clef bass \voiceB }
643 This works quite well for piano music. This example maps four
644 consecutive measures to four variables:
646 @lilypond[quote,verbatim]
652 \parallelMusic #'(voiceA voiceB voiceC voiceD) {
656 c16 d e fis d e fis g |
662 e16 fis g a fis g a b |
673 \relative c'' \voiceA
693 @rlearning{Organizing pieces with variables}.
696 @rlsr{Simultaneous notes}.