[ << Musical notation ] | [Top][Contents][Index] | [ Specialist notation >> ] |
[ < Merging rests ] | [ Up : Multiple voices ] | [ Writing music in parallel > ] |
Automatic part combining
Automatic part combining is used to merge two separate parts of music
onto a single staff. This can be especially helpful when typesetting
orchestral scores. A single Voice
is printed while the two parts
of music are the same, but in places where they differ, a second
Voice
is printed. Stem directions are set up & down accordingly
while Solo and a due parts are also identified and marked
appropriately.
The syntax for automatic part combining is:
\partCombine musicexpr1 musicexpr2
The following example demonstrates the basic functionality, putting parts on a single staff as polyphony and setting stem directions accordingly. The same variables are used for the independent parts and the combined staff.
instrumentOne = \relative { c'4 d e f | R1 | d'4 c b a | b4 g2 f4 | e1 | } instrumentTwo = \relative { R1 | g'4 a b c | d4 c b a | g4 f( e) d | e1 | } << \new Staff \instrumentOne \new Staff \instrumentTwo \new Staff \partCombine \instrumentOne \instrumentTwo >>
Both parts have identical notes in the third measure, so only one
instance of the notes is printed. Stem, slur, and tie directions are
set automatically, depending on whether the parts are playing solo or in
unison. When needed in polyphony situations, the first part (with
context called one
) gets “up” stems, while the second (called
two
) always gets “down” stems. In solo situations, the first
and second parts get marked with “Solo” and “Solo II”,
respectively. The unison (a due) parts are marked with the
text “a2”.
By default, the part combiner merges two notes of the same pitch as an
a due note, combines notes with the same
rhythm less than a ninth apart as chords and separates notes more than
a ninth apart (or when the voices cross) into
separate voices. This can be overridden with an optional argument of a pair
of numbers after the \partCombine
command: the first specifies
the interval where notes start to be combined (the default is zero) and the
second where the notes are split into separate voices. Setting the second
argument to zero means that the part combiner splits notes with an interval of
a second or more, setting it to one splits notes of a third or more, and so on.
instrumentOne = \relative { a4 b c d | e f g a | b c d e | } instrumentTwo = \relative { c'4 c c c | c c c c | c c c c | } << \new Staff \partCombine \instrumentOne \instrumentTwo \new Staff \partCombine #'(2 . 3) \instrumentOne \instrumentTwo >>
Both arguments to \partCombine
will be interpreted as separate
Voice
contexts, so if the music is being specified in relative
mode then both parts must contain a \relative
function,
i.e.,
\partCombine \relative … musicexpr1 \relative … musicexpr2
A \relative
section that encloses a \partCombine
has no
effect on the pitches of musicexpr1
or
musicexpr2
.
In professional scores, voices are often kept apart from each other for
long passages of music even if some of the notes are the same in both
voices, and could just as easily be printed as unison. Combining notes
into a chord, or showing one voice as solo is, therefore, not ideal as
the \partCombine
function considers each note separately. In this
case the \partCombine
function can be overridden with one of the
following commands. All of the commands may be preceded with
\once
in order to have them only apply to the next note in
the music expression.
-
\partCombineApart
keeps the notes as two separate voices, even if they can be combined into a chord or unison. -
\partCombineChords
combines the notes into a chord. -
\partCombineUnisono
combines both voices as “unison”. -
\partCombineSoloI
prints only voice one, and marks it as a “Solo”. -
\partCombineSoloII
prints only voice two and marks it as a “Solo”. -
\partCombineAutomatic
ends the functions of the commands above, and reverts back to the standard\partCombine
functionality.
instrumentOne = \relative c' { \partCombineApart c2^"apart" e | \partCombineAutomatic e2^"auto" e | \partCombineChords e'2^"chord" e | \partCombineAutomatic c2^"auto" c | \partCombineApart c2^"apart" \once \partCombineChords e^"chord once" | c2 c | } instrumentTwo = \relative { c'2 c | e2 e | a,2 c | c2 c' | c2 c | c2 c | } << \new Staff { \instrumentOne } \new Staff { \instrumentTwo } \new Staff { \partCombine \instrumentOne \instrumentTwo } >>
Using \partCombine
with lyrics
The \partCombine
command is not designed to work with
lyrics; if one of the voices is explicitly named in order to
attach lyrics to it, the part combiner will stop working. However,
this effect can be achieved using a NullVoice
context. See
Polyphony with shared lyrics.
Selected Snippets
Combining two parts on the same staff
The part combiner tool (i.e., the \partCombine
command) allows
the combination of several different parts on the same staff. Text
directions such as “solo” or “a2” are added by default; to remove
them, simply set the property printPartCombineTexts
to
#f
.
For vocal scores (hymns), there is no need to add “solo/a2” texts, so they should be switched off. However, it might be better not to use them if there are any solos, as they won’t be indicated. In such cases, standard polyphonic notation may be preferable.
This snippet presents the three ways two parts can be printed on a same
staff: standard polyphony, \partCombine
without texts, and
\partCombine
with texts.
musicUp = \relative c'' { \time 4/4 a4 c4.( g8) a4 | g4 e' g,( a8 b) | c b a2. } musicDown = \relative c'' { g4 e4.( d8) c4 | r2 g'4( f8 e) | d2 \stemDown a } \score { << \new Staff \with { instrumentName = "standard polyphony" } << \musicUp \\ \musicDown >> \new Staff \with { instrumentName = \markup { \typewriter "\\partCombine" without text} printPartCombineTexts = ##f } \partCombine \musicUp \musicDown \new Staff \with { instrumentName = \markup { \typewriter "\\partCombine" with text} } \partCombine \musicUp \musicDown >> \layout { indent = 6.0\cm \context { \Score % Setting this to a large value avoids a bar line at the % beginning that would connect the three staves otherwise. \override SystemStartBar.collapse-height = 30 } } }
Changing \partCombine texts
When using the automatic part combining feature, the printed text for the solo and unison sections may be changed.
\new Staff << \set Staff.soloText = "girl" \set Staff.soloIIText = "boy" \set Staff.aDueText = "together" \partCombine \relative c'' { g4 g r r a2 g } \relative c'' { r4 r a( b) a2 g } >>
See also
Notation Reference: Writing parts.
Snippets: Simultaneous notes.
Internals Reference: PartCombineMusic, Voice.
Known issues and warnings
All \partCombine…
functions can only accept two voices.
\partCombine…
functions cannot be placed inside a \tuplet
or \relative
block.
If printPartCombineTexts
is set and the two voices play the same
notes “on and off”, in the same measure, the part combiner may
typeset a2
more than once in that measure.
\partCombine
only knows when a note starts in a Voice
; it
cannot, for example, remember if a note in one Voice
has already
started when combining notes that have just started in the other
Voice
. This can lead to a number of unexpected issues including
“Solo” or “Unison” marks being printed incorrectly.
\partCombine
keeps all spanners (slurs, ties, hairpins, etc.) in
the same Voice
so that if any such spanners start or end in a
different Voice
, they may not be printed properly or at all.
If the \partCombine
function cannot combine both music
expressions (i.e., when both voices have different durations), it will
give the voices, internally, its own custom names: one
and
two
respectively. This means if there is any “switch” to a
differently named Voice
context, the events in that differently
named Voice
will be ignored.
Refer also to Known issues and warnings when using
\partCombine
with tablature in Default tablatures and the
Note in Automatic beams when using automatic beaming.
[ << Musical notation ] | [Top][Contents][Index] | [ Specialist notation >> ] |
[ < Merging rests ] | [ Up : Multiple voices ] | [ Writing music in parallel > ] |