]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/simultaneous.itely
Split WWW target in two stages WWW-1 and WWW-2
[lilypond.git] / Documentation / user / simultaneous.itely
index 5df845313a436a23ceb6d6a325367a6ede76a73d..a9f4d88ed9c65fb7720caab326a248dafbea3938 100644 (file)
@@ -44,11 +44,11 @@ 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]
+@lilypond[verbatim,quote,relative=1]
 <c e g>2 <c f a>4-> <e g c>-.
 @end lilypond
 
-For more information about chords, see @ref{Modern chords}.
+For more information about chords, see @ref{Chord notation}.
 
 @seealso
 
@@ -59,7 +59,7 @@ Learning Manual:
 @rlearning{Combining notes into chords}.
 
 Notation Reference:
-@ref{Modern chords}.
+@ref{Chord notation}.
 
 Snippets:
 @rlsr{Simultaneous notes}.
@@ -83,7 +83,7 @@ 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]
+@lilypond[quote,relative=2,verbatim]
 \makeClusters { <g b>2 <c g'> }
 @end lilypond
 
@@ -104,8 +104,6 @@ Internals Reference:
 @rinternals{ClusterSpannerBeacon},
 @rinternals{Cluster_spanner_engraver}.
 
-@c Examples: @rlsr{contemporary,cluster@/.ly}.
-
 @knownissues
 
 Clusters only look good if they span at least two chords; otherwise
@@ -129,70 +127,106 @@ them.
 
 @cindex merging notes
 @cindex note collisions
+@cindex collisions
+@funindex \shiftOn
+@funindex \shiftOnn
+@funindex \shiftOnnn
+@funindex \shiftOff
+@cindex shift rest, automatic
 
-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
-@rinternals{NoteCollision} object, they are merged:
-
-@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
-\new Voice << {
-  g8 g8
-  \override Staff.NoteCollision
-    #'merge-differently-dotted = ##t
-  g8 g8
-} \\ { g8.[ f16] g8.[ f16] } >>
+Note heads with equal durations are automatically merged, while
+note heads with unequal durations are not merged.  Rests opposite
+a stem are shifted vertically.
+
+@lilypond[quote,verbatim,relative=2]
+<<
+  {
+    c8 d e d c d c4
+    g'2 fis
+  } \\ {
+    c2 c8. b16 c4
+    e,2 r
+  } \\ {
+    \oneVoice
+    s1
+    e8 a b c d2
+  }
+>>
 @end lilypond
 
-Similarly, you can merge half note heads with eighth notes, by
-setting @code{merge-differently-headed}:
+Note heads with different note heads may be merged, with the exception
+of half-note heads and quarter-note heads:
 
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
-\new Voice << {
-  c8 c4.
-  \override Staff.NoteCollision
-    #'merge-differently-headed = ##t
-c8 c4. } \\ { c2 c2 } >>
+@lilypond[quote,verbatim,relative=2]
+<<
+  {
+    \override Staff.NoteCollision #'merge-differently-headed = ##t
+    c8 d e d c d c4
+    g'2 fis
+  } \\ {
+    c2 c8. b16 c4
+    e,2 r
+  } \\ {
+    \oneVoice
+    s1
+    e8 a b c d2
+  }
+>>
 @end lilypond
 
-@noindent
-@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
+Note heads with different dots may be merged:
 
-@lilypond[quote,ragged-right,fragment,verbatim]
-\new Voice << c''4 \\ r4 >>
+@lilypond[quote,relative=2,verbatim]
+<<
+  {
+    \override Staff.NoteCollision #'merge-differently-headed = ##t
+    \override Staff.NoteCollision #'merge-differently-dotted = ##t     
+    c8 d e d c d c4
+    g'2 fis
+  } \\ {
+    c2 c8. b16 c4
+    e,2 r
+  } \\ {
+    \oneVoice
+    s1
+    e8 a b c d2
+  }
+>>
 @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.
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\override Staff.NoteCollision #'merge-differently-headed = ##t
-<<
-  { d=''2 g2 } \\
-  { \oneVoice d=''8 c8 r4 e,8 c'8 r4 } \\
-  { \voiceFour e,,2 e'2}
->>
+The collision on the second measure happens because
+@code{merge-differently-headed} cannot successfully complete the merge
+when three or more notes line up in the same column (in fact, you will
+obtain a warning for this reason).  To allow the merge to work
+properly, apply a @code{\shift} to the note that should not be merged.
+Here, @code{\shiftOn} is applied to move the top @code{g} out of the
+column, and @code{merge-differently-headed} works properly.
+
+@lilypond[quote,relative=2,verbatim]
 <<
-  { d'=''2 \shiftOn g2 } \\ 
-  { \oneVoice d=''8 c8 r4 e,8 c'8 r4 } \\
-  { \voiceFour e,,2 e'2}
+  {
+    \override Staff.NoteCollision #'merge-differently-headed = ##t
+    \override Staff.NoteCollision #'merge-differently-dotted = ##t     
+    c8 d e d c d c4
+    \shiftOn
+    g'2 fis
+  } \\ {
+    c2 c8. b16 c4
+    e,2 r
+  } \\ {
+    \oneVoice
+    s1
+    e8 a b c d2
+  }
+
 >>
 @end lilypond
 
+Notes are only merged if they have opposing stem directions (i.e., in
+@code{Voice} 1 and 2).
+
 @cindex multiple voices
 @cindex polyphonic music
 @cindex shifting voices
@@ -201,19 +235,18 @@ 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]
+@lilypond[quote,verbatim]
 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,}
+\relative c'''
+<< 
+  { \voiceOne g2. ~ \stemDown g32[ f( es d c b a b64) g] } \\
+  { \voiceThree b4 } \\
+  { \voiceFive d,  } \\
+  { \voiceTwo g,   }
 >>
 @end lilypond
 
 
-
 @predefined
 
 @funindex \oneVoice
@@ -227,6 +260,7 @@ voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)
 @funindex \voiceFour
 @code{\voiceFour}.
 
+@c undocumented?: --FV
 @funindex \voiceNeutralStyle
 @funindex \voiceOneStyle
 @funindex \voiceTwoStyle
@@ -249,34 +283,43 @@ voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)
 @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
+(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.
 
 When LilyPond cannot cope, the @code{force-hshift} property of the
-@rinternals{NoteColumn} object and pitched rests can be used to
+@code{NoteColumn} object and pitched rests can be used to
 override typesetting decisions.
 
-@lilypond[quote,verbatim,ragged-right]
-\relative <<
-{
-  <d g>
-  <d g>
-} \\ {
-  <b f'>
-  \once \override NoteColumn #'force-hshift = #1.7
-  <b f'>
-} >>
+@lilypond[quote,verbatim,relative=1]
+<<
+  { <d g>2
+    <d g>  }
+  \\
+  { <b f'>2
+    \once \override NoteColumn #'force-hshift = #1.7
+    <b f'> }
+>>
 @end lilypond
 
 
 @seealso
 
+Music Glossary:
+@rglos{polyphony}.
+
+Learning Manual:
+@rlearning{Multiple notes at once},
+@rlearning{Voices contain music},
+@rlearning{Collisions of objects}.
+
 Snippets:
 @rlsr{Simultaneous notes}.
 
-Internals Reference: the objects responsible for resolving collisions
+Internals Reference:
+@rinternals{NoteColumn}.
+The objects responsible for resolving collisions
 are
 @rinternals{NoteCollision} and
 @rinternals{RestCollision}.
@@ -284,15 +327,21 @@ are
 
 @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 stem gets a
+slightly wrong offset because of the different width of the half note
+head symbol.
+
+@c investigate! Sometimes it works, sometimes not. --FV
+It is not clear in which circumpstances you can succesfully merge
+different note heads that are at the same time differently dotted.
 
 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}).
 
+
 @node Automatic part combining
 @subsubsection Automatic part combining
 
@@ -319,7 +368,7 @@ combiner: putting parts on one staff and setting stem directions and
 polyphony.  The same variables are used for the independent
 parts and the combined staff.
 
-@lilypond[quote,verbatim,ragged-right]
+@lilypond[quote,verbatim]
 instrumentOne = \relative c' {
   c4 d e f
   R1
@@ -372,7 +421,7 @@ has no effect on the pitches of @var{musicexpr1} and
 
 Parts may be merged without printing text:
 
-@lilypond[quote,verbatim,ragged-right]
+@lilypond[quote,verbatim]
 \new Staff <<
   \set Staff.printPartCombineTexts = ##f
   \partcombine
@@ -383,7 +432,7 @@ Parts may be merged without printing text:
 
 The printed text may be changed:
 
-@lilypond[quote,verbatim,ragged-right]
+@lilypond[quote,verbatim]
 \new Staff <<
   \set Score.soloText = #"girl"
   \set Score.soloIIText = #"boy"
@@ -447,7 +496,7 @@ music.
 @warning{Bar checks @code{|} must be used, and the measures must
 be of the same length.}
 
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,verbatim]
 \parallelMusic #'(voiceA voiceB) {
   % Bar 1
   r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
@@ -469,7 +518,7 @@ relative to the preceding note in the voice, not to the previous
 note in the input -- in other words, relative notes for
 @code{voiceA} ignore the notes in @code{voiceB}.
 
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,verbatim]
 \parallelMusic #'(voiceA voiceB) {
   % Bar 1
   r8 g16 c e g, c e r8 g,16 c e g, c e  |
@@ -530,7 +579,6 @@ global = {
 }
 @end lilypond
 
-
 @seealso
 
 Learning Manual: