Carl, it looks like you're outnumbered wrt to LM vs. NR, but
feel free to protest against us masses, we'll listen.

Trevor, my reply to your post follows my reply to Graham's.

Graham Percival wrote:
> - I don't like the @example; could you use @enumerate
>   instead?

I agree with Trevor; that would add extra space.


> - delete the "The following image demonstrates
>   this visually"; just end with "... and the
>   even-numbered voices are given downstems."

Done.


> ... actually, do we really need the @example (or
> @enumerate) ?  The image looks great.  What about removing
> the @example entirely?

I was thinking of our visually-impaired users.


> - that said, one quibble: could the fingering for voices 5
> and 6 be placed below and above the notes?

Not sure I understand this request exactly, but I
repositioned the numbers a little more clearly (I think).
Let me know what you think.


> - could you replace "... the third measure above could be
> entered..." with "... above SHOULD be entered..." ?

Well, my thought was that there *are* other valid ways of
doing it, like using absolute mode, or entering more than
one measure at a time.  But I'll change it if you still
think it's better.


> - please avoid having @ref{A reference split across a
> linebreak} because it produces bad output in one of our
> doc formats (I forget which one, though)

Done.

* * * * * * * * * *

Trevor Daniels wrote:
> One comment.  The example which follows the first part of
> the patch, Chopin's Deux Nocturnes, Op 32, does not follow
> this new advice!  Should it be reworked also?

Good catch!  Yes, ultimately I think this should be
reworked, but it's not so urgent right now.

- Mark


      
From 92490d97a8293ec1121e23fbe086a3bd7f37248b Mon Sep 17 00:00:00 2001
From: Mark Polesky <markpole...@yahoo.com>
Date: Sat, 18 Sep 2010 18:56:43 -0700
Subject: [PATCH] Doc: LM 3.2: Entering voices in the correct order.

---
 Documentation/learning/fundamental.itely |  184 +++++++++++++++++++++++++----
 1 files changed, 158 insertions(+), 26 deletions(-)

diff --git a/Documentation/learning/fundamental.itely 
b/Documentation/learning/fundamental.itely
index 811b1dc..03ef346 100644
--- a/Documentation/learning/fundamental.itely
+++ b/Documentation/learning/fundamental.itely
@@ -670,12 +670,92 @@ separately, like this:
 @cindex ties crossing brackets
 
 This example has just two voices, but the same construct may be
-used to encode three or more voices by adding more back-slash
+used to encode three or more voices by adding more backslash
 separators.
 
-The Voice contexts bear the names @code{"1"}, @code{"2"}, etc.
-In each of these contexts, the vertical direction of slurs,
-stems, ties, dynamics etc., is set appropriately.
+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
+
+The Voice contexts are automatically assigned the names
+...@code{"1"}, @code{"2"}, etc.  In each of these contexts, the
+vertical direction of slurs, stems, ties, dynamics etc., is set
+appropriately.  Here is a longer example using three voices:
+
+...@c TODO: add dynamics once the "voiceOne dynamics" bug is fixed.
 
 @lilypond[quote,verbatim,fragment]
 \new Staff \relative c' {
@@ -1136,28 +1216,80 @@ as here:
 @funindex shiftOnnn
 
 Closely spaced notes in a chord, or notes occurring at the same
-time in different voices, are arranged in two, occasionally more,
-columns to prevent the note heads overlapping.  These are called
-note columns.  There are separate columns for each voice, and
-the currently specified voice-dependent shift is applied to the
-note column if there would otherwise be a collision.  This can
-be seen in the example above.  In bar 2 the C in voice two is
-shifted to the right relative to the D in voice one, and in the
-final chord the C in voice three is also shifted to the right
-relative to the other notes.
-
-The @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn}, and
-...@code{\shiftoff} commands specify the degree to which notes and
-chords of the voice should be shifted if a collision
-would otherwise occur.  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 one and three are shifted to
-the right and voices two and four to the left.
-
-...@code{\shiftonn} and @code{\shiftOnnn} define further shift
-levels which may be specified temporarily to resolve collisions
-in complex situations -- see @ref{Real music example}.
+time in different voices, are arranged in two or more columns to
+prevent the note heads overlapping.  These are called note
+columns.  There are separate columns for each voice, and the
+currently specified voice-dependent shift is applied to the note
+column if there would otherwise be a collision.  This can be seen
+in the example above.  In bar 2 the C in voice two is shifted to
+the right relative to the D in voice one, and in the final chord
+the C in voice three is also shifted to the right relative to the
+other notes.
+
+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
+...@ref{real music example}.
 
 A note column can contain just one note (or chord) from a voice
 with stems up and one note (or chord) from a voice with stems
-- 
1.6.3.3

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

Reply via email to