Carl Sorensen wrote:
> Well, the Notation Reference is supposed to contain all
> the information necessary to understand all the notation.
>
> If the information on voices isn't in the Notation
> Reference, then we'll need to have links from the NR to
> the LM for fundamental operation of commands.
>
> We don't want to have duplication.  Although I didn't
> mention it this way before, I think that we need this
> information in the NR.

Hmm.  Now I'm inclined to agree with Carl.  Here's a new
patch.  What do you guys think of the new placement.  Do you
think the text flows well in this order, etc.?

- Mark


      
From 403b59ec392fd6444b4b8733322bc5474452a4ae Mon Sep 17 00:00:00 2001
From: Mark Polesky <markpole...@yahoo.com>
Date: Sat, 18 Sep 2010 23:40:50 -0700
Subject: [PATCH] Doc: NR 1.5.2: Clarify voice order; \shiftOn etc.

---
 Documentation/notation/simultaneous.itely |  147 +++++++++++++++++++++++++++-
 1 files changed, 141 insertions(+), 6 deletions(-)

diff --git a/Documentation/notation/simultaneous.itely 
b/Documentation/notation/simultaneous.itely
index 529b588..8427a7b 100644
--- a/Documentation/notation/simultaneous.itely
+++ b/Documentation/notation/simultaneous.itely
@@ -365,6 +365,83 @@ voices are given the settings equivalent to the effect of 
the
 @code{\voiceOne} ... @code{\voiceFour} commands, in the order in
 which they appear in the code.
 
+When entering multiple voices in the input file, always put the
+highest voice first and the lowest voice second.  Enter any
+additional voices in this 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:
+
+...@c do not use verbatim here
+...@lilypond[quote]
+\new Staff {
+  \override Staff.Fingering #'whiteout = ##t
+  \time 2/4
+  <<
+    { b'2^1 }       % 1
+    \\ { g'2_2 }    % 2
+  >>
+  <<
+    { d''2^1 }      % 1
+    \\ { g'2_2 }    % 2
+    \\ { \set fingeringOrientations = #'(right)
+         <b'-3>2 }  % 3
+  >>
+  <<
+    { d''2^1 }      % 1
+    \\ { e'2_2 }    % 2
+    \\ { <b'-3>2 }  % 3
+    \\ { \set fingeringOrientations = #'(left)
+         <g'-4>2 }  % 4
+  >>
+  <<
+    { f''2^1 }      % 1
+    \\ { e'2_2 }    % 2
+    \\ { \override Fingering #'extra-offset = #'(0.7 . 1.4)
+         <d''^3>2 } % 3
+    \\ { <g'-4>2 }  % 4
+    \\ { \set fingeringOrientations = #'(right)
+         <b'-5>2 }  % 5
+  >>
+  <<
+    { f''2^1 }      % 1
+    \\ { c'2_2 }    % 2
+    \\ { \override Fingering #'extra-offset = #'(0.6 . 1.4)
+         <d''^3>2 } % 3
+    \\ { \override Fingering #'extra-offset = #'(-0.6 . -2)
+         <e'_4>2 }  % 4
+    \\ { <b'-5>2 }  % 5
+    \\ { \set fingeringOrientations = #'(left)
+         <g'-6>2 }  % 6
+  >>
+}
+...@end lilypond
+
+For example, the third measure above could be entered like this:
+
+...@example
+<<
+  @{ d2 @}  % highest
+  \\
+  @{ e,2 @} % lowest
+  \\
+  @{ b'2 @} % second highest
+  \\
+  @{ g2 @}  % second lowest
+>>
+...@end example
+
 In the following example, the intermediate voice has stems up,
 therefore we enter it in the third place, so it becomes voice
 three, which has the stems up as desired.  Spacer rests are
@@ -600,12 +677,70 @@ then works properly.
 >>
 @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
+four) have @code{\shiftOn} specified.  When a shift is applied,
+voices with upstems (voices one and three) are shifted to the
+right, and voices with downstems (voices two and four) are shifted
+to the left.
+
+The following image shows the four voices in their conventional
+positions, with the default shifts applied:
+
+...@c do not use verbatim here
+...@lilypond[quote]
+\new Staff {
+  \time 2/4
+  \once \override Staff.Fingering #'whiteout = ##t
+  <<
+    { f''2^1 }
+    \\ { g'2_2 }
+    \\ { \set fingeringOrientations = #'(right) <d''-3>2 }
+    \\ { \set fingeringOrientations = #'(left) <b'-4>2 }
+  >>
+}
+...@end lilypond
+
+Here is an example to help you visualize how an abbreviated
+polyphonic expression would be expanded internally.  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  } % highest
+    \\
+    { g,2 } % lowest
+    \\
+    { d'2 } % upper middle
+    \\
+    { b2  } % 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
+...@ruser{real music example}.
 
 Notes are only merged if they have opposing stem directions (as
 they have, for example, in voices one and two by default or when
-- 
1.6.3.3

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to