]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/simultaneous.itely
Merge branch 'master' of git://git.sv.gnu.org/lilypond.git into td-lily
[lilypond.git] / Documentation / user / simultaneous.itely
index dc041d03e9e7b04a35097a64146a6132ecf16559..0b9b14c57648869eecc48f0456b5ef4db6c89c29 100644 (file)
@@ -1,11 +1,21 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
+
+@c \version "2.11.38"
 
 @node Simultaneous notes
 @section Simultaneous notes
 
-Polyphony in music refers to having more than one voice occurring in
-a piece of music.  Polyphony in LilyPond refers to having more than
-one voice on the same staff.
+@lilypondfile[quote]{simultaneous-headword.ly}
+
+Polyphony in music refers to having more than one voice occurring
+in a piece of music.  Polyphony in LilyPond refers to having more
+than one voice on the same staff.
 
 @menu
 * Single voice::                
@@ -16,261 +26,112 @@ one voice on the same staff.
 @node Single voice
 @subsection Single voice
 
-@anchor{Chords}
-@unnumberedsubsubsec Chords
+@menu
+* Chorded notes::                      
+* Clusters::                    
+@end menu
+
+@node Chorded notes
+@subsubsection Chorded notes
 
-@cindex Chords
+@cindex chords
+@cindex brackets, angle
+@funindex <
+@funindex >
+@funindex <...>
 
-A chord is formed by a enclosing a set of pitches between @code{<}
-and @code{>}.  A chord may be followed by a duration, and a set of
-articulations, just like simple notes
+A chord is formed by a enclosing a set of pitches between @code{<} and
+@code{>}.  A chord may be followed by a duration and/or a set of
+articulations, just like simple notes:
 
 @lilypond[verbatim,ragged-right,fragment,quote,relative=1]
-<c e g>4 <c>8
+<c e g>1 <c e g>->
 @end lilypond
 
-For more information about chords, see @ref{Introducing chord names}.
-
+For more information about chords, see @ref{Modern chords}.
 
-@anchor{Clusters}
-@unnumberedsubsubsec Clusters
-
-@cindex cluster
-
-A cluster indicates a continuous range of pitches to be played.  They
-can be denoted as the envelope of a set of notes.  They are entered by
-applying the function @code{makeClusters} to a sequence of
-chords, e.g.,
-@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
-\makeClusters { <c e > <b f'> }
-@end lilypond
+@seealso
 
-Ordinary notes and clusters can be put together in the same staff,
-even simultaneously.  In such a case no attempt is made to
-automatically avoid collisions between ordinary notes and clusters.
+Music Glossary:
+@rglos{chord}.
 
-@seealso
+Learning Manual:
+@rlearning{Combining notes into chords}.
 
-Program reference: @internalsref{ClusterSpanner},
-@internalsref{ClusterSpannerBeacon},
-@internalsref{Cluster_spanner_engraver}.
+Notation Reference:
+@ref{Modern chords}.
 
-Examples: @lsr{contemporary,cluster@/.ly}.
+Snippets:
+@lsrdir{Simultaneous,Simultaneous-notes}.
 
-@refbugs
+@knownissues
 
 Music expressions like @code{<< @{ g8 e8 @} a4 >>} are not printed
 accurately.  Use @code{<g a>8 <e a>8} instead.
 
 
+@node Clusters
+@subsubsection Clusters
 
-@node Multiple voices
-@subsection Multiple voices
-
-@anchor{Basic polyphony}
-@unnumberedsubsubsec Basic polyphony
-
-@cindex polyphony
-
-The easiest way to enter fragments with more than one voice on a staff
-is to enter each voice as a sequence (with @code{@{...@}}), and combine
-them simultaneously, separating the voices with @code{\\}
-
-@funindex \\
+@cindex cluster
+@funindex \makeClusters
 
-@lilypond[quote,verbatim,fragment]
-\new Staff \relative c' {
-  c16 d e f
-  <<
-    { g4 f e | d2 e2 } \\
-    { r8 e4 d c8 ~ | c b16 a b8 g ~ g2 } \\
-    { s2. | s4 b4 c2 }
-  >>
-}
-@end lilypond
+A cluster indicates a continuous range of pitches to be played.  They
+can be denoted as the envelope of a set of notes.  They are entered by
+applying the function @code{\makeClusters} to a sequence of chords,
+e.g.,
 
-The separator causes @internalsref{Voice} contexts@footnote{Polyphonic
-voices are sometimes called @q{layers} in other notation packages}
-@cindex layers
-to be instantiated.  They bear the names @code{"1"}, @code{"2"}, etc.  In
-each of these contexts, vertical direction of slurs, stems, etc., is set
-appropriately.
-
-These voices are all separate from the voice that contains the notes just
-outside the @code{<< \\ >>} construct.  This should be noted when making
-changes at the voice level.  This also means that slurs and ties cannot go
-into or out of a @code{<< \\ >>} construct.  Conversely, parallel voices
-from separate @code{<< \\ >>} constructs on the same staff are the
-same voice.  Here is the same example, with different noteheads and
-colors for each
-voice.  Note that the change to the note-head style in the main voice does
-not affect
-the inside of the @code{<< \\ >>} constructs.  Also, the change to the
-second
-voice in the first @code{<< \\ >>} construct is effective in the second
-@code{<< \\ >>}, and the voice is tied across the two constructs.
-
-@cindex note heads, styles
-
-@lilypond[quote,verbatim,fragment]
-\new Staff \relative c' {
-  \override NoteHead #'style = #'cross
-  \override NoteHead #'color = #red
-  c16 d e f
-  <<
-    { g4 f e } \\
-    { \override NoteHead #'style = #'triangle
-      \override NoteHead #'color = #blue
-    r8 e4 d c8 ~ }
-  >> |
-  <<
-    { d2 e2 } \\
-    { c8 b16 a b8 g ~ g2 } \\
-    { \override NoteHead #'style = #'slash 
-      \override NoteHead #'color = #green
-      s4 b4 c2 }
-  >>
-}
+@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
+\makeClusters { <g b>2 <c g'> }
 @end lilypond
 
-Polyphony does not change the relationship of notes within a
-@code{\relative @{ @}} block.  Each note is calculated relative
-to the note immediately preceding it.
-
-@example
-\relative @{ noteA << noteB \\ noteC >> noteD @}
-@end example
-
-@code{noteC} is relative to @code{noteB}, not @code{noteA};
-@code{noteD} is relative to @code{noteC}, not @code{noteB} or
-@code{noteA}.
-
+Ordinary notes and clusters can be put together in the same staff,
+even simultaneously.  In such a case no attempt is made to
+automatically avoid collisions between ordinary notes and clusters.
 
-@anchor{Explicitly instantiating voices}
-@unnumberedsubsubsec Explicitly instantiating voices
+@seealso
 
-@internalsref{Voice} contexts can also be instantiated manually
-inside a @code{<< >>} block to create polyphonic music, using
-@code{\voiceOne}, up to @code{\voiceFour} to assign stem directions
-and a horizontal shift for each part.
+Music Glossary:
+@rglos{cluster}.
 
-Specifically,
-@example
-<< \upper \\ \lower >>
-@end example
+Snippets:
+@lsrdir{Simultaneous,Simultaneous-notes}.
 
-@noindent
-is equivalent to
-
-@example
-<<
-  \new Voice = "1" @{ \voiceOne \upper @}
-  \new Voice = "2" @{ \voiceTwo \lower @}
->>
-@end example
+Internals Reference:
+@internalsref{ClusterSpanner},
+@internalsref{ClusterSpannerBeacon},
+@internalsref{Cluster_spanner_engraver}.
 
-The @code{\voiceXXX} commands set the direction of stems, slurs, ties,
-articulations, text annotations, augmentation dots of dotted
-notes, and fingerings.  @code{\voiceOne} and @code{\voiceThree} make
-these objects point upwards, while @code{\voiceTwo} and @code{\voiceFour}
-make them point downwards.
-The command @code{\oneVoice} will revert back to the normal setting.
-
-An expression that appears directly inside a @code{<< >>} belongs to
-the main voice.  This is useful when extra voices appear while the main
-voice is playing.  Here is a more correct rendition of the example from
-the previous section.  The crossed colored noteheads demonstrate that the main
-melody is now in a single voice context.
-
-@lilypond[quote,ragged-right,verbatim]
-\new Staff \relative c' {
-  \override NoteHead #'style = #'cross
-  \override NoteHead #'color = #red
-  c16 d e f
-  \voiceOne
-  <<
-    { g4 f e | d2 e2 }
-    \new Voice="1" { \voiceTwo
-      r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
-      \oneVoice
-    }
-    \new Voice { \voiceThree
-      s2. | s4 b4 c2
-      \oneVoice
-    }
-  >>
-  \oneVoice
-}
-@end lilypond
+@c Examples: @lsr{contemporary,cluster@/.ly}.
 
-The correct definition of the voices allows the melody to be slurred.
-@lilypond[quote,ragged-right,verbatim]
-\new Staff \relative c' {
-  c16^( d e f
-  \voiceOne
-  <<
-    { g4 f e | d2 e2) }
-    \context Voice="1" { \voiceTwo
-      r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
-      \oneVoice
-    }
-    \new Voice { \voiceThree
-      s2. s4 b4 c2
-      \oneVoice
-    }
-  >>
-  \oneVoice
-}
-@end lilypond
+@knownissues
 
-Avoiding the @code{\\} separator also allows nesting polyphony
-constructs, which in some case might be a more natural way to typeset
-the music.
-
-@lilypond[quote,ragged-right,verbatim]
-\new Staff \relative c' {
-  c16^( d e f
-  \voiceOne
-  <<
-    { g4 f e | d2 e2) }
-    \context Voice="1" { \voiceTwo
-      r8 e4 d c8 ~ |
-      <<
-        {c8 b16 a b8 g ~ g2}
-        \new Voice { \voiceThree
-          s4 b4 c2
-          \oneVoice
-        }
-      >>
-    \oneVoice
-    }
-  >>
-  \oneVoice
-}
-@end lilypond
+Clusters only look good if they span at least two chords; otherwise
+they appear too narrow.
 
-In some instances of complex polyphonic music, you may need additional
-voices to avoid collisions between notes.  Additional voices are added
-by defining an identifier, as shown below:
+Clusters do not have a stem and can not indicate durations by
+themselves.  Separate clusters would need a separating rest between
+them.
 
-@lilypond[quote,verbatim,ragged-right,relative=2]
-voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)
+@node Multiple voices
+@subsection Multiple voices
 
-\relative c''' <<
-  { \voiceOne g4 ~  \stemDown g32[ f( es d c b a b64 )g] } \\
-  { \voiceThree  b4} \\
-  { \voiceFive d,} \\
-  { \voiceTwo g,}
->>
-@end lilypond
+@menu
+* Collision resolution::        
+* Automatic part combining::    
+* Writing music in parallel::   
+@end menu
 
+@node Collision resolution
+@subsubsection Collision resolution
 
-@anchor{Collision Resolution}
-@unnumberedsubsubsec Collision Resolution
+@cindex merging notes
+@cindex note collisions
 
-Normally, note heads with a different number of dots are not merged, but
-when the object property @code{merge-differently-dotted} is set in
-the @internalsref{NoteCollision} object, they are merged:
+Normally, note heads with a different number of dots are not
+merged, but when the object property
+@code{merge-differently-dotted} is set in the
+@internalsref{NoteCollision} object, they are merged:
 
 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
 \new Voice << {
@@ -281,8 +142,8 @@ the @internalsref{NoteCollision} object, they are merged:
 } \\ { g8.[ f16] g8.[ f16] } >>
 @end lilypond
 
-Similarly, you can merge half note heads with eighth notes, by setting
-@code{merge-differently-headed}:
+Similarly, you can merge half note heads with eighth notes, by
+setting @code{merge-differently-headed}:
 
 @lilypond[quote,ragged-right,fragment,relative=2,verbatim]
 \new Voice << {
@@ -293,8 +154,9 @@ c8 c4. } \\ { c2 c2 } >>
 @end lilypond
 
 @noindent
-@code{merge-differently-headed} and @code{merge-differently-dotted}
-only apply to opposing stem directions (ie. Voice 1 & 2).
+@code{merge-differently-headed} and
+@code{merge-differently-dotted} only apply to opposing stem
+directions (i.e. Voice 1 & 2).
 
 LilyPond also vertically shifts rests that are opposite of a stem,
 for example
@@ -303,15 +165,17 @@ for example
 \new Voice << c''4 \\ r4 >>
 @end lilypond
 
+@cindex shift note
+
 If three or more notes line up in the same column,
-@code{merge-differently-headed} cannot
-successfully complete the merge of the two notes that should be merged.
-To allow the merge to work properly, apply a @code{\shift} to the note that
-should not be merged.  In the first measure of following example,
-@code{merge-differently-headed} does not work (the half-note head is
-solid).  In the second measure, @code{\shiftOn} is applied to move the
-top @code{g} out of the column, and @code{merge-differently-headed}
-works properly.
+@code{merge-differently-headed} cannot successfully complete the
+merge of the two notes that should be merged.  To allow the merge
+to work properly, apply a @code{\shift} to the note that should
+not be merged.  In the first measure of following example,
+@code{merge-differently-headed} does not work (the half-note head
+is solid).  In the second measure, @code{\shiftOn} is applied to
+move the top @code{g} out of the column, and
+@code{merge-differently-headed} works properly.
 
 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
 \override Staff.NoteCollision #'merge-differently-headed = ##t
@@ -327,8 +191,28 @@ works properly.
 >>
 @end lilypond
 
+@cindex multiple voices
+@cindex polyphonic music
+@cindex shifting voices
+
+In some instances of complex polyphonic music, you may need
+additional voices to avoid collisions between notes.  Additional
+voices are added by defining an variable, as shown below:
+
+@lilypond[quote,verbatim,ragged-right,relative=2]
+voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)
+
+\relative c''' <<
+  { \voiceOne g4 ~  \stemDown g32[ f( es d c b a b64 )g] } \\
+  { \voiceThree  b4} \\
+  { \voiceFive d,} \\
+  { \voiceTwo g,}
+>>
+@end lilypond
+
+
 
-@refcommands
+@predefined
 
 @funindex \oneVoice
 @code{\oneVoice},
@@ -341,6 +225,19 @@ works properly.
 @funindex \voiceFour
 @code{\voiceFour}.
 
+@funindex \voiceNeutralStyle
+@funindex \voiceOneStyle
+@funindex \voiceTwoStyle
+@funindex \voiceThreeStyle
+@funindex \voiceFourStyle
+@example
+\voiceNeutralStyle
+\voiceOneStyle
+\voiceTwoStyle
+\voiceThreeStyle
+\voiceFourStyle
+@end example
+
 @funindex \shiftOn
 @code{\shiftOn},
 @funindex \shiftOnn
@@ -348,16 +245,16 @@ works properly.
 @funindex \shiftOnnn
 @code{\shiftOnnn},
 @funindex \shiftOff
-@code{\shiftOff}: these commands specify the
-degree to which chords of the current voice should be shifted.
-The outer voices (normally: voice one and
-two) have @code{\shiftOff}, while the inner voices (three and four)
-have @code{\shiftOn}.  @code{\shiftOnn} and @code{\shiftOnnn} define
-further shift levels.
+@code{\shiftOff}: these commands specify the degree to which
+chords of the current voice should be shifted.  The outer voices
+(normally: voice one and two) have @code{\shiftOff}, while the
+inner voices (three and four) have @code{\shiftOn}.
+@code{\shiftOnn} and @code{\shiftOnnn} define further shift
+levels.
 
-When LilyPond cannot cope, the @code{force-hshift}
-property of the @internalsref{NoteColumn} object and pitched rests can
-be used to override typesetting decisions.
+When LilyPond cannot cope, the @code{force-hshift} property of the
+@internalsref{NoteColumn} object and pitched rests can be used to
+override typesetting decisions.
 
 @lilypond[quote,verbatim,ragged-right]
 \relative <<
@@ -374,31 +271,37 @@ be used to override typesetting decisions.
 
 @seealso
 
-Program reference: the objects responsible for resolving collisions are
-@internalsref{NoteCollision} and @internalsref{RestCollision}.
+Snippets:
+@lsrdir{Simultaneous,Simultaneous-notes}.
+
+Internals Reference: the objects responsible for resolving collisions
+are
+@internalsref{NoteCollision} and
+@internalsref{RestCollision}.
 
 
-@refbugs
+@knownissues
 
-When using @code{merge-differently-headed} with an upstem eighth or a
-shorter note, and a downstem half note, the eighth note gets the wrong
-offset.
+When using @code{merge-differently-headed} with an upstem eighth
+or a shorter note, and a downstem half note, the eighth note gets
+the wrong offset.
 
 There is no support for clusters where the same note occurs with
 different accidentals in the same chord.  In this case, it is
-recommended to use enharmonic transcription, or to use special cluster
-notation (see @ref{Clusters}).
+recommended to use enharmonic transcription, or to use special
+cluster notation (see @ref{Clusters}).
 
 
-@anchor{Automatic part combining}
-@unnumberedsubsubsec Automatic part combining
+@node Automatic part combining
+@subsubsection Automatic part combining
 @cindex automatic part combining
 @cindex part combiner
+@cindex combining parts
 
-Automatic part combining is used to merge two parts of music onto a
-staff.  It is aimed at typesetting orchestral scores.  When the two
-parts are identical for a period of time, only one is shown.  In
-places where the two parts differ, they are typeset as separate
+Automatic part combining is used to merge two parts of music onto
+a staff.  It is aimed at typesetting orchestral scores.  When the
+two parts are identical for a period of time, only one is shown.
+In places where the two parts differ, they are typeset as separate
 voices, and stem directions are set automatically.  Also, solo and
 @emph{a due} parts are identified and can be marked.
 
@@ -409,9 +312,9 @@ The syntax for part combining is
 @end example
 
 
-The following example demonstrates the basic functionality of the part
-combiner: putting parts on one staff, and setting stem directions and
-polyphony
+The following example demonstrates the basic functionality of the
+part combiner: putting parts on one staff, and setting stem
+directions and polyphony.
 
 @lilypond[quote,verbatim,ragged-right,fragment]
 \new Staff \partcombine
@@ -419,15 +322,15 @@ polyphony
   \relative g' { g g r4 r e e g g }
 @end lilypond
 
-The first @code{g} appears only once, although it was
-specified twice (once in each part).  Stem, slur, and tie directions are
-set automatically, depending whether there is a solo or unisono.  The
-first part (with context called @code{one}) always gets up stems, and
-@q{Solo}, while the second (called @code{two}) always gets down stems and
-@q{Solo II}.
+The first @code{g} appears only once, although it was specified
+twice (once in each part).  Stem, slur, and tie directions are set
+automatically, depending whether there is a solo or unisono.  The
+first part (with context called @code{one}) always gets up stems,
+and @q{Solo}, while the second (called @code{two}) always gets
+down stems and @q{Solo II}.
 
-If you just want the merging parts, and not the textual markings, you
-may set the property @code{printPartCombineTexts} to false
+If you just want the merging parts, and not the textual markings,
+you may set the property @code{printPartCombineTexts} to false.
 
 @lilypond[quote,verbatim,ragged-right,fragment,relative=2]
 \new Staff <<
@@ -455,7 +358,8 @@ properties.
 
 Both arguments to @code{\partcombine} will be interpreted as
 @internalsref{Voice} contexts.  If using relative octaves,
-@code{\relative} should be specified for both music expressions, i.e.,
+@code{\relative} should be specified for both music expressions,
+i.e.,
 
 @example
 \partcombine
@@ -464,44 +368,53 @@ Both arguments to @code{\partcombine} will be interpreted as
 @end example
 
 @noindent
-A @code{\relative} section that is outside of @code{\partcombine} has
-no effect on the pitches of @var{musicexpr1} and @var{musicexpr2}.
+A @code{\relative} section that is outside of @code{\partcombine}
+has no effect on the pitches of @var{musicexpr1} and
+@var{musicexpr2}.
 
 @seealso
 
-Program reference: @internalsref{PartCombineMusic}.
+Music Glossary:
+@rglos{a due}.
 
-@refbugs
+Snippets:
+@lsrdir{Simultaneous,Simultaneous-notes}.
 
-When @code{printPartCombineTexts} is set, when the two voices play the
-same notes on and off, the part combiner may typeset @code{a2} more
-than once in a measure.
+Internals Reference:
+@internalsref{PartCombineMusic},
+@internalsref{Voice}.
+
+@knownissues
+
+When @code{printPartCombineTexts} is set, if the two voices play
+the same notes on and off, the part combiner may typeset @code{a2}
+more than once in a measure.
 
 @code{\partcombine} cannot be inside @code{\times}.
 
 @code{\partcombine} cannot be inside @code{\relative}.
 
 Internally, the @code{\partcombine} interprets both arguments as
-@code{Voice}s named @code{one} and @code{two}, and then decides when
-the parts can be combined.  Consequently, if the arguments switch to
-differently named @internalsref{Voice} contexts, the events in those
-will be ignored.
+@code{Voice}s named @code{one} and @code{two}, and then decides
+when the parts can be combined.  Consequently, if the arguments
+switch to differently named @internalsref{Voice} contexts, the
+events in those will be ignored.
 
 
-@anchor{Writing music in parallel}
-@unnumberedsubsubsec Writing music in parallel
+@node Writing music in parallel
+@subsubsection Writing music in parallel
 
 @cindex Writing music in parallel
 @cindex Interleaved music
 
-Music for multiple parts can be interleaved
+Music for multiple parts can be interleaved:
 
 @lilypond[quote,fragment,verbatim]
 \parallelMusic #'(voiceA voiceB) {
-  r8     g'16[ c''] e''[ g' c'' e''] r8     g'16[ c''] e''[ g' c'' e''] |
-  c'2                                c'2                                |
-  r8     a'16[ d''] f''[ a' d'' f''] r8     a'16[ d''] f''[ a' d'' f''] |
-  c'2                                c'2                                |
+  r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
+  c'2                               c'2                         |
+  r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
+  c'2                               c'2                         |
 }
 \new StaffGroup <<
   \new Staff \new Voice \voiceA
@@ -509,19 +422,24 @@ Music for multiple parts can be interleaved
 >>
 @end lilypond
 
-This works quite well for piano music
+This works quite well for piano music.
 
+@c  It would be nice if the first bar fit onto one 66-char line.
+@c  Maybe simplify the example?  -gp
 @lilypond[quote,verbatim]
 music = {
   \key c \major
   \time 4/4
   \parallelMusic #'(voiceA voiceB voiceC voiceD) {
     % Bar 1
-    r8  g'16[ c''] e''[ g' c'' e''] r8  g'16[ c''] e''[ g' c''
-e''] |
-    c'2                                 c'2 |
-    r8  a16[ d'] f'[ a d' f']       r8  a16[ d'] f'[ a d' f'] |
-    c2                                  c2 |
+    r8  g'16[ c''] e''[ g' c'' e'']
+      r8 g'16[ c''] e''[ g' c'' e''] |
+    c'2
+      c'2 |
+    r8  a16[ d'] f'[ a d' f']
+      r8  a16[ d'] f'[ a d' f'] |
+    c2
+      c2 |
 
     % Bar 2
     a'8 b'      c'' d''    e'' f''    g'' a'' |
@@ -551,5 +469,8 @@ e''] |
 }
 @end lilypond
 
+@seealso
 
+Snippets:
+@lsrdir{Simultaneous,Simultaneous-notes}.