]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/expressive.itely
Neil's patch for hairpin to bar line.
[lilypond.git] / Documentation / user / expressive.itely
index 9a938f6368030737d8eaaff9e2c2ae17d9fbe17d..50d9e322c4f78c10041b86ab78d6810844b38c86 100644 (file)
@@ -6,9 +6,13 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
+@c \version "2.11.38"
+
 @node Expressive marks
 @section Expressive marks
 
 @node Expressive marks
 @section Expressive marks
 
+@lilypondfile[quote]{expressive-headword.ly}
+
 @menu
 * Attached to notes::           
 * Curves::                      
 @menu
 * Attached to notes::           
 * Curves::                      
 @node Attached to notes
 @subsection Attached to notes
 
 @node Attached to notes
 @subsection Attached to notes
 
-
 @menu
 * Articulations and ornamentations::  
 * Dynamics::                    
 @menu
 * Articulations and ornamentations::  
 * Dynamics::                    
+* New dynamic marks::           
 @end menu
 
 @node Articulations and ornamentations
 @end menu
 
 @node Articulations and ornamentations
-@unnumberedsubsubsec Articulations and ornamentations
+@subsubsection Articulations and ornamentations
 
 
-@cindex Articulations
+@cindex articulations
 @cindex scripts
 @cindex ornaments
 
 @cindex scripts
 @cindex ornaments
 
-A variety of symbols can appear above and below notes to indicate
-different characteristics of the performance.  All these symbols
-can be attached to a note using the syntax @var{note}@code{\}@var{name}. 
+A variety of symbols that denote articulations, ornamentations,
+and other performance indications can be attached to a note using
+this syntax:
 
 
-The possible values for @var{name} are listed in @ref{List of
-articulations}.
+@example
+@var{note}\@var{name}
+@end example
 
 
-Some of these articulations have shorthands for easier entry.  They
-are used by adding a dash and the character signifying
-the articulation to the note name.  The available shorthands and
-their output are:
+The possible values for @var{name} are listed in @ref{List of
+articulations}.  For example:
 
 
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-c4-.  c--   c-+   c-|   
-c->   c-^   c-_         
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+c4\staccato c\mordent b2\turn
+c1\fermata
 @end lilypond
 
 @end lilypond
 
-The marks are automatically placed, but the direction can be
-forced as well.  Like other pieces of LilyPond code, @code{_} will
-place them below the staff, and @code{^} will place them above.
-This applies both to the shorthands and the fully named
-articulations.  For the shorthands, the dash itself should be
-omitted; the shorthand signs replace it:
+@cindex marcato
+@cindex stopped
+@cindex tenuto
+@cindex staccatissimo
+@cindex accent
+@cindex staccato
+@cindex portato
 
 
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-c4^^ c4_^
-c\fermata c^\fermata c_\fermata
+Some of these articulations have shorthands for easier entry.
+Shorthands are appended to the note name, and their syntax
+consists of a dash (@tie{}@code{-}) followed by a symbol
+signifying the articulation.  Predefined shorthands exist for
+@notation{marcato}, @notation{stopped}, @notation{tenuto},
+@notation{staccatissimo}, @notation{accent}, @notation{staccato},
+and @notation{portato}.  Their corresponding output appears as
+follows:
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+c4-^  c-+  c--  c-|
+c->   c-.  c-_
 @end lilypond
 
 @end lilypond
 
+The rules for the default placement of articulations are defined
+in @file{scm/@/script@/.scm}.  Articulations and ornamentations
+may be manually placed above or below the staff, see
+@ref{Controlling direction and placement}.
 
 
-@cindex accent
-@cindex marcato
-@cindex staccatissimo
 @cindex espressivo
 @cindex fermata
 @cindex espressivo
 @cindex fermata
-@cindex stopped
-@cindex staccato
-@cindex portato
-@cindex tenuto
 @cindex upbow
 @cindex downbow
 @cindex foot marks
 @cindex upbow
 @cindex downbow
 @cindex foot marks
@@ -93,60 +103,37 @@ c\fermata c^\fermata c_\fermata
 @cindex varcoda
 
 
 @cindex varcoda
 
 
-@commonprop
+@snippets
 
 
-The meanings of the shorthands can be changed.  They are defined
-in @file{ly/@/script@/-init@/.ly}, where the variables  
-@code{DashDot}, @code{DashDash}, @code{DashPlus}, @code{DashBar},
-@code{DashLarger}, @code{DashHat}, and @code{DashUnderscore}
-are associated with the default articulation marks.  If you want,
-e.g., @code{-+} to produce a trill instead of a "+", you can
-redefine the variable in your document:
+@c Once revised, add to LSR.
 
 
-@lilypond[quote,ragged-right,verbatim]
-\relative c'' { c-+ }       
-dashPlus = "trill"
-\relative c'' { c-+ }       
-@end lilypond
-
-The vertical ordering of scripts is controlled with the
-@code{script-priority} property.  The lower this number, the
-closer it will be put to the note.  In this example, the
-@internalsref{TextScript} (the sharp symbol) first has the lowest
-priority, so it is put lowest in the first example.  In the
-second, the prall trill (the @internalsref{Script}) has the
-lowest, so it is on the inside.  When two objects have the same
-priority, the order in which they are entered decides which one
-comes first.
-
-
-@commonprop
+The shorthands are defined in @file{ly/@/script@/-init@/.ly},
+where the variables @code{dashHat}, @code{dashPlus},
+@code{dashDash}, @code{dashBar}, @code{dashLarger},
+@code{dashDot}, and @code{dashUnderscore} are assigned default
+values.  The default values for the shorthands can be modified.
+For example, to associate the @code{-+} (@code{dashPlus})
+shorthand with the @notation{trill} symbol instead of the default
+@notation{+} symbol, assign the value @code{trill} to the variable
+@code{dashPlus}:
 
 
-The meanings of the shorthands can be changed.  They are defined
-in @file{ly/@/script@/-init@/.ly}, where the variables  
-@code{DashDot}, @code{DashDash}, @code{DashPlus}, @code{DashBar},
-@code{DashLarger}, @code{DashHat}, and @code{DashUnderscore}
-are associated with the default articulation marks.  If you want,
-e.g., @code{-+} to produce a trill instead of a "+", you can
-redefine the variable in your document:
-
-@lilypond[quote,ragged-right,verbatim]
-\relative c'' { c-+ }       
+@lilypond[verbatim,quote,ragged-right]
+\relative c'' { c-+ }
 dashPlus = "trill"
 dashPlus = "trill"
-\relative c'' { c-+ }       
+\relative c'' { c-+ }
 @end lilypond
 
 The vertical ordering of scripts is controlled with the
 @code{script-priority} property.  The lower this number, the
 closer it will be put to the note.  In this example, the
 @end lilypond
 
 The vertical ordering of scripts is controlled with the
 @code{script-priority} property.  The lower this number, the
 closer it will be put to the note.  In this example, the
-@internalsref{TextScript} (the sharp symbol) first has the lowest
+@code{TextScript} (the sharp symbol) first has the lowest
 priority, so it is put lowest in the first example.  In the
 priority, so it is put lowest in the first example.  In the
-second, the prall trill (the @internalsref{Script}) has the
+second, the @notation{prall trill} (the @code{Script}) has the
 lowest, so it is on the inside.  When two objects have the same
 priority, the order in which they are entered decides which one
 comes first.
 
 lowest, so it is on the inside.  When two objects have the same
 priority, the order in which they are entered decides which one
 comes first.
 
-@lilypond[verbatim,relative=3,ragged-right,fragment,quote]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=3]
 \once \override TextScript #'script-priority = #-100
 a4^\prall^\markup { \sharp }
 
 \once \override TextScript #'script-priority = #-100
 a4^\prall^\markup { \sharp }
 
@@ -157,19 +144,27 @@ a4^\prall^\markup { \sharp }
 
 @seealso
 
 
 @seealso
 
-Internals Reference: @internalsref{Script}.
+Music Glossary: @rglos{tenuto}, @rglos{accent}, @rglos{staccato},
+@rglos{portato}.
+
+Snippets:
+@rlsr{Expressive marks}.
+
+Internals Reference: @rinternals{Script},
+@rinternals{TextScript}.
 
 
 
 
-@refbugs
+@knownissues
 
 These signs appear in the printed output but have no effect on the
 MIDI rendering of the music.
 
 
 @node Dynamics
 
 These signs appear in the printed output but have no effect on the
 MIDI rendering of the music.
 
 
 @node Dynamics
-@unnumberedsubsubsec Dynamics
+@subsubsection Dynamics
 
 
-@cindex Dynamics
+@cindex dynamics
+@funindex \ppppp
 @funindex \pppp
 @funindex \ppp
 @funindex \pp
 @funindex \pppp
 @funindex \ppp
 @funindex \pp
@@ -188,127 +183,159 @@ MIDI rendering of the music.
 @funindex \sfz
 @funindex \rfz
 
 @funindex \sfz
 @funindex \rfz
 
-Absolute dynamic marks are specified using a command after a note
-@code{c4\ff}.  The available dynamic marks are @code{\ppppp},
-@code{\pppp}, @code{\ppp}, @code{\pp}, @code{\p}, @code{\mp},
-@code{\mf}, @code{\f}, @code{\ff}, @code{\fff}, @code{\ffff},
-@code{\fp}, @code{\sf}, @code{\sff}, @code{\sp}, @code{\spp},
-@code{\sfz}, and @code{\rfz}.  The dynamic marks can be placed
-above or below the staff with @code{_} and @code{^}, just like
-articulation marks. 
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
-c2\ppp c\mp 
+Absolute dynamic marks are specified using a command after a note,
+such as @code{c4\ff}.  The available dynamic marks are
+@code{\ppppp}, @code{\pppp}, @code{\ppp}, @code{\pp}, @code{\p},
+@code{\mp}, @code{\mf}, @code{\f}, @code{\ff}, @code{\fff},
+@code{\ffff}, @code{\fp}, @code{\sf}, @code{\sff}, @code{\sp},
+@code{\spp}, @code{\sfz}, and @code{\rfz}.  The dynamic marks may
+be manually placed above or below the staff, see @ref{Controlling
+direction and placement}.
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+c2\ppp c\mp
 c\rfz c^\mf
 c\rfz c^\mf
-c_\spp c_\staccato^\ff
+c_\spp c^\ff
 @end lilypond
 
 @end lilypond
 
+@cindex hairpin
 @funindex \<
 @funindex \>
 @funindex \!
 @funindex \<
 @funindex \>
 @funindex \!
+@funindex \cr
+@funindex \decr
+
+A @notation{crescendo} mark is started with @code{\<} and
+terminated with @code{\!}, an absolute dynamic, or an additional
+@notation{crescendo} or @notation{decrescendo} mark.  A
+@notation{decrescendo} mark is started with @code{\>} and is also
+terminated with @code{\!}, an absolute dynamic, or another
+@notation{crescendo} or @notation{decrescendo} mark.  @code{\cr}
+and @code{\decr} may be used instead of @code{\<} and @code{\>}.
+@notation{Hairpins} are engraved by default using this notation.
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+c2\< c\!
+d2\< d\f
+e2\< e\>
+f2\> f\!
+e2\> e\mp
+d2\> d\>
+c1\!
+@end lilypond
 
 
-A crescendo mark is started with @code{\<} and terminated with
-@code{\!} or an absolute dynamic.  A decrescendo is started with
-@code{\>} and is also terminated with @code{\!} or an absolute
-dynamic.  @code{\cr} and @code{\decr} may be used instead of
-@code{\<} and @code{\>}.  They can be engraved either using a
-graphical sign (a @q{hairpin}), or with textual signs.
+A @notation{hairpin} normally starts at the left edge of the
+beginning note and ends on the right edge of the ending note.  If
+the ending note falls on the downbeat, the @notation{hairpin} ends
+on the immediately preceding bar line.  The following example
+illustrates this behavior:
 
 
-Because these marks are bound to notes, you must use spacer notes
-if multiple marks are needed during one note.
+@c This example currently does not work. -pm
+@c TODO: Add link to new snippet for #'to-barline
 
 
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-c\< c\! d\> e\!
-<< f1 { s4 s4\< s4\! \> s4\! } >>
+Spacer notes are needed to engrave multiple marks on one note.
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+c4\< c\! d\> e\!
+<< f1 { s4 s4\< s4\> s4\! } >>
 @end lilypond
 
 @end lilypond
 
-This may give rise to very short hairpins.  Use
-@code{minimum-length} in
-@internalsref{Voice}.@internalsref{Hairpin} to lengthen them, for
-example:
+If hairpins are too short, they can be lengthened using the
+following method:
 
 
-@example
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+c4\< c\! d\> e\!
 \override Voice.Hairpin #'minimum-length = #5
 \override Voice.Hairpin #'minimum-length = #5
-@end example
-
-@noindent
-A hairpin normally starts at the left edge of the beginning note
-and ends on the right edge of the ending note.  If the ending note
-falls on the downbeat, the hairpin ends on the immediately
-preceding barline.  This may be modified by setting the
-@code{hairpinToBarline} property,
-@cindex Hairpin
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-e4\< e2. e1\!
-\set hairpinToBarline = ##f
-e4\< e2. e1\!
+<< f1 { s4 s4\< s4\> s4\! } >>
 @end lilypond
 
 @cindex espressivo, articulation
 @end lilypond
 
 @cindex espressivo, articulation
+
 In some situations the @code{\espressivo} articulation mark may be
 In some situations the @code{\espressivo} articulation mark may be
-suitable to indicate a crescendo and decrescendo on the one note:
+the appropriate choice to indicate a crescendo and decrescendo on
+one note:
 
 
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-c2 b4 a g1\espressivo
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+c2 b4 a
+g1\espressivo
 @end lilypond
 
 @cindex al niente
 @cindex niente, al
 
 @end lilypond
 
 @cindex al niente
 @cindex niente, al
 
-Hairpins may be printed with a circled tip (al niente notation) by
-setting the @code{circled-tip} property:
+Hairpins may be printed with a circled tip (al niente notation):
 
 
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 \override Hairpin #'circled-tip = ##t
 c2\< c\!
 c4\> c\< c2\!
 @end lilypond
 
 \override Hairpin #'circled-tip = ##t
 c2\< c\!
 c4\> c\< c2\!
 @end lilypond
 
-
 @cindex crescendo
 @cindex decrescendo
 @cindex diminuendo
 @cindex crescendo
 @cindex decrescendo
 @cindex diminuendo
-
-You can use text saying @emph{cresc.}, @emph{decr.}, or
-@emph{dim.} instead of hairpins with the commands \setTextCresc,
-\setTextDim, and \setTextDecresc.  The corresponding
-\setHairpinCresc, \setHairpinDim, and \setHairpinDecresc will
-revert to hairpins again: 
-
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
+@funindex \setTextCresc
+@funindex \setTextDim
+@funindex \setTextDecr
+@funindex \setTextDecresc
+@funindex \setHairpinCresc
+@funindex \setHairpinDim
+@funindex \setHairpinDecresc
+
+Crescendos and decrescendos can be engraved as @notation{cresc.},
+@notation{decresc.}, @notation{decr.}, or @notation{dim.} instead
+of using hairpins with the commands @code{\setTextCresc},
+@code{\setTextDecresc}, @code{\setTextDecr}, and
+@code{\setTextDim}.  The corresponding @code{\setHairpinCresc},
+@code{\setHairpinDim}, and @code{\setHairpinDecresc} will revert
+to hairpins again:
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 \setTextCresc
 c\< d e f\!
 \setHairpinCresc
 e\> d c b\!
 \setTextDecresc
 \setTextCresc
 c\< d e f\!
 \setHairpinCresc
 e\> d c b\!
 \setTextDecresc
+e\> d e f\!
+\setTextDecr
 c\> d e f\!
 \setTextDim
 e\> d c b\!
 @end lilypond
 
 You can also supply your own texts and change the style of the
 c\> d e f\!
 \setTextDim
 e\> d c b\!
 @end lilypond
 
 You can also supply your own texts and change the style of the
-spanner line with the properties @code{\crescendoText},
-@code{\crescendoSpanner}, @code{\decrescendoText}, and
-@code{\decrescendoSpanner}. Available values for the spanner
+spanner line with the properties @code{crescendoText},
+@code{crescendoSpanner}, @code{decrescendoText}, and
+@code{decrescendoSpanner}.  Available values for the spanner
 properties are @code{hairpin}, @code{line}, @code{dashed-line},
 properties are @code{hairpin}, @code{line}, @code{dashed-line},
-and @code{dotted-line}. If unset, a hairpin crescendo is used:
+and @code{dotted-line}.  If unset, a hairpin crescendo is used:
 
 
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
 \set crescendoText = \markup { \italic "cresc. poco" }
 \set crescendoSpanner = #'dotted-line
 a'2\< a a a a a a a\!\mf
 @end lilypond
 
 \set crescendoText = \markup { \italic "cresc. poco" }
 \set crescendoSpanner = #'dotted-line
 a'2\< a a a a a a a\!\mf
 @end lilypond
 
-
-To create new dynamic marks or text that should be aligned with
-dynamics, see @ref{New dynamic marks}.
+To create new absolute dynamic marks or text that should be
+aligned with dynamics, see @ref{New dynamic marks}.
 
 Vertical positioning of dynamics is handled by
 
 Vertical positioning of dynamics is handled by
-@internalsref{DynamicLineSpanner}.
+@rinternals{DynamicLineSpanner}.
 
 
 
 
-@commonprop
+@predefined
+
+@funindex \dynamicUp
+@code{\dynamicUp},
+@funindex \dynamicDown
+@code{\dynamicDown},
+@funindex \dynamicNeutral
+@code{\dynamicNeutral}.
+
+
+@snippets
+
+@c Add LilyPond examples to these snippets. -pm
 
 Dynamics that occur at, begin on, or end on the same note will be
 vertically aligned.  If you want to ensure that dynamics are
 
 Dynamics that occur at, begin on, or end on the same note will be
 vertically aligned.  If you want to ensure that dynamics are
@@ -319,45 +346,88 @@ the @code{staff-padding} property.
 \override DynamicLineSpanner #'staff-padding = #4
 @end example
 
 \override DynamicLineSpanner #'staff-padding = #4
 @end example
 
+@noindent
 You may also use this property if the dynamics are colliding with
 other notation.
 
 You may also use this property if the dynamics are colliding with
 other notation.
 
-Crescendi and decrescendi that cross a line break will be
-continued on the second line.  If they end on the first note of a
-new line, nothing will be printed on that line.  To change this
-behavior, use
+@notation{Crescendi} and @notation{decrescendi} that cross a line
+break will be continued on the second line.  If they end on the
+first note of a new line, nothing will be printed on that line.
+To change this behavior, use
 
 @example
 \override Score.Hairpin #'after-line-breaking = ##t
 @end example
 
 
 @example
 \override Score.Hairpin #'after-line-breaking = ##t
 @end example
 
-Text style dynamic changes (such as @emph{cresc.} and @emph{dim.})
-are printed with a dashed line showing their extent.  To surpress
-printing this line, use
+Text style dynamic changes (such as @notation{cresc.} and
+@notation{dim.}) are printed with a dashed line showing their
+extent.  To suppress printing this line, use
 
 @example
 \override DynamicTextSpanner #'dash-period = #-1.0
 @end example
 
 
 
 @example
 \override DynamicTextSpanner #'dash-period = #-1.0
 @end example
 
 
-@refcommands
+@seealso
 
 
-@funindex \dynamicUp
-@code{\dynamicUp},
-@funindex \dynamicDown
-@code{\dynamicDown},
-@funindex \dynamicNeutral
-@code{\dynamicNeutral}.
+@c TODO: Add hairpin to glossary.
 
 
+Music Glossary:
+@rglos{crescendo},
+@rglos{decrescendo}.
 
 
-@seealso
+Learning Manual:
+@rlearning{Articulation and dynamics}.
+
+Snippets:
+@rlsr{Expressive marks}.
+
+Internals Reference:
+@rinternals{DynamicText},
+@rinternals{Hairpin},
+@rinternals{DynamicLineSpanner}.
 
 
-Internals Reference: @internalsref{DynamicText},
-@internalsref{Hairpin}.  Vertical positioning of these symbols is
-handled by @internalsref{DynamicLineSpanner}.
-Glossary: @rglos{Hairpin}, @rglos{crescendo}, @rglos{decrescendo}
 
 
-@c TODO: add link to LM directions
+@node New dynamic marks
+@subsubsection New dynamic marks
+
+It is possible to print new dynamic marks or text that should be
+aligned with dynamics.  Use @code{make-dynamic-script} to create
+these marks.  Note that the dynamic font only contains the
+characters @code{f,m,p,r,s} and @code{z}.
+
+Some situations (such as dynamic marks) have preset font-related
+properties.  If you are creating text in such situations, it is
+advisable to cancel those properties with @code{normal-text}.  See
+@ref{Text markup commands}, for more details.
+
+@cindex make-dynamic-script
+
+@lilypond[quote,verbatim,ragged-right]
+sfzp = #(make-dynamic-script "sfzp")
+\relative c' {
+  c4 c c\sfzp c
+}
+@end lilypond
+
+@cindex Dynamics, editorial
+@cindex Dynamics, parenthesis
+
+It is also possible to print dynamics in round parenthesis or
+square brackets.  These are often used for adding editorial
+dynamics.
+
+@lilypond[quote,verbatim,ragged-right]
+rndf = \markup{ \center-align {\line { \bold{\italic (}
+  \dynamic f \bold{\italic )} }} }
+boxf = \markup{ \bracket { \dynamic f } }
+{ c'1_\rndf c'1_\boxf }
+@end lilypond
+
+@seealso
+
+Snippets:
+@rlsr{Expressive marks}.
 
 
 @node Curves
 
 
 @node Curves
@@ -371,45 +441,33 @@ Glossary: @rglos{Hairpin}, @rglos{crescendo}, @rglos{decrescendo}
 @end menu
 
 @node Slurs
 @end menu
 
 @node Slurs
-@unnumberedsubsubsec Slurs
+@subsubsection Slurs
 
 
-@cindex Slurs
+@cindex slurs
 
 
-A slur indicates that notes are to be played bound or
+A @notation{slur} indicates that notes are to be played bound or
 @emph{legato}.  They are entered using parentheses:
 
 @emph{legato}.  They are entered using parentheses:
 
-@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 f( g a) a8 b( a4 g2 f4)
 <c e>2( <b d>2)
 @end lilypond
 
 Just as with ties, the direction of a slur can be specified with
 @code{\slur@emph{DIR}}, where @code{@emph{DIR}} is either
 f( g a) a8 b( a4 g2 f4)
 <c e>2( <b d>2)
 @end lilypond
 
 Just as with ties, the direction of a slur can be specified with
 @code{\slur@emph{DIR}}, where @code{@emph{DIR}} is either
-@code{Up}, @code{Down}, or @code{Neutral} (automatically
-selected).  The shorthands are also available: by adding
-@code{_} or @code{^} before the opening parentheses, the direction
-is also set.  
+@code{Up}, @code{Down}, or @code{Neutral} (@code{Neutral} is the
+default).  Slurs may be manually placed above or below the staff,
+see @ref{Controlling direction and placement}.
 
 
-@lilypond[relative=2,ragged-right,quote,verbatim,fragment]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 c4_( c) c^( c)
 @end lilypond
 
 c4_( c) c^( c)
 @end lilypond
 
-Only one slur can be printed at once.  If you need to print a long
-slur over a few small slurs, please see @ref{Phrasing slurs}.
-
-
-@commonprop
+Using this method, only one slur can be printed at once.  To print
+a long slur over a few small slurs, see @ref{Phrasing slurs}.
 
 
-Some composers write two slurs when they want legato chords.  This
-can be achieved in LilyPond by setting @code{doubleSlurs},
-
-@lilypond[verbatim,ragged-right,relative,fragment,quote]
-\set doubleSlurs = ##t
-<c e>4 ( <d f> <c e> <d f> )
-@end lilypond
 
 
-
-@refcommands
+@predefined
 
 @funindex \slurUp
 @code{\slurUp},
 
 @funindex \slurUp
 @code{\slurUp},
@@ -424,22 +482,41 @@ can be achieved in LilyPond by setting @code{doubleSlurs},
 @funindex \slurSolid
 @code{\slurSolid}.
 
 @funindex \slurSolid
 @code{\slurSolid}.
 
+
+@snippets
+
+Some composers write two slurs when they want legato chords.  This
+can be achieved in LilyPond by setting @code{doubleSlurs},
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
+\set doubleSlurs = ##t
+<c e>4 ( <d f> <c e> <d f> )
+@end lilypond
+
+
 @seealso
 
 @seealso
 
-Internals Reference: @internalsref{Slur}.
+Music Glossary: @rglos{slur}
+
+Snippets:
+@rlsr{Expressive marks}.
+
+Internals Reference: @rinternals{Slur}.
 
 
 @node Phrasing slurs
 
 
 @node Phrasing slurs
-@unnumberedsubsubsec Phrasing slurs
+@subsubsection Phrasing slurs
 
 @cindex phrasing slurs
 @cindex phrasing marks
 
 @cindex phrasing slurs
 @cindex phrasing marks
+@funindex \(
+@funindex \)
 
 A phrasing slur (or phrasing mark) connects notes and is used to
 indicate a musical sentence.  It is written using @code{\(} and
 @code{\)} respectively:
 
 
 A phrasing slur (or phrasing mark) connects notes and is used to
 indicate a musical sentence.  It is written using @code{\(} and
 @code{\)} respectively:
 
-@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
 \time 6/4 c'\( d( e) f( e) d\)
 @end lilypond
 
 \time 6/4 c'\( d( e) f( e) d\)
 @end lilypond
 
@@ -447,13 +524,14 @@ Typographically, the phrasing slur behaves almost exactly like a
 normal slur.  However, they are treated as different objects.  A
 @code{\slurUp} will have no effect on a phrasing slur; instead,
 use @code{\phrasingSlurUp}, @code{\phrasingSlurDown}, and
 normal slur.  However, they are treated as different objects.  A
 @code{\slurUp} will have no effect on a phrasing slur; instead,
 use @code{\phrasingSlurUp}, @code{\phrasingSlurDown}, and
-@code{\phrasingSlurNeutral}, or use the shorthands @code{_} and
-@code{^}.
+@code{\phrasingSlurNeutral}.  Phrasing slurs may be manually
+placed above or below the staff, see @ref{Controlling direction
+and placement}.
 
 You cannot have simultaneous phrasing slurs.
 
 
 
 You cannot have simultaneous phrasing slurs.
 
 
-@refcommands
+@predefined
 
 @funindex \phrasingSlurUp
 @code{\phrasingSlurUp},
 
 @funindex \phrasingSlurUp
 @code{\phrasingSlurUp},
@@ -465,26 +543,32 @@ You cannot have simultaneous phrasing slurs.
 
 @seealso
 
 
 @seealso
 
-Internals Reference: @internalsref{PhrasingSlur}.
+Snippets:
+@rlsr{Expressive marks}.
+
+Internals Reference: @rinternals{PhrasingSlur}
 
 
 @node Breath marks
 
 
 @node Breath marks
-@unnumberedsubsubsec Breath marks
+@subsubsection Breath marks
 
 
-Breath marks are entered using @code{\breathe}
+@cindex breath marks
+@funindex \breathe
 
 
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+Breath marks are entered using @code{\breathe}:
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
 c'4 \breathe d4
 @end lilypond
 
 
 c'4 \breathe d4
 @end lilypond
 
 
-@commonprop
+@snippets
 
 The glyph of the breath mark can be tuned by overriding the
 @code{text} property of the @code{BreathingSign} layout object
 with any markup text.  For example,
 
 
 The glyph of the breath mark can be tuned by overriding the
 @code{text} property of the @code{BreathingSign} layout object
 with any markup text.  For example,
 
-@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
 c'4
 \override BreathingSign #'text
   = #(make-musicglyph-markup "scripts.rvarcomma")
 c'4
 \override BreathingSign #'text
   = #(make-musicglyph-markup "scripts.rvarcomma")
@@ -492,25 +576,60 @@ c'4
 d4
 @end lilypond
 
 d4
 @end lilypond
 
+
 @seealso
 
 @seealso
 
-Internals Reference: @internalsref{BreathingSign}.
+Snippets:
+@rlsr{Expressive marks}.
+@c @lsr{expressive,breathing-sign.ly}.
 
 
-Examples: @lsr{expressive,breathing-sign.ly}
+Internals Reference: @rinternals{BreathingSign}
 
 
 @node Falls and doits
 
 
 @node Falls and doits
-@unnumberedsubsubsec Falls and doits
+@subsubsection Falls and doits
 
 
-Falls and doits can be added to notes using the @code{\bendAfter}
-command,
+@cindex falls
+@cindex doits
+@funindex \bendAfter
 
 
-@lilypond[fragment,ragged-right,relative=2]
+@notation{Falls} and @notation{doits} can be added to notes using
+the @code{\bendAfter} command:
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+c2-\bendAfter #+4
+c-\bendAfter #-4
+c-\bendAfter #+8
+c-\bendAfter #-8
+@end lilypond
+
+The dash (@tie{-}) following the note name is @emph{required} when
+writing @notation{falls} and @notation{doits}.
+
+
+@snippets
+
+The @code{shortest-duration-space} property may have to be tweaked
+to adjust the shape of @notation{falls} and @notation{doits}.
+
+@c Fix this snippet. The tweak does not work. -pm
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 \override Score.SpacingSpanner #'shortest-duration-space = #3.0
 c4-\bendAfter #+5
 c4-\bendAfter #-3
 @end lilypond
 
 \override Score.SpacingSpanner #'shortest-duration-space = #3.0
 c4-\bendAfter #+5
 c4-\bendAfter #-3
 @end lilypond
 
+
+@seealso
+
+@c TODO: add falls and doits to glossary.
+@c Music Glossary: @rglos{falls}, @rglos{doits}.
+
+Snippets:
+@rlsr{Expressive marks}.
+
+
 @node Lines
 @subsection Lines
 
 @node Lines
 @subsection Lines
 
@@ -518,82 +637,87 @@ c4-\bendAfter #-3
 * Glissando::                   
 * Arpeggio::                    
 * Trills::                      
 * Glissando::                   
 * Arpeggio::                    
 * Trills::                      
-* Analysis brackets::           
 @end menu
 
 @node Glissando
 @end menu
 
 @node Glissando
-@unnumberedsubsubsec Glissando
+@subsubsection Glissando
 
 
-@cindex Glissando
+@cindex glissando
 @funindex \glissando
 
 @funindex \glissando
 
-A glissando is a smooth change in pitch.  It is denoted by a line
-or a wavy line between two notes.  It is requested by attaching
-@code{\glissando} to a note
+A @notation{glissando} is a smooth change in pitch.  It is denoted
+by a line or a wavy line between two notes.  A
+@notation{glissando} is created by attaching @code{\glissando} to
+a note:
 
 
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 c2\glissando c'
 \override Glissando #'style = #'zigzag
 c2\glissando c,
 @end lilypond
 
 c2\glissando c'
 \override Glissando #'style = #'zigzag
 c2\glissando c,
 @end lilypond
 
-@commonprop
 
 
+@snippets
 
 
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[verbatim,quote,ragged-right]
 I = \once \override NoteColumn #'ignore-collision = ##t
 
 I = \once \override NoteColumn #'ignore-collision = ##t
 
-\relative <<
+\relative c' <<
   { \oneVoice \stemDown f2 \glissando \stemNeutral a } \\
   { \oneVoice \I c2 \glissando \I d, }
 >>
 @end lilypond
 
 
   { \oneVoice \stemDown f2 \glissando \stemNeutral a } \\
   { \oneVoice \I c2 \glissando \I d, }
 >>
 @end lilypond
 
 
-
 @seealso
 
 @seealso
 
-Internals Reference: @internalsref{Glissando}.
+Music Glossary: @rglos{glissando}
+
+Snippets:
+@rlsr{Expressive marks}.
 
 
-Glossary: @rglos{falls}, @rglos{doits}
-Example files:
-@lsr{expressive,glissando.ly}, @lsr{expressive,line-styles.ly}
+@c FIXME: I need to figure out what's up with these.  -gp
+@c @lsr{expressive,glissando.ly},
+@c @lsr{expressive,line-styles.ly}
 
 
+Internals Reference: @rinternals{Glissando}
 
 
-@refbugs
+
+@knownissues
 
 Printing text over the line (such as @emph{gliss.}) is not
 supported.
 
 
 @node Arpeggio
 
 Printing text over the line (such as @emph{gliss.}) is not
 supported.
 
 
 @node Arpeggio
-@unnumberedsubsubsec Arpeggio
+@subsubsection Arpeggio
 
 
-@cindex Arpeggio
+@cindex arpeggio
 @cindex broken chord
 @cindex broken chord
-@funindex \arpeggio
 
 
-You can specify an arpeggio sign (also known as broken chord) on a
-chord by attaching an @code{\arpeggio} to the chord:
+You can specify an @notation{arpeggio} (also known as a
+@notation{broken chord}) on a chord by attaching an
+@code{\arpeggio} to the chord:
 
 
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
 <c e g c>\arpeggio
 @end lilypond
 
 <c e g c>\arpeggio
 @end lilypond
 
-A square bracket on the left is used to indicate that the chord should
-@emph{not} be arpeggiated:
+A square bracket on the left, denoted by @code{\arpeggioBracket},
+is used to indicate that the chord should @emph{not} be
+arpeggiated:
 
 
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
 \arpeggioBracket
 \arpeggioBracket
-<c' e g c>\arpeggio
+<c e g c>\arpeggio
 @end lilypond
 
 The direction of the arpeggio can be denoted by adding an
 @end lilypond
 
 The direction of the arpeggio can be denoted by adding an
-arrowhead to the wiggly line. This is done with the commands
-@code{arpeggioUp} and @code{arpeggioDown}. @code{arpeggioNeutral}
+arrowhead to the wiggly line.  This is done with the commands
+@code{arpeggioUp} and @code{arpeggioDown}.  @code{arpeggioNeutral}
 reverts to the arrow-less version:
 
 reverts to the arrow-less version:
 
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
 \new Voice {
   \arpeggioUp
   <c e g c>\arpeggio
 \new Voice {
   \arpeggioUp
   <c e g c>\arpeggio
@@ -605,13 +729,27 @@ reverts to the arrow-less version:
 @end lilypond
 
 
 @end lilypond
 
 
-@commonprop
+@predefined
+
+@funindex \arpeggio
+@code{\arpeggio},
+@funindex \arpeggioUp
+@code{\arpeggioUp},
+@funindex \arpeggioDown
+@code{\arpeggioDown},
+@funindex \arpeggioNeutral
+@code{\arpeggioNeutral},
+@funindex \arpeggioBracket
+@code{\arpeggioBracket}.
+
+
+@snippets
 
 In a @code{PianoStaff}, it is possible to let an arpeggio cross
 between the staves by setting the property
 
 In a @code{PianoStaff}, it is possible to let an arpeggio cross
 between the staves by setting the property
-@internalsref{PianoStaff}.@code{connectArpeggios}. 
+@code{PianoStaff}.@code{connectArpeggios}.
 
 
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
 \new PianoStaff <<
   \set PianoStaff.connectArpeggios = ##t
   \new Staff { <c' e g c>\arpeggio }
 \new PianoStaff <<
   \set PianoStaff.connectArpeggios = ##t
   \new Staff { <c' e g c>\arpeggio }
@@ -623,7 +761,7 @@ The same can be accomplished in contexts other than
 @code{PianoStaff} if the @code{Span_arpeggio_engraver} is included
 in the Score context.
 
 @code{PianoStaff} if the @code{Span_arpeggio_engraver} is included
 in the Score context.
 
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[verbatim,quote,ragged-right]
 \score {
   \new StaffGroup {
     \set Score.connectArpeggios = ##t
 \score {
   \new StaffGroup {
     \set Score.connectArpeggios = ##t
@@ -639,18 +777,18 @@ in the Score context.
   }
   \layout {
     \context {
   }
   \layout {
     \context {
-      \Score 
+      \Score
       \consists "Span_arpeggio_engraver"
       \consists "Span_arpeggio_engraver"
-    } 
+    }
   }
 }
 @end lilypond
 
   }
 }
 @end lilypond
 
-Similarly,  an arpeggio can be drawn across notes in
-different voices on the same staff if the Span_arpeggio_engraver
-is moved to the Staff context:
+Similarly, an arpeggio can be drawn across notes in different
+voices on the same staff if the @code{Span_arpeggio_engraver} is
+moved to the Staff context:
 
 
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[verbatim,quote,ragged-right]
 \new Staff
 \with {
   \consists "Span_arpeggio_engraver"
 \new Staff
 \with {
   \consists "Span_arpeggio_engraver"
@@ -665,72 +803,71 @@ is moved to the Staff context:
 @end lilypond
 
 
 @end lilypond
 
 
+@seealso
 
 
-@refcommands
-
-@code{\arpeggio},
-@funindex \arpeggioUp
-@code{\arpeggioUp},
-@funindex \arpeggioDown
-@code{\arpeggioDown},
-@funindex \arpeggioNeutral
-@code{\arpeggioNeutral},
-@funindex \arpeggioBracket
-@code{\arpeggioBracket}.
+@c TODO: Add 'broken chord' to glossary.
 
 
+Music Glossary: @rglos{arpeggio}
 
 
-@seealso
+Notation Reference: @ref{Ties}, for writing out arpeggios.
 
 
-Notation manual: @ref{Ties}, for writing out arpeggios.
+Snippets:
+@rlsr{Expressive marks}.
 
 
-Internals Reference: @internalsref{Arpeggio}.
+Internals Reference: @rinternals{Arpeggio},
+@rinternals{PianoStaff}.
 
 
 
 
-@refbugs
+@knownissues
 
 It is not possible to mix connected arpeggios and unconnected
 
 It is not possible to mix connected arpeggios and unconnected
-arpeggios in one @internalsref{PianoStaff} at the same point in
+arpeggios in one @code{PianoStaff} at the same point in
 time.
 
 
 @node Trills
 time.
 
 
 @node Trills
-@unnumberedsubsubsec Trills
+@subsubsection Trills
+
+@cindex trills
+@funindex \trill
 
 
-Short trills are printed with @code{\trill} like normal
+Short @notation{trills} are printed with @code{\trill} like normal
 articulation; see @ref{Articulations and ornamentations}.
 
 articulation; see @ref{Articulations and ornamentations}.
 
-Long running trills are made with @code{\startTrillSpan} and
-@code{\stopTrillSpan}. In the following example, it is shown in
-the common combination with grace notes.  If a more precise
-control of the placement of the grace notes is needed, see
-@ref{Grace notes}.
+Long running @notation{trills} are made with
+@code{\startTrillSpan} and @code{\stopTrillSpan}.  In the
+following example, a long running @notation{trill} is shown
+combined with grace notes.  To achieve precise control of the
+placement of the grace notes, see @ref{Grace notes}.
 
 
-@lilypond[verbatim,ragged-right,relative=2,quote,fragment]
-\relative c''
-{c1 \afterGrace 
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+c1 \afterGrace
 d1\startTrillSpan { c16[\stopTrillSpan d] }
 d1\startTrillSpan { c16[\stopTrillSpan d] }
-c4 }
+c4
 @end lilypond
 
 @end lilypond
 
-@cindex Pitched trills
+@cindex pitched trills
 
 
-Trills that should be executed on an explicitly specified pitch
-can be typeset with the command @code{pitchedTrill}, and the
-syntax @code{\pitchedTrill} @var{mainnote}@code{\startTrillSpan}
-@var{trillnote} @var{endnote} @code{\stopTrillSpan}.
+@notation{Trills} that should be executed on an explicitly
+specified pitch can be typeset with the command
+@code{\pitchedTrill} using the following syntax:
+
+@example
+@code{\pitchedTrill} @var{mainnote} @code{\startTrillSpan}
+@var{trillnote} @var{endnote} @code{\stopTrillSpan}
+@end example
 
 
-@lilypond[ragged-right,verbatim,fragment,relative=1,quote]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
 \pitchedTrill e2 \startTrillSpan fis
 d\stopTrillSpan
 @end lilypond
 
 \pitchedTrill e2 \startTrillSpan fis
 d\stopTrillSpan
 @end lilypond
 
-
 @noindent
 The first argument is the main note.  The pitch of the second is
 printed as a stemless note head in parentheses.
 
 
 @noindent
 The first argument is the main note.  The pitch of the second is
 printed as a stemless note head in parentheses.
 
 
-@refcommands
+@predefined
 
 @code{\startTrillSpan},
 @funindex \startTrillSpan
 
 @code{\startTrillSpan},
 @funindex \startTrillSpan
@@ -740,41 +877,9 @@ printed as a stemless note head in parentheses.
 
 @seealso
 
 
 @seealso
 
-Internals Reference: @internalsref{TrillSpanner}.
-
-
-@node Analysis brackets
-@unnumberedsubsubsec Analysis brackets
-
-@cindex brackets
-@cindex phrasing brackets
-@cindex musicological analysis
-@cindex note grouping bracket
-
-Brackets are used in musical analysis to indicate structure in
-musical pieces.  LilyPond supports a simple form of nested
-horizontal brackets.  To use this, add the
-@internalsref{Horizontal_bracket_engraver} to the
-@internalsref{Staff} context.  A bracket is started with
-@code{\startGroup} and closed with @code{\stopGroup}.
-
-@lilypond[quote,ragged-right,verbatim]
-\score {
-  \relative c'' {
-    c4\startGroup\startGroup
-    c4\stopGroup
-    c4\startGroup
-    c4\stopGroup\stopGroup
-  }
-  \layout {
-    \context {
-      \Staff \consists "Horizontal_bracket_engraver"
-}}}
-@end lilypond
-
-@seealso
-
-Internals Reference: @internalsref{HorizontalBracket}.
-
+Music Glossary: @rglos{trill}
 
 
+Snippets:
+@rlsr{Expressive marks}.
 
 
+Internals Reference: @rinternals{TrillSpanner}