]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/notation/simultaneous.itely
Improve pure-height estimations with outside-staff-priority.
[lilypond.git] / Documentation / notation / simultaneous.itely
index f3d8be5d05723c85c43d427845b1351600649613..f68d592c8141b3997e0696aecc5613f0b7316a56 100644 (file)
@@ -3,7 +3,8 @@
     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.
+    version that you are working on.  For details, see the Contributors'
+    Guide, node Updating translation committishes..
 @end ignore
 
 @c \version "2.12.0"
@@ -31,6 +32,7 @@ This section discusses simultaneous notes inside the same voice.
 
 @menu
 * Chorded notes::
+* Chord repetition::
 * Simultaneous expressions::
 * Clusters::
 @end menu
@@ -41,28 +43,56 @@ This section discusses simultaneous notes inside the same voice.
 
 @cindex chords
 @cindex brackets, angle
-@cindex angle brackets
-@cindex relative pitch in chords
 
 @funindex <
 @funindex >
 @funindex <...>
 
 A chord is formed by 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:
+and @code{>}.  A chord may be followed by a duration just like simple
+notes.
 
-@lilypond[verbatim,quote,relative=1]
-<c e g>2 <c f a>4-> <e g c>-.
+@lilypond[verbatim,quote,relative=2]
+<a c e>1 <a c e>2 <f a c e>4 <a c>8. <g c e>16
 @end lilypond
 
-Relative mode can be used for pitches in chords. The octave of each
-pitch is chosen using the preceding pitch as a reference except in
-the case of the first pitch in a chord: the reference for the first
-pitch is the @emph{first} pitch of the preceding chord.
+Chords may also be followed by articulations, again just like simple
+notes.
 
-For more information about chords, see @ref{Chord notation}.
+@lilypond[verbatim,quote,relative=2]
+<a c e>1\fermata <a c e>2-> <f a c e>4\prall <a c>8.^| <g c e>16-.
+@end lilypond
+
+The notes within the chord themselves can also be followed by articulation
+and ornamentation.
+
+@lilypond[verbatim,quote,relative=2]
+<a c\prall e>1 <a-> c-^ e>2 <f-. a c-. e-.>4 <a-+ c-->8. <g\fermata c e\turn>16
+@end lilypond
+
+However some notation, such as dynamics, hairpins and slurs must be
+attached to the chord, rather than notes within the chord, otherwise
+they will not print.
+
+@lilypond[verbatim,quote,relative=2]
+<a\f c( e>1 <a c) e>\f <a\< c e>( <a\! c e>) <a c e>\< <a c e> <a c e>\!
+@end lilypond
 
+@cindex relative pitch, chords
+@cindex chords, relative pitch
+
+Relative mode can be used for pitches in chords.  The first note of
+each chord is always relative to the first note of the chord that
+came before it, or in the case where no preceding chord exists, the
+pitch of the last note that came before the chord.  All remaining notes
+in the chord are relative to the note that came before it
+@emph{within the same chord}.
+
+@lilypond[verbatim,quote,relative=2]
+<a c e>1 <f a c> <a c e> <f' a c> <b, e b,>
+@end lilypond
+
+For more information about chords, see @ref{Chord notation}.
 
 @seealso
 Music Glossary:
@@ -72,12 +102,56 @@ Learning Manual:
 @rlearning{Combining notes into chords}.
 
 Notation Reference:
-@ref{Chord notation}.
+@ref{Chord notation},
+@ref{Articulations and ornamentations},
+@ref{Relative octave entry}.
 
 Snippets:
 @rlsr{Simultaneous notes}.
 
 
+@node Chord repetition
+@unnumberedsubsubsec Chord repetition
+
+In order to save typing, a shortcut can be used to repeat the preceding
+chord.  The chord repetition symbol is @code{q}:
+
+@lilypond[verbatim,quote,relative=2]
+<a c e>1 q <f a c>2 q
+@end lilypond
+
+As with regular chords, the chord repetition symbol can be used with
+durations, articulations, markups, slurs, beams, etc. as only the
+pitches of the previous chord are duplicated.
+
+@lilypond[verbatim,quote,relative=2]
+<a c e>1\p^"text" q2\<( q8)[-| q8.]\! q16-1-2-3 q8\prall
+@end lilypond
+
+The chord repetition symbol always remembers the last instance of
+a chord so it is possible to repeat the most recent chord even if
+other non-chorded notes or rests have been added since.
+
+@lilypond[verbatim,quote,relative=2]
+<a c e>1 c4 q2 r8 q8
+@end lilypond
+
+However, the chord repetition symbol does not retain any dynamics,
+articulation or ornamentation within, or attached to the previous chord.
+
+@lilypond[verbatim,quote,relative=2]
+<a-. c\prall e>1\sfz c4 q2 r8 q8
+@end lilypond
+
+@seealso
+Notation Reference:
+@ref{Chord notation},
+@ref{Articulations and ornamentations}.
+
+Installed Files:
+@file{ly/@/chord-repetition-init@/.ly}.
+
+
 @node Simultaneous expressions
 @unnumberedsubsubsec Simultaneous expressions
 
@@ -208,7 +282,8 @@ voices in a single staff is illustrated in the following example:
 >>
 @end lilypond
 
-Here, voices are instantiated explicitly and are given names. The
+@noindent
+Here, voices are instantiated explicitly and are given names.  The
 @code{\voiceOne} ... @code{\voiceFour} commands set up the voices
 so that first and third voices get stems up, second and fourth
 voices get stems down, third and fourth voice note heads are
@@ -228,6 +303,7 @@ construct:
 >> \oneVoice
 @end example
 
+@noindent
 Here, the first expression within a temporary polyphonic passage is
 placed into the @code{Voice} context which was in use immediately
 before the polyphonic passage, and that same @code{Voice} context
@@ -259,6 +335,7 @@ during and after a polyphonic section:
 >>
 @end lilypond
 
+@noindent
 Here, the @code{\voiceOne} and @code{\voiceTwo} commands are
 required to define the settings of each voice.
 
@@ -267,7 +344,7 @@ required to define the settings of each voice.
 The @code{<< @{...@} \\ @{...@} >>} construct, where the two (or
 more) expressions are separated by double backslashes, behaves
 differently to the similar construct without the double backslashes:
-@emph{all} the expressions within this contruct are assigned
+@emph{all} the expressions within this construct are assigned
 to new @code{Voice} contexts.  These new @code{Voice} contexts
 are created implicitly and are given the fixed names @code{"1"},
 @code{"2"}, etc.
@@ -307,6 +384,42 @@ In all but the simplest works it is advisable to create explicit
 @code{Voice} contexts as explained in @rlearning{Contexts and engravers} and
 @rlearning{Explicitly instantiating voices}.
 
+@strong{@i{Voice order}}
+
+When entering multiple voices in the input file, use the following
+order:
+
+@example
+Voice 1: highest
+Voice 2: lowest
+Voice 3: second highest
+Voice 4: second lowest
+Voice 5: third highest
+Voice 6: third lowest
+etc.
+@end example
+
+Though this may seem counterintuitive, it simplifies the automatic
+layout process.  Note that the odd-numbered voices are given
+upstems, and the even-numbered voices are given downstems:
+
+@lilypond[quote,verbatim]
+\new Staff <<
+  \time 2/4
+  { f''2 }  % 1: highest
+  \\
+  { c'2  }  % 2: lowest
+  \\
+  { d''2 }  % 3: second-highest
+  \\
+  { e'2  }  % 4: second-lowest
+  \\
+  { b'2  }  % 5: third-highest
+  \\
+  { g'2  }  % 6: third-lowest
+>>
+@end lilypond
+
 @strong{@i{Identical rhythms}}
 
 In the special case that we want to typeset parallel pieces of music
@@ -375,7 +488,7 @@ easily identified:
 >>
 @end lilypond
 
-The @code{\voiceNeutralstyle} command is used to revert to the
+The @code{\voiceNeutralStyle} command is used to revert to the
 standard presentation.
 
 
@@ -431,7 +544,9 @@ The note heads of notes in different voices with the same pitch,
 same note head and opposite stem direction are automatically
 merged, but notes with different note heads or the same stem
 direction are not.  Rests opposite a stem in a different voice
-are shifted vertically.
+are shifted vertically.  The following example shows three
+different circumstances, on beats 1 and 3 in bar 1 and beat 1
+in bar 2, where the automatic merging fails.
 
 @lilypond[quote,verbatim,relative=2]
 <<
@@ -450,7 +565,8 @@ are shifted vertically.
 @end lilypond
 
 Notes with different note heads may be merged, with the
-exception of half-note heads and quarter-note heads:
+exception of half-note heads and quarter-note heads, as shown
+below.  Here the note heads on beat 1 of bar 1 are now merged:
 
 @lilypond[quote,verbatim,relative=2]
 <<
@@ -469,7 +585,8 @@ exception of half-note heads and quarter-note heads:
 >>
 @end lilypond
 
-Note heads with different dots may be merged:
+Note heads with different dots as shown in beat 3 of bar 1 may be
+also be merged:
 
 @lilypond[quote,relative=2,verbatim]
 <<
@@ -491,13 +608,14 @@ Note heads with different dots may be merged:
 
 
 The half note and eighth note at the start of the second measure
-are incorrectly merged because @code{\mergeDifferentlyHeadedOn}
-cannot successfully complete the merge when three or more notes
-line up in the same column, and in this case a warning is given.
-To allow the merge to work properly a @code{\shift} must be applied
-to the note that should not be merged.  Here, @code{\shiftOn} is
-applied to move the top @notation{g} out of the column, and
-@code{\mergeDifferentlyHeadedOn} then works properly.
+are incorrectly merged because the automatic merge cannot
+successfully complete the merge when three or more notes line up in
+the same note column, and in this case the merged note head is
+incorrect.  To allow the merge to select the correct note head
+a @code{\shift} must be applied to the note that should not be
+merged.  Here, @code{\shiftOn} is applied to move the top
+@notation{g} out of the column, and @code{\mergeDifferentlyHeadedOn}
+then works properly.
 
 @lilypond[quote,relative=2,verbatim]
 <<
@@ -515,19 +633,61 @@ applied to move the top @notation{g} out of the column, and
     s1
     e8 a b c d2
   }
-
 >>
 @end lilypond
 
-The @code{\shiftOn}, @code{\shiftOnn}, and @code{\shiftOnnn}
-commands specify the degree to which chords of the current voice
-should be shifted.  The outer voices (normally: voices 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.
+The @code{\shiftOn} command allows (but does not force) the notes
+in a voice to be shifted.  When @code{\shiftOn} is applied to a
+voice, a note or chord in that voice is shifted only if its stem
+would otherwise collide with a stem from another voice, and only
+if the colliding stems point in the same direction.  The
+@code{\shiftOff} command prevents this type of shifting from
+occuring.
+
+By default, the outer voices (normally voices one and two) have
+@code{\shiftOff} specified, while the inner voices (three and
+above) have @code{\shiftOn} specified.  When a shift is applied,
+voices with upstems (odd-numbered voices) are shifted to the
+right, and voices with downstems (even-numbered voices) are
+shifted to the left.
+
+Here is an example to help you visualize how an abbreviated
+polyphonic expression would be expanded internally.
+
+@warning{Note that with three or more voices, the vertical order
+of voices in your input file should not be the same as the
+vertical order of voices on the staff!}
+
+@lilypond[quote,verbatim]
+\new Staff \relative c'' {
+  %% abbreviated entry
+  <<
+    { f2  }  % 1: highest
+    \\
+    { g,2 }  % 2: lowest
+    \\
+    { d'2 }  % 3: upper middle
+    \\
+    { b2  }  % 4: lower middle
+  >>
+  %% internal expansion of the above
+  <<
+    \new Voice = "1" { \voiceOne   \shiftOff f'2 }
+    \new Voice = "2" { \voiceTwo   \shiftOff g,2 }
+    \new Voice = "3" { \voiceThree \shiftOn  d'2 } % shifts right
+    \new Voice = "4" { \voiceFour  \shiftOn  b2  } % shifts left
+  >>
+}
+@end lilypond
+
+Two additional commands, @code{\shiftOnn} and @code{\shiftOnnn}
+provide further shift levels which may be specified temporarily to
+resolve collisions in complex situations -- see
+@rlearning{Real music example}.
 
-Notes are only merged if they have opposing stem directions (e.g. in
-@code{Voice} 1 and 2).
+Notes are only merged if they have opposing stem directions (as
+they have, for example, in voices one and two by default or when
+the stems are explicitly set in opposite directions).
 
 
 @predefined
@@ -559,7 +719,7 @@ Music Glossary:
 Learning Manual:
 @rlearning{Multiple notes at once},
 @rlearning{Voices contain music},
-@rlearning{Collisions of objects}.
+@rlearning{Real music example}.
 
 Snippets:
 @rlsr{Simultaneous notes}.
@@ -709,7 +869,7 @@ be ignored.  Likewise, partcombining isn't designed to work with lyrics;
 when one of the voices is explicitly named in order to attach lyrics to
 it, the partcombining stops working.
 
-@code{\partcombine} only observes onset times of notes. It cannot
+@code{\partcombine} only observes onset times of notes.  It cannot
 determine whether a previously started note is playing or not, leading
 to various problems.