]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/advanced-notation.itely
Merge with master
[lilypond.git] / Documentation / user / advanced-notation.itely
index a3f5fdbc7c46c96610de409c908fbda83c6b18e9..42cdb7bdae0f8a670720217f81e0be8b17cc7553 100644 (file)
@@ -1,5 +1,11 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
+@ignore
+    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  See TRANSLATION for details.
+@end ignore
 
 @c A menu is needed before every deeper *section nesting of @node's; run
 @c     M-x texinfo-all-menus-update
@@ -163,7 +169,8 @@ The @code{\mark} command is primarily used for
 @ref{Rehearsal marks},
 but it can also be used to put signs like coda,
 segno, and fermata on a bar line.  Use @code{\markup} to
-access the appropriate symbol
+access the appropriate symbol (symbols are listed in
+@ref{The Feta font})
 
 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
 c1 \mark \markup { \musicglyph #"scripts.ufermata" }
@@ -290,7 +297,7 @@ but it can also be used anywhere text is called in lilypond
       #'break-visibility = #begin-of-line-invisible
     \override Score.RehearsalMark #'self-alignment-X = #right
 
-    \set Staff.instrument = \markup{ \column{ Alto solo } }
+    \set Staff.instrumentName = \markup{ \column{ Alto solo } }
     c2^\markup{ don't be \flat }
     \override TextSpanner #'edge-text = #(cons (markup #:italic "rit" ) "")
     b2\startTextSpan
@@ -302,9 +309,8 @@ but it can also be used anywhere text is called in lilypond
 }
 @end lilypond
 
-Text can also be placed on its own, away from any @code{\score}
-block.  This is primarily used in a @code{\book} (see
-@ref{Multiple movements}).
+A @code{\markup} command can also be placed on its own, away from any
+@code{\score} block, see @ref{Multiple scores in a book}.
 
 @lilypond[quote,ragged-right,verbatim]
 \markup{ Here is some text. }
@@ -504,6 +510,12 @@ then set the
 
 @noindent
 Any font can be used, as long as it is available to Pango/FontConfig.
+To get a full list of all available fonts, run the command
+@example
+lilypond -dshow-available-fonts blabla
+@end example
+(the last argument of the command can be anything, but has to be present).
+
 
 The size of the font may be set with the @code{font-size}
 property. The resulting size is taken relative to the
@@ -615,7 +627,7 @@ individual parts.
 @cindex whole rests for a full measure
 @funindex R
 
-Rests for one full measure (or many bars) are entered using `@code{R}'.  It
+Rests for one full measure (or many bars) are entered using @samp{R}.  It
 is specifically meant for full bar rests and for entering parts: the rest
 can expand to fill a score with rests, or it can be printed as a single
 multi-measure rest.  This expansion is controlled by the property
@@ -644,7 +656,7 @@ R1*13/8*12 |
 An @code{R} spanning a single measure is printed as either a whole rest
 or a breve, centered in the measure regardless of the time signature.
 
-If there are only a few measures of rest, LilyPond prints ``church rests''
+If there are only a few measures of rest, LilyPond prints @q{church rests}
 (a series of rectangles) in the staff.  To replace that with a simple
 rest, use @code{MultiMeasureRest.expand-limit}.
 
@@ -798,8 +810,8 @@ c1 \mark \default
 @end lilypond
 
 @noindent
-The letter@tie{}`I' is skipped in accordance with engraving traditions.
-If you wish to include the letter `I', then use
+The letter@tie{}@q{I} is skipped in accordance with engraving traditions.
+If you wish to include the letter @q{I}, then use
 
 @example
 \set Score.markFormatter = #format-mark-alphabet
@@ -836,9 +848,67 @@ You may use @code{format-mark-barnumbers}, @code{format-mark-box-barnumbers},
 and @code{format-mark-circle-barnumbers} to get bar numbers instead of
 incremented numbers or letters.
 
+Other styles of rehearsal mark can be specified manually
+
+@example
+\mark "A1"
+@end example
+
+@noindent
+@code{Score.markFormatter} does not affect marks specified in this manner.
+However, it is possible to apply a @code{\markup} to the string.
+
+@example
+\mark \markup@{ \box A1 @}
+@end example
+
+@cindex segno
+@cindex coda
+@cindex D.S al Fine
+
+Music glyphs (such as the segno sign) may be printed inside
+a @code{\mark}
+
+@lilypond[fragment,quote,ragged-right,verbatim,relative]
+c1 \mark \markup { \musicglyph #"scripts.segno" }
+c1 \mark \markup { \musicglyph #"scripts.coda" }
+c1 \mark \markup { \musicglyph #"scripts.ufermata" }
+c1
+@end lilypond
+
+@noindent
+See @ref{The Feta font} for a list of symbols which may be
+printed with @code{\musicglyph}.
+
+The horizontal location of rehearsal marks can be adjusted by
+setting @code{break-align-symbol}
+
+@lilypond[fragment,quote,ragged-right,verbatim,relative]
+c1
+\key cis \major
+\clef alto
+\override Score.RehearsalMark #'break-align-symbol = #'key-signature
+\mark "on-key"
+cis
+\key ces \major
+\override Score.RehearsalMark #'break-align-symbol = #'clef
+\clef treble
+\mark "on clef"
+ces
+@end lilypond
+
+@code{break-align-symbol} may also accept the following values:
+@code{ambitus}, @code{breathing-sign}, @code{clef}, @code{custos},
+@code{staff-bar}, @code{left-edge}, @code{key-cancellation},
+@code{key-signature}, and @code{time-signature}.  Setting
+@code{break-align-symbol} will only have an effect if the symbol
+appears at that point in the music.
+
 
 @seealso
 
+This manual: @ref{Text marks}.
+
 Program reference: @internalsref{RehearsalMark}.
 
 Init files: @file{scm/@/translation@/-functions@/.scm} contains the
@@ -862,6 +932,23 @@ Bar numbers are printed by default at the start of the line.  The
 number itself is stored in the @code{currentBarNumber} property, which
 is normally updated automatically for every measure.
 
+@lilypond[verbatim,ragged-right,quote,fragment,relative]
+\repeat unfold 4 {c4 c c c} \break
+\set Score.currentBarNumber = #50
+\repeat unfold 4 {c4 c c c}
+@end lilypond
+
+Bar numbers may only be printed at bar lines; to print a bar
+number at the beginning of a piece, an empty bar line must
+be added
+
+@lilypond[verbatim,ragged-right,quote,fragment,relative]
+\set Score.currentBarNumber = #50
+\bar ""
+\repeat unfold 4 {c4 c c c} \break
+\repeat unfold 4 {c4 c c c}
+@end lilypond
+
 Bar numbers can be typeset at regular intervals instead of at the
 beginning of each line.  This is illustrated in the following example,
 whose source is available as
@@ -869,17 +956,6 @@ whose source is available as
 
 @lilypondfile[ragged-right,quote]{bar-number-regular-interval.ly}
 
-Bar numbers can be manually changed by setting the
-@code{Staff.currentBarNumber} property
-
-@lilypond[verbatim,ragged-right,quote]
-\relative c' {
-  \repeat unfold 4 {c4 c c c} \break
-  \set Score.currentBarNumber = #50
-  \repeat unfold 4 {c4 c c c}
-}
-@end lilypond
-
 Bar numbers can be removed entirely by removing the Bar number
 engraver from the score.
 
@@ -920,14 +996,17 @@ used to position the number correctly.
 In an orchestral score, instrument names are printed at the left side
 of the staves.
 
-This can be achieved by setting @internalsref{Staff}.@code{instrument}
-and @internalsref{Staff}.@code{instr}.  This will print a string before
-the start of the staff.  For the first staff, @code{instrument} is
-used, for the following ones, @code{instr} is used.
+This can be achieved by setting @internalsref{Staff}.@code{instrumentName}
+and @internalsref{Staff}.@code{shortInstrumentName}, or
+@internalsref{PianoStaff}.@code{instrumentName} and
+@internalsref{PianoStaff}.@code{shortInstrumentName}.  This will
+print text before
+the start of the staff.  For the first staff, @code{instrumentName} is
+used, for the following ones, @code{shortInstrumentName} is used.
 
 @lilypond[quote,verbatim,ragged-right,relative=1,fragment]
-\set Staff.instrument = "Ploink "
-\set Staff.instr = "Plk "
+\set Staff.instrumentName = "Ploink "
+\set Staff.shortInstrumentName = "Plk "
 c1
 \break
 c''
@@ -937,7 +1016,7 @@ You can also use markup texts to construct more complicated instrument
 names, for example
 
 @lilypond[quote,fragment,verbatim,ragged-right]
-\set Staff.instrument = \markup {
+\set Staff.instrumentName = \markup {
   \column { "Clarinetti"
             \line { "in B" \smaller \flat } } }
 c''1
@@ -948,13 +1027,13 @@ If you wish to center the instrument names, you must center all of them
 @lilypond[quote,verbatim,ragged-right]
 { <<
 \new Staff {
-  \set Staff.instrument = \markup {
+  \set Staff.instrumentName = \markup {
     \center-align { "Clarinetti"
       \line { "in B" \smaller \flat } } }
   c''1
 }
 \new Staff {
-  \set Staff.instrument = \markup{ \center-align { Vibraphone }}
+  \set Staff.instrumentName = \markup{ \center-align { Vibraphone }}
   c''1
 }
 >>
@@ -970,32 +1049,48 @@ To center instrument names while leaving extra space to the right,
 \new StaffGroup \relative
 <<
   \new Staff {
-    \set Staff.instrument
-    = \markup { \hcenter-in #10 "blabla" }
+    \set Staff.instrumentName = \markup { \hcenter-in #10 "blabla" }
     c1 c1
   }
   \new Staff {
-    \set Staff.instrument
-    = \markup { \hcenter-in #10 "blo" }
+    \set Staff.instrumentName = \markup { \hcenter-in #10 "blo" }
     c1 c1
   }
 >>
 @end lilypond
 
+To add instrument names to other contexts (such as @code{GrandStaff},
+@code{ChoirStaff}, or @code{StaffGroup}), the engraver must
+be added to that context.
 
-@seealso
+@example
+\layout@{
+  \context @{\GrandStaff \consists "Instrument_name_engraver"@}
+@}
+@end example
 
-Program reference: @internalsref{InstrumentName}.
+@noindent
+More information about adding and removing engravers can
+be found in @ref{Modifying context plug-ins}.
 
-@refbugs
+Instrument names may be changed in the middle of a piece,
 
-When you put a name on a grand staff or piano staff, the width of the
-brace is not taken into account. The following property setting can be
-used to move the instrument names to the left, in such situations.
+@lilypond[quote,fragment,verbatim,ragged-right]
+\set Staff.instrumentName = "First"
+\set Staff.shortInstrumentName = "one"
+c1 c c c \break
+c1 c c c \break
+\set Staff.instrumentName = "Second"
+\set Staff.shortInstrumentName = "two"
+c1 c c c \break
+c1 c c c \break
+@end lilypond
+
+
+@seealso
+
+Program reference: @internalsref{InstrumentName}.
 
-@example
-\override Score.InstrumentName #'padding = #2.0
-@end example
 
 
 @node Instrument transpositions
@@ -1056,7 +1151,7 @@ c'4^"in G"
 @node Ottava brackets
 @subsection Ottava brackets
 
-`Ottava' brackets introduce an extra transposition of an octave for
+@q{Ottava} brackets introduce an extra transposition of an octave for
 the staff.  They are created by invoking the function
 @code{set-octavation}
 
@@ -1074,9 +1169,9 @@ the staff.  They are created by invoking the function
 }
 @end lilypond
 
-The @code{set-octavation} function also takes -1 (for 8va bassa) and 2
-(for 15ma) as arguments.  Internally the function sets the properties
-@code{ottavation} (e.g., to @code{"8va"}) and
+The @code{set-octavation} function also takes -1 (for 8va bassa), 2@tie{}(for 15ma),
+and -2 (for 15ma bassa) as arguments.  Internally the function sets the properties
+@code{ottavation} (e.g., to @code{"8va"} or @code{"8vb"}) and
 @code{centralCPosition}.  For overriding the text of the bracket, set
 @code{ottavation} after invoking @code{set-octavation}, i.e.,
 
@@ -1228,8 +1323,8 @@ The first @code{g} appears only once, although it was
 specified twice (once in each part).  Stem, slur, and tie directions are
 set automatically, depending whether there is a solo or unisono.  The
 first part (with context called @code{one}) always gets up stems, and
-`Solo', while the second (called @code{two}) always gets down stems and
-`Solo II'.
+@q{Solo}, while the second (called @code{two}) always gets down stems and
+@q{Solo II}.
 
 If you just want the merging parts, and not the textual markings, you
 may set the property @code{printPartCombineTexts} to false
@@ -1300,7 +1395,7 @@ will be ignored.
 @cindex Hiding staves
 
 In orchestral scores, staff lines that only have rests are usually
-removed; this saves some space.  This style is called `French Score'.
+removed; this saves some space.  This style is called @q{French Score}.
 For @internalsref{Lyrics},
 @internalsref{ChordNames} and @internalsref{FiguredBass}, this is
 switched on by default.  When the lines of these contexts turn out
@@ -1338,27 +1433,29 @@ or @code{\RemoveEmptyRhythmicStaffContext}.
 
 Another application is making ossia sections, i.e., alternative
 melodies on a separate piece of staff, with help of a Frenched
-staff.  See @inputfileref{input/@/test,ossia@/.ly} for an example.
+staff.  
 
 
 @node Quoting other voices
 @subsection Quoting other voices
 
+@cindex cues
+
 With quotations, fragments of other parts can be inserted into a part
 directly.  Before a part can be quoted, it must be marked especially as
-quotable.  This is done with the @code{\addquote} command.
+quotable.  This is done with the @code{\addQuote} command.
 
 @example
-\addquote @var{name} @var{music}
+\addQuote @var{name} @var{music}
 @end example
 
 
 @noindent
 Here, @var{name} is an identifying string.  The @var{music} is any kind
-of music.  Here is an example of @code{\addquote}
+of music.  Here is an example of @code{\addQuote}
 
 @example
-\addquote clarinet \relative c' @{
+\addQuote clarinet \relative c' @{
   f4 fis g gis
 @}
 @end example
@@ -1366,7 +1463,7 @@ of music.  Here is an example of @code{\addquote}
 This command must be entered at toplevel, i.e., outside any music
 blocks.
 
-After calling @code{\addquote}, the quotation may then be done with
+After calling @code{\addQuote}, the quotation may then be done with
 @code{\quoteDuring} or @code{\cueDuring},
 
 @example
@@ -1386,7 +1483,7 @@ the previously added @code{clarinet} voice.
 
 More precisely, it takes the current time-step of the part being
 printed, and extracts the notes at the corresponding point of the
-@code{\addquote}d voice.  Therefore, the argument to @code{\addquote}
+@code{\addQuote}d voice.  Therefore, the argument to @code{\addQuote}
 should be the entire part of the voice to be quoted, including any
 rests at the beginning.
 
@@ -1394,7 +1491,7 @@ Quotations take into account the transposition of both source and target
 instruments, if they are specified using the @code{\transposition} command.
 
 @lilypond[quote,ragged-right,verbatim]
-\addquote clarinet \relative c' {
+\addQuote clarinet \relative c' {
   \transposition bes
   f4 fis g gis
 }
@@ -1421,12 +1518,15 @@ will quote notes (but no rests), together with scripts and dynamics.
 @refbugs
 
 Only the contents of the first @internalsref{Voice} occurring in an
-@code{\addquote} command will be considered for quotation, so
+@code{\addQuote} command will be considered for quotation, so
 @var{music} can not contain @code{\new} and @code{\context Voice}
 statements that would switch to a different Voice.
 
 Quoting grace notes is broken and can even cause LilyPond to crash.
 
+Quoting nested triplets may result in poor notation.
+
+
 @seealso
 
 In this manual: @ref{Instrument transpositions}.
@@ -1440,6 +1540,8 @@ Program reference: @internalsref{QuoteMusic}.
 @node Formatting cue notes
 @subsection Formatting cue notes
 
+@cindex cues, formatting
+
 The previous section deals with inserting notes from another voice.
 There is a more advanced music function called @code{\cueDuring},
 which makes formatting cue notes easier.
@@ -1466,7 +1568,7 @@ smaller = {
   \override Beam #'length-fraction = #0.8
 }
 
-\addquote clarinet \relative {
+\addQuote clarinet \relative {
   R1*20
   r2 r8 c f f
 }
@@ -1517,6 +1619,34 @@ the original clef should be stated once again.
 
 @end itemize
 
+The macro @code{\transposedCueDuring} is
+useful to add cues to instruments which use a completely different
+octave range (for example, having a cue of a piccolo flute within
+a contra bassoon part).
+
+@lilypond[verbatim,ragged-right,quote]
+picc = \relative c''' {
+  \clef "treble^8"
+  R1 |
+  c8 c c e g2 |
+  a4 g g2 |
+}
+\addQuote "picc" { \picc }
+
+cbsn = \relative c, {
+  \clef "bass_8"
+  c4 r g r
+  \transposedCueDuring #"picc" #UP c,, { R1 } |
+  c4 r g r |
+}
+
+<<
+  \context Staff = "picc" \picc
+  \context Staff = "cbsn" \cbsn
+>>
+@end lilypond
+
+
 
 @node Aligning to cadenzas
 @subsection Aligning to cadenzas
@@ -1555,7 +1685,7 @@ cadenza = \relative c' {
 
 In the 20th century, composers have greatly expanded the musical
 vocabulary.  With this expansion, many innovations in musical notation
-have been tried.  The book ``Music Notation in the 20th century'' by
+have been tried.  The book @q{Music Notation in the 20th century} by
 Kurt Stone gives a comprehensive overview (see @ref{Literature
 list}).
 
@@ -1566,15 +1696,6 @@ that fits into traditional notation categories, such as
 microtones, nested tuplet beams, and unusual fermatas, please
 see those sections of the documentation.
 
-
-@c I don't think we should discourage modern composers who might
-@c want to sponsor new features.  :)
-@c  In general, the use of new, innovative notation makes a piece
-@c harder to understand and perform and its use should therefore be
-@c avoided.  For this reason, support for contemporary notation in
-@c LilyPond is limited.
-
-
 @menu
 * Polymetric notation::         
 * Time administration::         
@@ -1583,12 +1704,18 @@ see those sections of the documentation.
 * Special noteheads::           
 * Feathered beams::             
 * Improvisation::               
+* Selecting notation font size::  
 @end menu
 
 
 @node Polymetric notation
 @subsection Polymetric notation
 
+@cindex double time signatures
+@cindex signatures, polymetric
+@cindex polymetric signatures
+@cindex meter, polymetric
+
 Double time signatures are not supported explicitly, but they can be
 faked.  In the next example, the markup for the time signature is
 created with a markup text.  This markup text is inserted in the
@@ -1600,7 +1727,7 @@ created with a markup text.  This markup text is inserted in the
 tsMarkup =\markup {
   \override #'(baseline-skip . 2) \number {
     \column { "2" "4" }
-    \lower #1 "+"
+    \vcenter "+"
     \bracket \column { "5" "8" }
   }
 }
@@ -1792,7 +1919,7 @@ seven sixteenths notes.
 @subsection Proportional notation
 @cindex Proportional notation
 
-Notes can be spaced proportional to their time-difference by
+Notes can be spaced proportionally to their time-difference by
 assigning a duration to @code{proportionalNotationDuration}
 
 @lilypond[quote,ragged-right,verbatim,relative=2,fragment]
@@ -1803,6 +1930,36 @@ assigning a duration to @code{proportionalNotationDuration}
 >>
 @end lilypond
 
+Setting this property only affects the ideal spacing between
+consecutive notes.  For true proportional notation, the following
+settings are also required.
+
+@itemize @bullet
+
+@item True proportional notation requires that symbols are allowed to
+overstrike each other.  That is achieved by removing the
+@internalsref{Separating_line_group_engraver} from
+@internalsref{Staff} context.
+
+@item Spacing influence of  prefatory matter (clefs, bar lines, etc.)
+is removed by setting the @code{strict-note-spacing} property to
+@code{#t} in @internalsref{SpacingSpanner} grob.
+
+@item Optical spacing tweaks are switched by setting 
+@code{uniform-stretching} in @internalsref{SpacingSpanner} to true.
+
+
+@end itemize
+
+@seealso
+
+@inputfileref{input/@/regression,spacing-proportional/.ly}
+@inputfileref{input/@/regression,spacing-strict-notespacing/.ly}
+@inputfileref{input/@/regression,spacing-strict-spacing-grace/.ly}
+
+An example of strict proportional notation is in the
+example file @file{input/proportional.ly}.
+
 
 @node Clusters
 @subsection Clusters
@@ -1844,8 +2001,10 @@ accurately.  Use @code{<g a>8 <e a>8} instead.
 @node Special noteheads
 @subsection Special noteheads
 
+@cindex note heads, special
+
 Different noteheads are used by various instruments for various
-meanings -- crosses are used for ``parlato'' with vocalists, stopped
+meanings -- crosses are used for @q{parlato} with vocalists, stopped
 notes on guitar; diamonds are used for harmonics on string instruments,
 etc.  There is a shorthand (@code{\harmonic}) for diamond shapes; the
 other notehead styles are produced by tweaking the property
@@ -1871,26 +2030,22 @@ Program reference: @internalsref{NoteHead}.
 @node Feathered beams
 @subsection Feathered beams
 
-Feathered beams are not supported natively, but they can be faked by
-forcing two beams to overlap.  Here is an example,
+Feathered beams are printed by setting the @code{grow-direction}
+property of a @code{Beam}.  The @code{\featherDurations} function
+can be used to adjust note durations.
 
-@c don't change relative setting witout changing positions!
 @lilypond[ragged-right,relative=1,fragment,verbatim,quote]
-\new Staff <<
-  \new Voice
-  {
-    \stemUp
-    \once \override Voice.Beam #'positions = #'(0 . 0.5)
-    c8[ c c c c ]
-  }
-  \new Voice {
-    \stemUp
-    \once \override Voice.Beam #'positions = #'(0 . -0.5)
-    c[ c c c c]
-  }
->>
+\featherDurations #(ly:make-moment 5 4) 
+{
+  \override Beam #'grow-direction = #LEFT
+  c16[ c c c c c c]
+}
 @end lilypond
 
+@refbugs
+
+The @code{\featherDuration} command only works with very short
+music snippets.
 
 @node Improvisation
 @subsection Improvisation
@@ -1924,6 +2079,62 @@ the following example
 @end lilypond
 
 
+@node Selecting notation font size
+@subsection Selecting notation font size
+
+The easiest method of setting the font size of any context is by
+setting the @code{fontSize} property.
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c8
+\set fontSize = #-4
+c f
+\set fontSize = #3
+g
+@end lilypond
+
+@noindent
+It does not change the size of variable symbols, such as beams or
+slurs.
+
+Internally, the @code{fontSize} context property will cause the
+@code{font-size} property to be set in all layout objects.  The value
+of @code{font-size} is a number indicating the size relative to the
+standard size for the current staff height.  Each step up is an
+increase of approximately 12% of the font size.  Six steps is exactly a
+factor two.  The Scheme function @code{magstep} converts a
+@code{font-size} number to a scaling factor.
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c8
+\override NoteHead #'font-size = #-4
+c f
+\override NoteHead #'font-size = #3
+g
+@end lilypond
+
+Font size changes are achieved by scaling the design size that is
+closest to the desired size.  The standard font size (for
+@code{font-size} equals 0), depends on the standard staff height.  For
+a 20pt staff, a 10pt font is selected.
+
+The @code{font-size} property can only be set on layout objects that
+use fonts. These are the ones supporting the
+@internalsref{font-interface} layout interface.
+
+@refcommands
+
+The following commands set @code{fontSize} for the current voice:
+
+@funindex \tiny
+@code{\tiny},
+@funindex \small
+@code{\small},
+@funindex \normalsize
+@code{\normalsize}.
+
+
+
 @node Educational use
 @section Educational use
 
@@ -1939,6 +2150,7 @@ teaching tools in addition to great musical scores.
 * Analysis brackets::           
 * Coloring objects::            
 * Parentheses::                 
+* Grid lines::                  
 @end menu
 
 @node Balloon help
@@ -1950,19 +2162,18 @@ balloon.  The primary purpose of this feature is to explain notation.
 The following example demonstrates its use.
 
 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
-\new Voice {
-  \applyOutput
-    #(add-balloon-text 'NoteHead "heads, or tails?"
-    '(1 . -3))
-  c8
+\new Voice \with { \consists "Balloon_engraver" }
+{
+  \balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" }
+  <c-\balloonText #'(-2 . -2) \markup { Hello }  >8
 }
 @end lilypond
 
 @noindent
-The function @code{add-balloon-text} takes the name of a grob, the
-label to print, and the position where to put the label relative to
-the object.  In the above example, the text ``heads or tails?'' ends
-3 spaces below and 1 space to the right of the marked head.
+There are two music functions, @code{balloonText} and
+@code{balloonGrobText}. The latter takes the name of the grob to
+adorn, while the former may be used as an articulation on a note. 
+The other arguments  are the offset and the text of the label.
 
 @cindex balloon
 @cindex notation, explaining
@@ -1987,6 +2198,7 @@ removing @code{Bar_number_engraver}.
 
 
 @lilypond[quote,verbatim]
+\layout{ indent = #0 }
 emptymusic = {
   \repeat unfold 2 % Change this for more lines.
   { s1\break }
@@ -1994,9 +2206,13 @@ emptymusic = {
 }
 \new Score \with {
   \override TimeSignature #'transparent = ##t
+% un-comment this line if desired
+%  \override Clef #'transparent = ##t
   defaultBarType = #""
   \remove Bar_number_engraver
 } <<
+
+% modify these to get the staves you want
   \new Staff \emptymusic
   \new TabStaff \emptymusic
 >>
@@ -2027,6 +2243,8 @@ g4 a
 @node Shape note heads
 @subsection Shape note heads
 
+@cindex note heads, shape
+
 In shape note head notation, the shape of the note head corresponds
 to the harmonic function of a note in the scale.  This notation was
 popular in the 19th century American song books.
@@ -2044,10 +2262,10 @@ Shape note heads can be produced by setting @code{\aikenHeads} or
 Shapes are determined on the step in the scale, where the base of the
 scale is determined by  the @code{\key} command
 
-@findex \key
-@findex shapeNoteStyles
-@findex \aikenHeads
-@findex \sacredHarpHeads
+@funindex \key
+@funindex shapeNoteStyles
+@funindex \aikenHeads
+@funindex \sacredHarpHeads
 
 Shape note heads are implemented through the @code{shapeNoteStyles}
 property.  Its value is a vector of symbols.  The k-th element indicates
@@ -2063,10 +2281,12 @@ combinations are possible, e.g.
 @node Easy Notation note heads
 @subsection Easy Notation note heads
 
+@cindex note heads, practice
+@cindex note heads, easy notation
 @cindex easy notation
 @cindex Hal Leonard
 
-The `easy play' note head includes a note name inside the head.  It is
+The @q{easy play} note head includes a note name inside the head.  It is
 used in music for beginners
 
 @lilypond[quote,ragged-right,verbatim,fragment,staffsize=26]
@@ -2077,7 +2297,7 @@ used in music for beginners
 The command @code{\setEasyHeads} overrides settings for the
 @internalsref{NoteHead} object.  To make the letters readable, it has
 to be printed in a large font size.  To print with a larger font, see
-@ref{Setting global staff size}.
+@ref{Setting the staff size}.
 
 @refcommands
 
@@ -2135,7 +2355,7 @@ e
 @end lilypond
 
 The full range of colors defined for X11 can be accessed by using the
-scheme function x11-color.  The function takes one argument that can be a
+Scheme function x11-color.  The function takes one argument that can be a
 symbol
 
 @example
@@ -2167,7 +2387,7 @@ deliberate nonsense.
 @lilypond[quote,ragged-right,verbatim]
 {
   \override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
-  \set Staff.instrument = \markup {
+  \set Staff.instrumentName = \markup {
     \with-color #(x11-color 'navy) "Clarinet"
   }
   \time 2/4
@@ -2224,3 +2444,11 @@ This only functions inside chords, even for single notes
 @end example
 
 
+@node Grid lines
+@subsection Grid lines
+
+Vertical lines can be drawn between staves synchronized with
+the notes.
+
+Examples: @inputfileref{input/@/regression,grid@/-lines@/.ly}.
+