Next: , Previous: Text scripts, Up: Text


8.1.2 Text and line spanners

Some performance indications, e.g., rallentando and accelerando and trills are written as text and are extended over many measures with lines, sometimes dotted or wavy.

These all use the same routines as the glissando for drawing the texts and the lines, and tuning their behavior is therefore also done in the same way. It is done with a spanner, and the routine responsible for drawing the spanners is ly:line-interface::print. This routine determines the exact location of the two span points and draws a line in between, in the style requested.

Here is an example of the different line styles available, and how to tune them.

d2 \glissando d'2
\once \override Glissando #'dash-fraction = #0.5
d,2 \glissando d'2
\override Glissando #'style = #'dotted-line
d,2 \glissando d'2
\override Glissando #'style = #'zigzag
d,2 \glissando d'2
\override Glissando #'style = #'trill
d,2 \glissando d'2

[image of music]

The information that determines the end-points is computed on-the-fly for every graphic object, but it is possible to override these.

e2 \glissando f
\once \override Glissando #'bound-details #'right #'Y = #-2
e2 \glissando f

[image of music]

The Glissando object, like any other using the ly:line-interface::print routine, carries a nested association list. In the above statement, the value for Y is set to -2 for the association list corresponding to the right end point. Of course, it is also possible to adjust the left side with left instead of right.

If Y is not set, the value is computed from the vertical position of right attachment point of the spanner.

In case of a line break, the values for the span-points are extended with contents of the left-broken and right-broken sublists, for example

\override Glissando #'breakable = ##T 
\override Glissando #'bound-details #'right-broken #'Y = #-3
c1 \glissando \break
f1

[image of music]

The following properties can be used for the

Y
This sets the Y-coordinate of the end point, in staff space. By default, it is the center of the bound object, so for a glissando it points to the vertical center of the note head.

For horizontal spanners, such as text spanner and trill spanners, it is hardcoded to 0.

attach-dir
This determines where the line starts and ends in X-direction, relative to the bound object. So, a value of -1 (or LEFT) makes the line start/end at the left side of the note head it is attached to.
X
This is the absolute coordinate of the end point. It is usually computed on the fly, and there is little use in overriding it.
stencil
Line spanners may have symbols at the beginning or end, which is contained in this sub-property. This is for internal use, it is recommended to use text.
text
This is a markup that is evaluated to yield stencil. It is used to put cresc. and tr on horizontal spanners.
          
          \override TextSpanner #'bound-details #'left #'text
             = \markup { \small \bold Slower }
          c2\startTextSpan b c a\stopTextSpan
     

[image of music]


stencil-align-dir-y
stencil-offset
Without setting this, the stencil is simply put there at the end-point, as defined by the X and Y sub properties. Setting either stencil-align-dir-y or stencil-offset will move the symbol at the edge relative to the end point of the line
     
     \override TextSpanner #'bound-details #'left #'stencil-align-dir-y = #DOWN
     \override TextSpanner #'bound-details #'right #'stencil-align-dir-y = #UP
     
     \override TextSpanner #'bound-details #'left #'text = #"gggg"
     \override TextSpanner #'bound-details #'right #'text = #"hhhh"
     c4^\startTextSpan c c c \stopTextSpan

[image of music]


arrow
Setting this sub property to #t produce an arrowhead at the end of the line.
padding
This sub property controls the space between the specified end-point of the line and the actual end. Without padding, a glissando would start and end in the center of each note head.

See also

Program reference: TextSpanner, Glissando, VoiceFollower, TrillSpanner, line-spanner-interface.

Examples: expressive/line-styles.ly , expressive/line-arrows.ly


Next: , Previous: Text scripts, Up: Text

Esta página corresponde a LilyPond-2.11.28 (rama de desarrollo).

Informe de los fallos a http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs.

Your suggestions for the documentation are welcome.