lilypond-learning: Explicitly instantiating voices

 
 3.2.2 Explicitly instantiating voices
 -------------------------------------
 
 Voice contexts can also be created manually inside a ‘<< >>’ block to
 create polyphonic music, using ‘\voiceOne’ ... ‘\voiceFour’ to indicate
 the required directions of stems, slurs, etc.  In longer scores this
 method is clearer, as it permits the voices to be separated and to be
 given more descriptive names.
 
    Specifically, the construct ‘<< \\ >>’ which we used in the previous
 section:
 
      \new Staff {
        \relative c' {
          << { e4 f g a } \\ { c,4 d e f } >>
        }
      }
 
 is equivalent to
 
      \new Staff <<
        \new Voice = "1" { \voiceOne \relative c' { e4 f g a } }
        \new Voice = "2" { \voiceTwo \relative c' { c4 d e f } }
      >>
 
    Both of the above would produce
 
      [image src="" alt="[image of music]" text="image of music"]
 
    The ‘\voiceXXX’ commands set the direction of stems, slurs, ties,
 articulations, text annotations, augmentation dots of dotted notes, and
 fingerings.  ‘\voiceOne’ and ‘\voiceThree’ make these objects point
 upwards, while ‘\voiceTwo’ and ‘\voiceFour’ make them point downwards.
 These commands also generate a horizontal shift for each voice when this
 is required to avoid clashes of note heads.  The command ‘\oneVoice’
 reverts the settings back to the normal values for a single voice.
 
    Let us see in some simple examples exactly what effect ‘\oneVoice’,
 ‘\voiceOne’ and ‘voiceTwo’ have on markup, ties, slurs, and dynamics:
 
      \relative c' {
        % Default behavior or behavior after \oneVoice
        c4 d8~ d e4( f | g4 a) b-> c |
      }
      [image src="" alt="[image of music]" text="image of music"]
 
      \relative c' {
        \voiceOne
        c4 d8~ d e4( f | g4 a) b-> c |
        \oneVoice
        c,4 d8~ d e4( f | g4 a) b-> c |
      }
      [image src="" alt="[image of music]" text="image of music"]
 
      \relative c' {
        \voiceTwo
        c4 d8~ d e4( f | g4 a) b-> c |
        \oneVoice
        c,4 d8~ d e4( f | g4 a) b-> c |
      }
      [image src="" alt="[image of music]" text="image of music"]
 
    Now let’s look at three different ways to notate the same passage of
 polyphonic music, each of which is advantageous in different
 circumstances, using the example from the previous section.
 
    An expression that appears directly inside a ‘<< >>’ belongs to the
 main voice (but, note, *not* in a ‘<< \\ >>’ construct).  This is useful
 when extra voices appear while the main voice is playing.  Here is a
 more correct rendition of our example.  The red diamond-shaped notes
 demonstrate that the main melody is now in a single voice context,
 permitting a phrasing slur to be drawn over them.
 
      \new Staff \relative c' {
        \voiceOneStyle
        % This section is homophonic
        c16^( d e f
        % Start simultaneous section of three voices
        <<
          % Continue the main voice in parallel
          { g4 f e | d2 e) | }
          % Initiate second voice
          \new Voice {
            % Set stems, etc., down
            \voiceTwo
            r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
          }
          % Initiate third voice
          \new Voice {
            % Set stems, etc, up
            \voiceThree
            s2. | s4 b c2 |
          }
        >>
      }
      [image src="" alt="[image of music]" text="image of music"]
 
    More deeply nested polyphony constructs are possible, and if a voice
 appears only briefly this might be a more natural way to typeset the
 music:
 
      \new Staff \relative c' {
        c16^( d e f
        <<
          { g4 f e | d2 e) | }
          \new Voice {
            \voiceTwo
            r8 e4 d c8~ |
            <<
              { c8 b16 a b8 g~ g2 | }
              \new Voice {
                \voiceThree
                s4 b c2 |
              }
            >>
          }
        >>
      }
      [image src="" alt="[image of music]" text="image of music"]
 
    This method of nesting new voices briefly is useful when only small
 sections of the music are polyphonic, but when the whole staff is
 largely polyphonic it can be clearer to use multiple voices throughout,
 using spacing notes to step over sections where the voice is silent, as
 here:
 
      \new Staff \relative c' <<
        % Initiate first voice
        \new Voice {
          \voiceOne
          c16^( d e f g4 f e | d2 e) |
        }
        % Initiate second voice
        \new Voice {
          % Set stems, etc, down
          \voiceTwo
          s4 r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
        }
        % Initiate third voice
        \new Voice {
          % Set stems, etc, up
          \voiceThree
          s1 | s4 b c2 |
        }
      >>
      [image src="" alt="[image of music]" text="image of music"]
 
 Note columns
 ............
 
 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 ‘\shiftOn’, ‘\shiftOnn’, ‘\shiftOnnn’, and ‘\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 ‘\shiftOff’ specified, while
 the inner voices (three and four) have ‘\shiftOn’ specified.  When a
 shift is applied, voices one and three are shifted to the right and
 voices two and four to the left.
 
    ‘\shiftOnn’ and ‘\shiftOnnn’ define further shift levels which may be
 specified temporarily to resolve collisions in complex situations – see
 SeeReal 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 down.  If notes
 from two voices which have their stems in the same direction are placed
 at the same position and both voices have no shift or the same shift
 specified, the error message “Too many clashing note columns” will be
 produced.
 
 
 See also
 ........
 
    Learning Manual: SeeMoving objects.
 
    Notation Reference: See(lilypond-notation)Multiple voices.