Next: , Previous: Automatic behavior, Up: Placement of objects


4.4.2 Within-staff objects

We have already seen how the commands \voiceXXX affect the direction of slurs, ties, fingering and everything else which depends on the direction of the stems. These commands are essential when writing polyphonic music to permit interweaving melodic lines to be distinguished. But occasionally it may be necessary to override this automatic behavior. This can be done for whole sections of music or even for an individual note. The property which controls this behavior is the direction property of each layout object. We first explain what this does, and then introduce a number of ready-made commands which avoid your having to code explicit overrides for the more common modifications.

Some layout objects like slurs and ties curve, bend or point either up or down; others like stems and flags also move to right or left when they point up or down. This is controlled automatically when direction is set.

The following example shows in bar 1 the default behavior of stems, with those on high notes pointing down and those on low notes pointing up, followed by four notes with all stems forced down, four notes with all stems forced up, and finally four notes reverted back to the default behavior.

     
     a4 g c a
     \override Stem #'direction = #DOWN
     a g c a
     \override Stem #'direction = #UP
     a g c a
     \revert Stem #'direction
     a g c a

[image of music]

Here we use the constants DOWN and UP. These have the values -1 and +1 respectively, and these numerical values may be used instead. The value 0 may also be used in some cases. It is simply treated as meaning UP for stems, but for some objects it means ‘center’. There is a constant, CENTER which has the value 0.

However, these explicit overrides are not usually used, as there are simpler equivalent predefined commands available. Here is a table of the commonest. The meaning of each is stated where it is not obvious.

Down/Left Up/Right Revert Effect
\arpeggioArrowDown \arpeggioArrowUp \arpeggioNormal Arrow is at bottom, at top, or no arrow
\dotsDown \dotsUp \dotsNeutral Direction of movement to avoid staff lines
\dynamicDown \dynamicUp \dynamicNeutral
\phrasingSlurDown \phrasingSlurUp \phrasingSlurNeutral Note: distinct from slur commands
\slurDown \slurUp \slurNeutral
\stemDown \stemUp \stemNeutral
\textSpannerDown \textSpannerUp \textSpannerNeutral Text entered as spanner is below/above staff
\tieDown \tieUp \tieNeutral
\tupletDown \tupletUp \tupletNeutral Tuplets are below/above notes

Note that these predefined commands may not be preceded by \once. If you wish to limit the effect to a single note you must either use the equivalent \once \override command or use the predefined command followed after the affected note by the corresponding \xxxNeutral command.

Fingering

The placement of fingering is also affected by the value of its direction property, but there are special commands which allow the fingering of individual notes of chords to be controlled, with the fingering being placed above, below, to the left or to the right of each note.

First, here's the effect of direction on fingering, the first bar shows the default, then the effect of specifying DOWN and UP:

     
     c-5 a-3 f-1 c'-5
     \override Fingering #'direction = #DOWN
     c-5 a-3 f-1 c'-5
     \override Fingering #'direction = #UP
     c-5 a-3 f-1 c'-5

[image of music]

This is how to control fingering on single notes, but the direction property is ignored for chords. Instead, by default, the fingering is automatically placed both above and below the notes of a chord, as shown:

     
     <c-5 g-3>
     <c-5 g-3 e-2>
     <c-5 g-3 e-2 c-1>

[image of music]

Greater control over the placement of fingering of the individual notes in a chord is possible by using the \set fingeringOrientations command. The format of this command is

\set fingeringOrientations = #'([up] [left/right] [down])

\set is used because fingeringOrientations is a property of the Voice context, created and used by the New_fingering_engraver.

The property may be set to a list of one to three values. It controls whether fingerings may be placed above (if up appears in the list), below (if down appears), to the left (if left appears, or to the right (if right appears). Conversely, if a location is not listed, no fingering is placed there. LilyPond takes these constraints and works out the best placement for the fingering of the notes of the following chords. Note that left and right are mutually exclusive – fingering may be placed only on one side or the other, not both.

To control the placement of the fingering of a single note using this command it is necessary to write it as a single note chord by placing angle brackets round it.

Here are a few examples:

     
     \set fingeringOrientations = #'(left)
     <f-2>
     < c-1  e-2 g-3 b-5 > 4
     \set fingeringOrientations = #'(left)
     <f-2>
     < c-1  e-2 g-3 b-5 > 4
     \set fingeringOrientations = #'(up left down)
     <f-2>
     < c-1  e-2 g-3 b-5 > 4
     \set fingeringOrientations = #'(up left)
     <f-2>
     < c-1  e-2 g-3 b-5 > 4
     \set fingeringOrientations = #'(right)
     <f-2>
     < c-1  e-2 g-3 b-5 > 4

[image of music]

If the fingering seems a little crowded the font-size could be reduced. The default value can be seen from the Fingering object in the IR to be -5, so let's try -7:

     
     \override Fingering #'font-size = #-7
     \set fingeringOrientations = #'(left)
     <f-2>
     < c-1  e-2 g-3 b-5 > 4
     \set fingeringOrientations = #'(left)
     <f-2>
     < c-1  e-2 g-3 b-5 > 4
     \set fingeringOrientations = #'(up left down)
     <f-2>
     < c-1  e-2 g-3 b-5 > 4
     \set fingeringOrientations = #'(up left)
     <f-2>
     < c-1  e-2 g-3 b-5 > 4
     \set fingeringOrientations = #'(right)
     <f-2>
     < c-1  e-2 g-3 b-5 > 4

[image of music]

This page is for LilyPond-2.11.58 (development-branch).

Report errors to http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs.

Your suggestions for the documentation are welcome.

Other languages: espaƱol.