]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/instrument-notation.itely
Info about \set and \override.
[lilypond.git] / Documentation / user / instrument-notation.itely
index 865a0eac45c8d51778e5bcbade963a6cfbae320d..020e1c3b882cb0752ff86d2ffa62b4572a31be27 100644 (file)
@@ -1,4 +1,4 @@
-@c -*- coding: latin-1; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 
 @c A menu is needed before every deeper *section nesting of @node's; run 
 This chapter explains how to use notation for specific instruments.
 
 @menu
-* Rhythmic music::              
 * Piano music::                 
+* Chord names::                 
 * Vocal music::                 
-* Other instrument specific notation::  
-* Tablatures::                  
-* Popular music::               
+* Rhythmic music::              
+* Guitar::                      
+* Bagpipe::                     
 * Ancient notation::            
+* Other instrument specific notation::  
 @end menu
 
 
-@node Rhythmic music
-@section Rhythmic music
-
-Rhythmic music is primarily used for percussion and drum notation, but it can
-also be used to show the rhythms of melodies.
-
-@menu
-* Showing melody rhythms::      
-* Entering percussion::         
-* Percussion staves::           
-@end menu
-
-
-@node Showing melody rhythms
-@subsection Showing melody rhythms
-
-Sometimes you might want to show only the rhythm of a melody.  This
-can be done with the rhythmic staff.  All pitches of notes on such a
-staff are squashed, and the staff itself has a single line
-
-@lilypond[quote,raggedright,fragment,relative=1,verbatim]
-\context RhythmicStaff {
-  \time 4/4
-  c4 e8 f g2 | r4 g r2 | g1:32 | r1 |
-}
-@end lilypond
-
-@seealso
-
-Program reference: @internalsref{RhythmicStaff}.
-
-Examples: @inputfileref{input/@/regression,rhythmic@/-staff@/.ly}.
-
-
-@node Entering percussion
-@subsection Entering percussion
-
-@cindex percussion
-@cindex drums
-
-
-Percussion notes may be entered in @code{\drummode} mode, which is
-similar to the standard mode for entering notes.  Each piece of
-percussion has a full name and an abbreviated name, and both can be used
-in input files
-
-@lilypond[quote,raggedright,verbatim]
-\drums {
-  hihat hh bassdrum bd
-}
-@end lilypond
-
-The complete list of drum names is in the init file
-@file{ly/@/drumpitch@/-init@/.ly}.
-@c TODO: properly document this.
-
-@seealso
-
-Program reference: @internalsref{DrumNoteEvent}.
-
-@node Percussion staves
-@subsection Percussion staves
-@cindex percussion
-@cindex drums
-
-A percussion part for more than one instrument typically uses a
-multiline staff where each position in the staff refers to one piece
-of percussion.
-
-
-To typeset the music, the notes must be interpreted in a
-@internalsref{DrumStaff} and @internalsref{DrumVoice} contexts
-
-@lilypond[quote,raggedright,verbatim]
-up = \drummode { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat }
-down = \drummode { bassdrum4 snare8 bd r bd sn4 }
-  \new DrumStaff <<
-    \new DrumVoice { \voiceOne \up }
-    \new DrumVoice { \voiceTwo \down }
-  >>
-@end lilypond
-
-The above example shows verbose polyphonic notation.  The short
-polyphonic notation, described in @ref{Polyphony}, can also be used if
-the @internalsref{DrumVoices} are instantiated by hand first.  For example,
-
-@lilypond[quote,raggedright,fragment,verbatim]
-\new DrumStaff <<
-  \context DrumVoice = "1" { s1 *2 }
-  \context DrumVoice = "2" { s1 *2 }
-  \drummode {
-    bd4 sn4 bd4 sn4
-    <<
-      { \repeat unfold 16 hh16 }
-      \\
-      { bd4 sn4 bd4 sn4 }
-    >>
-  }
->>
-@end lilypond
-
-
-There are also other layout possibilities.  To use these, set the
-property @code{drumStyleTable} in context @internalsref{DrumVoice}.
-The following variables have been predefined
-
-@table @code
-@item drums-style
-This is the default.  It typesets a typical drum kit on a five-line staff
-
-@lilypond[quote,linewidth=10.0\cm]
-nam = \lyricmode {
-  cymc cyms cymr hh hhc hho hhho hhp
-  cb hc bd sn ss tomh tommh tomml toml tomfh tomfl }
-mus = \drummode {
-  cymc cyms cymr hh hhc hho hhho hhp \break
-  cb hc bd sn ss tomh tommh tomml toml tomfh tomfl s16 }
-\score {
-  << \new DrumStaff \with {
-       \remove Bar_engraver
-       \remove Time_signature_engraver
-       \override Stem #'transparent = ##t
-       \override Stem #'Y-extent-callback = ##f
-       minimumVerticalExtent = #'(-4.0 . 5.0)
-     } \mus
-     \context Lyrics \nam
-  >>
-  \layout {
-    \context {
-      \Score
-      \override LyricText #'font-family = #'typewriter
-      \override BarNumber #'transparent =##T
-    }
-  }
-}
-@end lilypond
-
-The drum scheme supports six different toms.  When there are fewer toms,
-simply select the toms that produce the desired result, i.e., to get toms
-on the three middle lines you use @code{tommh}, @code{tomml}, and
-@code{tomfh}.
-
-@item timbales-style
-This typesets timbales on a two line staff
-
-@lilypond[quote,raggedright]
-nam = \lyricmode { timh ssh timl ssl cb }
-mus = \drummode { timh ssh timl ssl cb s16 }
-
-<<
-  \context DrumStaff \with {
-    \remove Bar_engraver
-    \remove Time_signature_engraver
-    \override Stem #'transparent = ##t
-    \override Stem #'Y-extent-callback = ##f
-    \override StaffSymbol #'line-count = #2
-    \override StaffSymbol #'staff-space = #2
-    minimumVerticalExtent = #'(-3.0 . 4.0)
-    drumStyleTable = #timbales-style
-  } \mus
-  \context Lyrics {
-    \override LyricText #'font-family = #'typewriter
-    \nam
-  }
->>
-@end lilypond
-
-@item congas-style
-This typesets congas on a two line staff
-
-@lilypond[quote,raggedright]
-nam = \lyricmode { cgh cgho cghm ssh cgl cglo cglm ssl }
-mus = \drummode { cgh cgho cghm ssh cgl cglo cglm ssl s16 }
-
-<<
-  \context DrumStaff \with {
-    \remove Bar_engraver
-    \remove Time_signature_engraver
-    drumStyleTable = #congas-style
-    \override StaffSymbol #'line-count = #2
-
-    %% this sucks; it will lengthen stems.
-    \override StaffSymbol #'staff-space = #2
-    \override Stem #'transparent = ##t
-    \override Stem #'Y-extent-callback = ##f
-  } \mus
-  \context Lyrics {
-    \override LyricText #'font-family = #'typewriter
-    \nam
-  }
->>
-@end lilypond
-
-@item bongos-style
-This typesets bongos on a two line staff
-
-@lilypond[quote,raggedright]
-nam = \lyricmode { boh boho bohm ssh bol bolo bolm ssl }
-mus = \drummode { boh boho bohm ssh bol bolo bolm ssl s16 }
-
-<<
-  \context DrumStaff\with {
-    \remove Bar_engraver
-    \remove Time_signature_engraver
-    \override StaffSymbol #'line-count = #2
-    drumStyleTable = #bongos-style
-
-    %% this sucks; it will lengthen stems.
-    \override StaffSymbol #'staff-space = #2
-    \override Stem #'transparent = ##t
-    \override Stem #'Y-extent-callback = ##f
-  } \mus
-  \context Lyrics {
-    \override LyricText #'font-family = #'typewriter
-    \nam
-  }
->>
-@end lilypond
-
-@item percussion-style
-To typeset all kinds of simple percussion on one line staves.
-
-@lilypond[quote,raggedright]
-nam = \lyricmode { tri trio trim gui guis guil cb cl tamb cab mar hc }
-mus = \drummode { tri trio trim gui guis guil cb cl tamb cab mar hc s16 }
-
-<<
-  \context DrumStaff\with{
-    \remove Bar_engraver
-    drumStyleTable = #percussion-style
-    \override StaffSymbol #'line-count = #1
-    \remove Time_signature_engraver
-    \override Stem #'transparent = ##t
-    \override Stem #'Y-extent-callback = ##f
-  } \mus
-  \context Lyrics {
-    \override LyricText #'font-family = #'typewriter
-    \nam
-  }
->>
-@end lilypond
-@end table
-
-If you do not like any of the predefined lists you can define your own
-list at the top of your file
-
-@lilypond[quote,raggedright,verbatim]
-#(define mydrums '(
-         (bassdrum     default   #f         -1)
-         (snare        default   #f         0)
-         (hihat        cross     #f         1)
-         (pedalhihat   xcircle   "stopped"  2)
-         (lowtom       diamond   #f         3)))
-up = \drummode { hh8 hh hh hh hhp4 hhp }
-down = \drummode { bd4 sn bd toml8 toml }
-
-\new DrumStaff <<
-  \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
-  \new DrumVoice { \voiceOne \up }
-  \new DrumVoice { \voiceTwo \down }
->>
-@end lilypond
-
-
-@seealso
-
-Init files: @file{ly/@/drumpitch@/-init@/.ly}.
-
-Program reference: @internalsref{DrumStaff}, @internalsref{DrumVoice}.
-
-@refbugs
-
-Because general MIDI does not contain rim shots, the sidestick is used
-for this purpose instead.
-
 
 @node Piano music
 @section Piano music
@@ -303,12 +29,10 @@ for this purpose instead.
 Piano staves are two normal staves coupled with a brace.  The staves
 are largely independent, but sometimes voices can cross between the
 two staves.  The same notation is also used for harps and other key
-@c Is this `harp' or `harpsichord'?
 instruments.  The @internalsref{PianoStaff} is especially built to
 handle this cross-staffing behavior.  In this section we discuss the
 @internalsref{PianoStaff} and some other pianistic peculiarities.
 
-
 @menu
 * Automatic staff changes::     
 * Manual staff switches::       
@@ -365,8 +89,8 @@ The autochanger switches on basis of the pitch (middle C is the turning
 point), and it looks ahead skipping over rests to switch in
 advance.  Here is a practical example
 
-@lilypond[quote,verbatim,raggedright]
-\context PianoStaff
+@lilypond[quote,verbatim,ragged-right]
+\new PianoStaff
   \autochange \relative c'
   {
     g4 a b c d r4 a g
@@ -390,12 +114,6 @@ quality output, staff switches should be specified manually.
 
 @code{\autochange} cannot be inside @code{\times}.
 
-Internally, the @code{\partcombine} interprets both arguments as
-@code{Voice}s named @code{one} and @code{two}, and then decides when
-the parts can be combined.  Consequently, if the arguments switch to
-differently named @internalsref{Voice} contexts, the events in those
-will be ignored.
-
 
 @node Manual staff switches
 @subsection Manual staff switches
@@ -417,10 +135,10 @@ usually the setup for a score will start with a setup of the staves,
 
 @example
 <<
-  \context Staff = up @{
+  \new Staff = "up" @{
     \skip 1 * 10  % @emph{keep staff alive}
     @}
-  \context Staff = down @{
+  \new Staff = "down" @{
     \skip 1 * 10  % @emph{idem}
     @}
 >>
@@ -430,7 +148,7 @@ usually the setup for a score will start with a setup of the staves,
 and the @context{Voice} is inserted afterwards
 
 @example
-\context Staff = down
+\new Staff = down
   \new Voice @{ @dots{} \change Staff = up @dots{} @}
 @end example
 
@@ -448,7 +166,7 @@ Piano pedal instruction can be expressed by attaching
 @code{\treCorde}, @code{\sostenutoDown} and @code{\sostenutoUp} to a
 note or chord
 
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
 c'4\sustainDown c'4\sustainUp
 @end lilypond
 
@@ -461,7 +179,7 @@ information.
 Pedals can also be indicated by a sequence of brackets, by setting the
 @code{pedalSustainStyle} property to bracket objects
 
-@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
 \set Staff.pedalSustainStyle = #'bracket
 c\sustainDown d e
 b\sustainUp\sustainDown
@@ -472,7 +190,7 @@ A third style of pedal notation is a mixture of text and brackets,
 obtained by setting the @code{pedalSustainStyle} property to
 @code{mixed}
 
-@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
 \set Staff.pedalSustainStyle = #'mixed
 c\sustainDown d e
 b\sustainUp\sustainDown
@@ -483,7 +201,7 @@ The default `*Ped.' style for sustain and damper pedals corresponds to
 style @code{#'text}.  The sostenuto pedal uses @code{mixed} style by
 default.
 
-@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
 c\sostenutoDown d e c, f g a\sostenutoUp
 @end lilypond
 
@@ -494,11 +212,15 @@ For fine-tuning the appearance of a pedal bracket, the properties
 modified.  For example, the bracket may be extended to the right edge
 of the note head
 
-@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
 \override Staff.PianoPedalBracket #'shorten-pair = #'(0 . -1.0)
 c\sostenutoDown d e c, f g a\sostenutoUp
 @end lilypond
 
+@seealso
+
+In this manual: @ref{Laissez vibrer ties}
+
 @node Staff switch lines
 @subsection Staff switch lines
 
@@ -513,15 +235,15 @@ Whenever a voice switches to another staff, a line connecting the notes
 can be printed automatically.  This is switched on by setting
 @code{followVoice} to true
 
-@lilypond[quote,raggedright,fragment,relative=1,verbatim]
-\context PianoStaff <<
-  \set followVoice = ##t
-  \context Staff \context Voice {
+@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+\new PianoStaff <<
+  \new Staff="one" {
+    \set followVoice = ##t
     c1
     \change Staff=two
     b2 a
   }
\context Staff=two { \clef bass \skip 1*2 }
 \new Staff="two" { \clef bass \skip 1*2 }
 >>
 @end lilypond
 
@@ -544,10 +266,10 @@ Chords that cross staves may be produced by increasing the length
 of the stem in the lower staff, so it reaches the stem in the upper
 staff, or vice versa.
 
-@lilypond[raggedright,verbatim,quote]
+@lilypond[ragged-right,verbatim,quote]
 stemExtend = \once \override Stem #'length = #22
 noFlag = \once \override Stem #'flag-style = #'no-flag
-\context PianoStaff <<
+\new PianoStaff <<
   \new Staff {
     \stemDown \stemExtend
     f'4
@@ -562,1212 +284,1742 @@ noFlag = \once \override Stem #'flag-style = #'no-flag
 @end lilypond
 
 
-@node Vocal music
-@section Vocal music
-
-There are three different issues when printing vocal music
-
-@itemize @bullet
-@item
-Song texts must be entered as text, not notes.  For example, the
-input@tie{}@code{d} should be interpreted as a one letter syllable, not the
-note@tie{}D.
-
-@item
-Song texts must be printed as text, not as notes.
-
-@item
-Song texts must be aligned with the notes of their melody.
-@end itemize
-
-The simplest solution for printing music uses the @code{\addlyrics}
-function to solve all these problems at once.  However, these
-three functions can be controlled separately, which is necessary
-for complex vocal music.
 
+@node Chord names
+@section Chord names
 
 @menu
-* Setting simple songs::        
-* Entering lyrics::             
-* Hyphens and extenders::       
-* The Lyrics context::          
-* Flexibility in alignment::    
-* More stanzas::                
-* Ambitus::                     
-* Other vocal issues::          
+* Introducing chord names::     
+* Chords mode::                 
+* Printing chord names::        
 @end menu
 
-@node Setting simple songs
-@subsection Setting simple songs
 
-The easiest way to add lyrics to a melody is to append
-@cindex \addlyrics
-@example
-\addlyrics @{ @var{the lyrics} @}
-@end example
+@c  awkward name; awkward section name.
+@c  still, the Basic "chords" seems like a good name...  :(
+@node Introducing chord names
+@subsection Introducing chord names
+@cindex chord names
 
-@noindent
-to a melody.  Here is an example,
+LilyPond has support for printing chord names.  Chords may be entered
+in musical chord notation, i.e., @code{< .. >}, but they can also be
+entered by name.  Internally, the chords are represented as a set of
+pitches, so they can be transposed
 
-@lilypond[raggedright,verbatim,fragment,quote]
-\time 3/4
-\relative { c2 e4 g2. }
-\addlyrics { play the game }
-@end lilypond
 
-More stanzas can be added by adding more
-@code{\addlyrics} sections
+@lilypond[quote,ragged-right,verbatim,ragged-right]
+twoWays = \transpose c c' {
+  \chordmode {
+    c1 f:sus4 bes/f
+  }
+  <c e g>
+  <f bes c'>
+  <f bes d'>
+}
 
-@lilypond[raggedright,verbatim,fragment,quote]
-\time 3/4
-\relative { c2 e4 g2. }
-\addlyrics { play the game }
-\addlyrics { speel het spel }
-\addlyrics { joue le jeu }
+<< \new ChordNames \twoWays
+   \new Voice \twoWays >>
 @end lilypond
 
-@c TODO - this isn't such a great place for this note, but I can't
-@c  find a better place without rearranging a lot of lyric stuff.
-@c  It's yet another thing to look at post-3.0.
+This example also shows that the chord printing routines do not try to
+be intelligent.  The last chord (@code{f bes d}) is not interpreted as
+an inversion.
 
-The @code{\addlyrics} command is actually just a convienient way
-to write a more complicated LilyPond structure that sets up the
-lyrics.  You should use @code{\addlyrics} unless you need to do
-fancy things, in which case you should investigate
-@code{\lyricsto} or @code{\lyricmode}.
+Note that the duration of chords must be specified outside the
+@code{<>}.
 
 @example
-@{ MUSIC @}
-\addlyrics @{ LYRICS @}
+<c e g>2
 @end example
 
-@noindent
-is the same as
 
-@example
-\context Voice = blah @{ music @}
-\lyricsto "blah" \new lyrics @{ LYRICS @}
-@end example
+@node Chords mode
+@subsection Chords mode
+@cindex Chords mode
 
-@refbugs
+In chord mode sets of pitches (chords) are entered with normal note
+names.  A chord is entered by the root, which is entered like a
+normal pitch
 
-@code{\addlyrics} cannot handle polyphony.
+@lilypond[quote,ragged-right,fragment,verbatim]
+\chordmode { es4. d8 c2 }
+@end lilypond
 
+@noindent
+The mode is introduced by the keyword @code{\chordmode}.
 
-@node Entering lyrics
-@subsection Entering lyrics
+@cindex chord entry
+@cindex chord mode
 
+Other chords may be entered by suffixing a colon and introducing a
+modifier (which may include a number if desired)
+@lilypond[quote,fragment,verbatim]
+\chordmode { e1:m e1:7 e1:m7 }
+@end lilypond
+The first number following the root is taken to be the `type' of the
+chord, thirds are added to the root until it reaches the specified
+number
+@lilypond[quote,fragment,verbatim]
+\chordmode { c:3 c:5 c:6 c:7 c:8 c:9 c:10 c:11 }
+@end lilypond
 
-@cindex lyrics
-@cindex @code{\lyricmode}
-@cindex punctuation
+@cindex root of chord
+@cindex additions, in chords
+@cindex removals, in chords
 
-Lyrics are entered in a special input mode.  This mode is introduced
-by the keyword @code{\lyricmode}, or by using @code{addlyrics} or
-@code{lyricsto}.  In this mode you can enter lyrics,
-with punctuation and accents, and the input @code{d} is not parsed as
-a pitch, but rather as a one letter syllable.  Syllables are entered
-like notes, but with pitches replaced by text.  For example,
-@example
-\lyricmode @{ Twin-4 kle4 twin- kle litt- le star2 @}
-@end example
+More complex chords may also be constructed adding separate steps
+to a chord.  Additions are added after the number following
+the colon and are separated by dots
+@lilypond[quote,verbatim,fragment]
+\chordmode { c:5.6 c:3.7.8 c:3.6.13 }
+@end lilypond
+Chord steps can be altered by suffixing a @code{-} or @code{+} sign
+to the number
+@lilypond[quote,verbatim,fragment]
+\chordmode { c:7+ c:5+.3- c:3-.5-.7- }
+@end lilypond
+Removals are specified similarly and are introduced by a caret.  They
+must come after the additions
+@lilypond[quote,verbatim,fragment]
+\chordmode { c^3 c:7^5 c:9^3.5 }
+@end lilypond
 
+Modifiers can be used to change pitches.  The following modifiers are
+supported
 
-A word lyrics mode begins with an alphabetic character, and ends with
-any space or digit.  The following characters can be any character
-that is not a digit or white space.  One important consequence of this
-is that a word can end with @code{@}}.  The following example is
-usually a mistake in the input file.  The syllable includes a @code{@}}, so the
-opening brace is not balanced
-@example
-\lyricmode @{ twinkle@}
-@end example
+@table @code
+@item m
+The minor chord.  This modifier lowers the 3rd and (if present) the 7th step.
 
-@cindex @code{\property}, in @code{\lyricmode}
-@noindent
-Similarly, a period which follows an alphabetic sequence is included in
-the resulting string.  As a consequence, spaces must be inserted around
-property commands
-@example
-\override Score . LyricText #'font-shape = #'italic
-@end example
+@item dim
+The diminished chord.  This modifier lowers the 3rd, 5th and (if present)
+the 7th step.
 
-@cindex @code{_}
-@cindex spaces, in lyrics
-@cindex quotes, in lyrics
+@item aug
+The augmented chord.  This modifier raises the 5th step.
 
-Any @code{_} character that appears in an unquoted word is converted
-to a space.  This provides a mechanism for introducing spaces into words
-without using quotes.  Quoted words can also be used in Lyrics mode to
-specify words that cannot be written with the above rules.  The
-following example incorporates double quotes
+@item maj
+The major 7th chord.  This modifier raises the 7th step if present.
 
-@example
-\lyricmode @{ He said: "\"Let" my peo ple "go\"" @}
-@end example
+@item sus
+The suspended 4th or 2nd.  This modifier removes the 3rd
+step.  Append either @code{2} or @code{4} to add the 2nd or 4th step to
+the chord.
+@end table
 
-This example is slightly academic, since it gives better looking
-results using single quotes, @code{``} and @code{''}
-@example
-\lyricmode @{ He said: ``Let my peo ple go'' @}
-@end example
+Modifiers can be mixed with additions
+@lilypond[quote,verbatim,fragment]
+  \chordmode { c:sus4 c:7sus4 c:dim7 c:m6 }
+@end lilypond
 
+@cindex modifiers, in chords.
+@cindex @code{aug}
+@cindex @code{dim}
+@cindex @code{maj}
+@cindex @code{sus}
+@cindex @code{m}
 
-The full definition of a word start in Lyrics mode is somewhat more
-complex.
+Since an unaltered 11 does not sound good when combined with an
+unaltered 3, the 11 is removed in this case (unless it is added
+explicitly)
+@lilypond[quote,ragged-right,fragment,verbatim]
+\chordmode { c:13 c:13.11 c:m13 }
+@end lilypond
 
-A word in Lyrics mode begins with: an alphabetic character, @code{_},
-@code{?}, @code{!}, @code{:}, @code{'}, the control characters @code{^A}
-through @code{^F}, @code{^Q} through @code{^W}, @code{^Y}, @code{^^},
-any 8-bit character with ASCII code over 127, or a two-character
-combination of a backslash followed by one of @code{`}, @code{'},
-@code{"}, or @code{^}.
+@cindex @code{/}
 
+An inversion (putting one pitch of the chord on the bottom), as well
+as bass notes, can be specified by appending
+@code{/}@var{pitch} to the chord
+@lilypond[quote,ragged-right,fragment,verbatim]
+\chordmode { c1 c/g c/f }
+@end lilypond
+@cindex @code{/+}
 
+A bass note can be added instead transposed out of the chord,
+by using @code{/+}@var{pitch}.
 
-@seealso
+@lilypond[quote,ragged-right,fragment,verbatim]
+\chordmode { c1 c/+g c/+f }
+@end lilypond
 
-Program reference: events @internalsref{LyricEvent}, and
-@internalsref{LyricText}.
+Chords is a mode similar to @code{\lyricmode}, etc.  Most
+of the commands continue to work, for example, @code{r} and
+@code{\skip} can be used to insert rests and spaces, and property
+commands may be used to change various settings.
 
-@refbugs
 
-The definition of lyrics mode is too complex.
 
-@node Hyphens and extenders
-@subsection Hyphens and extenders
+@refbugs
 
-@cindex hyphens
+Each step can only be present in a chord once.  The following
+simply produces the augmented chord, since @code{5+} is interpreted
+last
+@cindex clusters
+@lilypond[quote,ragged-right,verbatim,fragment]
+\chordmode { c:5.5-.5+ }
+@end lilypond
 
-Centered hyphens are entered as `@code{-}@code{-}' between syllables.
-The hyphen will have variable length depending on the space between
-the syllables and it will be centered between the syllables.
 
-@cindex melisma
-@cindex extender
+@node Printing chord names
+@subsection Printing chord names
 
-When a lyric is sung over many notes (this is called a melisma), this is
-indicated with a horizontal line centered between a syllable and the
-next one.  Such a line is called an extender line, and it is entered as
-@code{__}.
+@cindex printing chord names
+@cindex chord names
+@cindex chords
 
-@ignore
-FIXME: check that this compiles and displays correctly.  I don't want
-to commit this part blindly.
+For displaying printed chord names, use the @internalsref{ChordNames} context.
+The chords may be entered either using the notation
+described above, or directly using @code{<} and @code{>}
 
-In tighly engraved music, hyphens can be removed.  In some languages
-(e.g. German and Hungarian), hyphens should not disappear, since
-spelling depends on hyphenation.  For that purpose, hyphens can be
-forced to remain by overriding @code{minimum-length} of
-the @code{LyricHyphen} grob.
+@lilypond[quote,verbatim,ragged-right]
+harmonies = {
+  \chordmode {a1 b c} <d' f' a'> <e' g' b'>
+}
+<<
+  \new ChordNames \harmonies
+  \new Staff \harmonies
+>>
+@end lilypond
 
-(code from 2.2)
-\score {
-<<    \notes \new Staff \relative c'' { \time 1/4 c16[ c c  c]
-\time 1/4
-c16[ c c c]
-\time 1/4
-c16[ c c c]
+You can make the chord changes stand out by setting
+@internalsref{ChordNames}.@code{chordChanges} to true.  This will only
+display chord names when there is a change in the chords scheme and at
+the start of a new line
 
+@lilypond[quote,verbatim,ragged-right]
+harmonies = \chordmode {
+  c1:m c:m \break c:m c:m d
 }
-    \lyrics \new Lyrics \with {
-       % Otherwise lyrics are so far apart that hyphens don't disappear
-       \override SeparationItem #'padding = #0.0
-       }{ bla -- bla -- bla -- bla --
-          bla -- bla -- bla -- bla --
-
-          \override LyricHyphen  #'minimum-length = #0.7
-          \override LyricHyphen  #'spacing-procedure =
-                  #Hyphen_spanner::set_spacing_rods
-
-          bla -- bla -- bla -- bla 
-       }>>
-    \paper   {
-       indent = 0.0 \cm
-       linewidth = 3.4 \cm
-
-       \context {
-           \StaffContext \remove "Time_signature_engraver"
-       }
-       
-    }
-      
-}
-@end ignore
+<<
+  \new ChordNames {
+    \set chordChanges = ##t
+    \harmonies }
+  \new Staff \transpose c c' \harmonies
+>>
+@end lilypond
 
+The previous examples all show chords over a staff.  This is not
+necessary.  Chords may also be printed separately.  It may be necessary
+to add @internalsref{Volta_engraver} and @internalsref{Bar_engraver}
+for showing repeats.
 
-@seealso
-
-Program reference: @internalsref{HyphenEvent},
-@internalsref{ExtenderEvent}, @internalsref{LyricHyphen}, and
-@internalsref{LyricExtender}
-
-
-
-@node The Lyrics context
-@subsection The Lyrics context
+@lilypond[ragged-right,verbatim]
+\new ChordNames \with {
+  \override BarLine #'bar-size = #4
+  voltaOnThisStaff = ##t
+  \consists Bar_engraver
+  \consists "Volta_engraver"
+}
+\chordmode { \repeat volta 2 {
+  f1:maj f:7 bes:7
+  c:maj
+} \alternative {
+  es e
+}
+}
+@end lilypond
 
 
-Lyrics are printed by interpreting them in a @internalsref{Lyrics} context
-@example
-\context Lyrics \lyricmode @dots{}
-@end example
+The default chord name layout is a system for Jazz music, proposed by
+Klaus Ignatzek (see @ref{Literature list}).  It can be tuned through the
+following properties
 
-@cindex automatic syllable durations
-@cindex @code{\lyricsto}
-@cindex lyrics and melodies
+@table @code
+@cindex @code{chordNameExceptions}
+@item chordNameExceptions
+This is a list that contains the chords that have special formatting.
 
-This will place the lyrics according to the durations that were
-entered.  The lyrics can also be aligned under a given melody
-automatically.  In this case, it is no longer necessary to enter the
-correct duration for each syllable.  This is achieved by combining the
-melody and the lyrics with the @code{\lyricsto} expression
+The exceptions list should be encoded as
 @example
-\lyricsto @var{name} \new Lyrics @dots{}
+@{ <c f g bes>1 \markup @{ \super "7" "wahh" @} @}
 @end example
 
-This aligns the lyrics to the
-notes of the @internalsref{Voice} context called @var{name}, which has
-to exist.  Therefore, normally the @code{Voice} is specified first, and
-then the lyrics are specified with @code{\lyricsto}.  The command
-@code{\lyricsto} switches to @code{\lyricmode} mode automatically, so the
-@code{\lyricmode} keyword may be omitted.
-
-For different or more complex orderings, the best way is to setup the
-hierarchy of staves and lyrics first, e.g.,
+To get this information into @code{chordNameExceptions} takes a little
+manoeuvring.  The following code transforms @code{chExceptionMusic}
+(which is a sequential music) into a list of exceptions.
 @example
-\context ChoirStaff <<
-  \context Lyrics = sopranoLyrics @{ s1 @}
-  \context Voice = soprano @{ @emph{music} @}
-  \context Lyrics = tenorLyrics @{ s1 @}
-  \context Voice = tenor @{ @emph{music} @}
->>
+(sequential-music-to-chord-exceptions chExceptionMusic #t)
 @end example
-and then combine the appropriate melodies and lyric lines
+Then,
 @example
-\lyricsto "soprano" \context Lyrics = sopranoLyrics
-  @emph{the lyrics}
+(append
+ (sequential-music-to-chord-exceptions chExceptionMusic #t)
+ ignatzekExceptions)
 @end example
+adds the new exceptions to the default ones, which are defined in
+@file{ly/@/chord@/-modifier@/-init@/.ly}.
 
-@noindent
-The final input would resemble
-
-@example
-<<\context ChoirStaff << @emph{setup the music} >>
-  \lyricsto "soprano" @emph{etc}
-  \lyricsto "alto" @emph{etc}
-  @emph{etc}
->>
-@end example
+For an example of tuning this property, see also
+@inputfileref{input/@/regression,chord@/-name@/-exceptions@/.ly}.
+@cindex exceptions, chord names.
 
 
-The @code{\lyricsto} command detects melismata: it only puts one
-syllable under a tied or slurred group of notes.  If you want to force
-an unslurred group of notes to be a melisma, insert @code{\melisma}
-after the first note of the group, and @code{\melismaEnd} after the
-last one, e.g.,
+@cindex @code{majorSevenSymbol}
+@item majorSevenSymbol
+This property contains the markup object used for the 7th step, when
+it is major.  Predefined options are @code{whiteTriangleMarkup} and
+@code{blackTriangleMarkup}.  See
+@inputfileref{input/@/regression,chord@/-name@/-major7@/.ly} for an example.
 
-@lilypond[quote,relative=2,raggedright,fragment,verbatim]
-<<
-  \context Voice = "lala" {
-    \time 3/4
-    f4 g8
-    \melisma
-    f e f
-    \melismaEnd
-    e2
-  }
-  \lyricsto "lala" \new Lyrics {
-    la di __ daah
-  }
->>
+@cindex @code{chordNameSeparator}
+@item chordNameSeparator
+Different parts of a chord name are normally separated by a
+slash.  By setting @code{chordNameSeparator}, you can specify other
+separators, e.g.,
+@lilypond[quote,ragged-right,fragment,verbatim]
+\new ChordNames \chordmode {
+  c:7sus4
+  \set chordNameSeparator
+    = \markup { \typewriter "|" }
+  c:7sus4
+}
 @end lilypond
 
-In addition, notes are considered a melisma if they are manually
-beamed, and automatic beaming (see @ref{Setting automatic beam
-behavior}) is switched off.
+@cindex @code{chordRootNamer}
+@item chordRootNamer
+The root of a chord is usually printed as a letter with an optional
+alteration.  The transformation from pitch to letter is done by this
+function.  Special note names (for example, the German ``H'' for a
+B-chord) can be produced by storing a new function in this property.
 
-@ignore
+@cindex @code{chordNoteNamer}
+@item chordNoteNamer
+The default is to print single pitch, e.g., the bass note, using the
+@code{chordRootNamer}.  The @code{chordNoteNamer} property can be set
+to a specialized function to change this behavior.  For example, the
+base can be printed in lower case.
 
-@c nonformation:
+@cindex @code{chordPrefixSpacer}
+@item chordPrefixSpacer
+The ``m'' for minor chords is usually printed right after the root of 
+the chord. By setting @code{chordPrefixSpacer}, you can fix a spacer 
+between the root and ``m''. The spacer is not used when the root
+is altered.
 
-The criteria for deciding melismata can
-be tuned with the property @code{melismaBusyProperties}.  See
-@internalsref{Melisma_translator} in the program reference for more
-information.
+@end table
 
-@end ignore
+The predefined variables @code{\germanChords},
+@code{\semiGermanChords}, @code{\italianChords} and @code{\frenchChords} 
+set these variables.  The effect is
+demonstrated here,
 
-Lyrics can also be entered without @code{\lyricsto}.  In this case the
-duration of each syllable must be entered explicitly, for example,
+@lilypondfile[ragged-right]{chord-names-languages.ly}
 
-@example
-play2 the4 game2.
-sink2 or4 swim2.
-@end example
+There are also two other chord name schemes implemented: an alternate
+Jazz chord notation, and a systematic scheme called Banter chords.  The
+alternate Jazz notation is also shown on the chart in @ref{Chord name
+chart}.  Turning on these styles is described in the input file
+@inputfileref{input/@/test,chord@/-names@/-jazz@/.ly}.
 
-The alignment to a melody can be specified with the
-@code{associatedVoice} property,
+@cindex Banter
+@cindex jazz chords
+@cindex chords, jazz
 
-@example
-\set associatedVoice = #"lala"
-@end example
 
-@noindent
-The value of the property (here: @code{"lala"}) should be the name of
-a @internalsref{Voice} context.  Without this setting, extender lines
-will not be formatted properly.
+@refcommands
 
-Here is an example demonstrating manual lyric durations,
+@cindex @code{\germanChords}
+@code{\germanChords},
+@cindex @code{\semiGermanChords}
+@code{\semiGermanChords}.
+@cindex @code{\italianChords}
+@code{\italianChords}.
+@cindex @code{\frenchChords}
+@code{\frenchChords}.
 
-@lilypond[relative=1,raggedright,verbatim,fragment,quote]
-<< \context Voice = melody {
-     \time 3/4
-     c2 e4 g2.
-  }
-  \new Lyrics \lyricmode {
-    \set associatedVoice = #"melody"
-    play2 the4 game2.
-  } >>
-@end lilypond
 
-@cindex SATB
-@cindex choral score
 
-A complete example of a SATB score setup is in section
-@ref{Vocal ensembles}.
 
+@seealso
 
-@refcommands
+Examples: @inputfileref{input/@/regression,chord@/-name@/-major7@/.ly},
+@inputfileref{input/@/regression,chord@/-name@/-exceptions@/.ly},
+@inputfileref{input/@/test,chord@/-names@/-jazz@/.ly}.
 
-@code{\melisma}, @code{\melismaEnd}
-@cindex @code{\melismaEnd}
-@cindex @code{\melisma}
 
-@seealso
+Init files: @file{scm/@/chords@/-ignatzek@/.scm}, and
+@file{scm/@/chord@/-entry@/.scm}.
 
-Program reference: @internalsref{LyricCombineMusic},
-@internalsref{Lyrics}, @internalsref{Melisma_translator}.
 
+@refbugs
 
-@inputfileref{input/@/regression,lyric@/-combine@/-new@/.ly}.
-@c TODO: make separate section for melismata
+Chord names are determined solely from the list of pitches.  Chord
+inversions are not identified, and neither are added bass notes.  This
+may result in strange chord names when chords are entered with the
+@code{< .. >} syntax.
 
-@refbugs
 
-Melismata are not detected automatically, and extender lines must be
-inserted by hand.
 
+@node Vocal music
+@section Vocal music
 
-@c TODO: document \new Staff << Voice \lyricsto >> bug
+Since LilyPond input files are text, there are two issues to
+consider when working with vocal music:
 
-@node Flexibility in alignment
-@subsection Flexibility in alignment
+@itemize @bullet
+@item
+Song texts must be entered as text, not notes.  For example, the
+input@tie{}@code{d} should be interpreted as a one letter syllable, not the
+note@tie{}D.
 
+@item
+Song texts must be aligned with the notes of their melody.
+@end itemize
 
-Often, different stanzas of one song are put to one melody in slightly
-differing ways.  Such variations can still be captured with
-@code{\lyricsto}.
+There are a few different ways to define lyrics; the simplest
+way is to use the @code{\addlyrics} function.
 
-One possibility is that the text has a melisma in one stanza, but
-multiple syllables in another one.  One solution is to make the faster
-voice ignore the melisma.  This is done by setting
-@code{ignoreMelismata} in the Lyrics context.
+@menu
+* Setting simple songs::        
+* Entering lyrics::             
+* Hyphens and extenders::       
+* The Lyrics context::          
+* Melismata::                   
+* Another way of entering lyrics::  
+* Flexibility in placement::    
+* Spacing lyrics::              
+* More about stanzas::          
+* Ambitus::                     
+* Other vocal issues::          
+@end menu
 
-There has one tricky aspect.  The setting for @code{ignoreMelismata}
-must be set one syllable @emph{before} the non-melismatic syllable
-in the text, as shown here,
 
-@lilypond[verbatim,raggedright,quote]
-<<
-  \relative \context Voice = "lahlah" {
-    \set Staff.autoBeaming = ##f
-    c4
-    \slurDotted
-    f8.[( g16])
-    a4
-  }
-  \new Lyrics \lyricsto "lahlah" {
-    more slow -- ly
-  }
-  \new Lyrics \lyricsto "lahlah" {
-    \set ignoreMelismata = ##t % applies to "fas"
-    go fas -- ter
-    \unset ignoreMelismata
-    still
-  }
->>
-@end lilypond
+@commonprop
 
+Checking to make sure that text scripts and lyrics are within the margins is 
+a relatively large computational task.  To speed up processing, lilypond does 
+not perform such calculations by default; to enable it, use
 
-The @code{ignoreMelismata} applies to the syllable ``fas'', so it
-should be entered before ``go''.
+@example
+\override Score.PaperColumn #'keep-inside-line = ##t 
+@end example
 
-The reverse is also possible: making a lyric line slower than the
-standard.  This can be achieved by insert @code{\skip}s into the
-lyrics.  For every @code{\skip}, the text will be delayed another note.
-For example,
+To make lyrics avoid barlines as well, use
+@example
+\layout @{
+  \context @{
+    \Lyrics
+      \consists "Bar_engraver"
+      \consists "Separating_line_group_engraver"
+      \override BarLine #'transparent = ##t
+  @}
+@}
+@end example
 
-@lilypond[verbatim,raggedright,quote]
-\relative { c c g' }
-\addlyrics {
-  twin -- \skip 4
-  kle
-}
-@end lilypond
 
-More complex variations in text underlay are possible.  It is possible
-to switch the melody for a line of lyrics during the text.  This is
-done by setting the @code{associatedVoice} property.  In the example
+@node Setting simple songs
+@subsection Setting simple songs
 
-@lilypond[raggedright,quote]
-<<
-  \relative \context Voice = "lahlah" {
-    \set Staff.autoBeaming = ##f
-    c4
-    <<
-      \context Voice = alternative {
-        \voiceOne
-        \times 2/3 {
-          % show associations clearly.
-          \override NoteColumn #'force-hshift = #-3
-          f8 f g
-        }
-      }
-      {
-        \voiceTwo
-        f8.[ g16]
-        \oneVoice
-      } >>
-    a8( b) c
-  }
-  \new Lyrics \lyricsto "lahlah" {
-    Ju -- ras -- sic Park
-  }
-  \new Lyrics \lyricsto "lahlah" {
-    % Tricky: need to set associatedVoice
-    % one syllable too soon!
-    \set associatedVoice = alternative % applies to "ran"
-    Ty --
-    ran --
-    no --
-    \set associatedVoice = lahlah % applies to "rus"
-    sau -- rus Rex
-  } >>
-@end lilypond
+The easiest way to add lyrics to a melody is to append
+@cindex \addlyrics
+@example
+\addlyrics @{ @var{the lyrics} @}
+@end example
 
 @noindent
-the text for the first stanza is set to a melody called ``lahlah'',
+to a melody.  Here is an example,
+
+@lilypond[ragged-right,verbatim,fragment,quote]
+\time 3/4
+\relative { c2 e4 g2. }
+\addlyrics { play the game }
+@end lilypond
+
+More stanzas can be added by adding more
+@code{\addlyrics} sections
+
+@lilypond[ragged-right,verbatim,fragment,quote]
+\time 3/4
+\relative { c2 e4 g2. }
+\addlyrics { play the game }
+\addlyrics { speel het spel }
+\addlyrics { joue le jeu }
+@end lilypond
+
+The command @code{\addlyrics} cannot handle polyphony settings.  For these 
+cases you should use @code{\lyricsto} and @code{\lyricmode}.
+
+
+
+@node Entering lyrics
+@subsection Entering lyrics
+
+@cindex lyrics
+@cindex @code{\lyricmode}
+@cindex punctuation
 
+Lyrics are entered in a special input mode.  This mode is introduced
+by the keyword @code{\lyricmode}, or by using @code{\addlyrics} or
+@code{\lyricsto}.  In this mode you can enter lyrics,
+with punctuation and accents, and the input @code{d} is not parsed as
+a pitch, but rather as a one letter syllable.  Syllables are entered
+like notes, but with pitches replaced by text.  For example,
 @example
-\new Lyrics \lyricsto "lahlah" @{
-  Ju -- ras -- sic Park
-@}
+\lyricmode @{ Twin-4 kle4 twin- kle litt- le star2 @}
 @end example
 
+There are two main methods to specify the horizontal placement
+of the syllables, either by specifying the duration of each syllable
+explicitly, like in the example above, or by automatically aligning
+the lyrics to a melody or other voice of music, using @code{\addlyrics}
+or @code{\lyricsto}.  For more details see @ref{The Lyrics context}.
 
-The second stanza initially is set to the @code{lahlah} context, but
-for the syllable ``ran'', it switches to a different melody.
-This is achieved with
+A word or syllable of lyrics begins with an alphabetic character, and ends 
+with
+any space or digit.  The following characters can be any character
+that is not a digit or white space.  One important consequence of this
+is that a word can end with @code{@}}.  The following example is
+usually a mistake in the input file.  The syllable includes a @code{@}}, so 
+the
+opening brace is not balanced
 @example
-\set associatedVoice = alternative
+\lyricmode @{ twinkle@}
 @end example
 
+@cindex @code{\property}, in @code{\lyricmode}
 @noindent
-Here, @code{alternative} is the name of the @code{Voice} context
-containing the triplet.
+Similarly, a period which follows an alphabetic sequence is included in
+the resulting string.  As a consequence, spaces must be inserted around
+property commands
+@example
+\override Score . LyricText #'font-shape = #'italic
+@end example
 
-Again, the command must be one syllable too early, before ``Ty'' in
-this case.
+@cindex @code{_}
+@cindex spaces, in lyrics
+@cindex quotes, in lyrics
+
+In order to assign more than one syllable to a single note, you must
+surround them with quotes or use a @code{_} character between the syllables.
+
+@lilypond[quote,relative=2,ragged-right,fragment,verbatim]
+\time 3/4
+\relative { c2 e4 g2 e4 }
+\addlyrics { gran- de_a- mi- go }
+\addlyrics { pu- "ro y ho-" nes- to }
+@end lilypond
+
+To enter lyrics with characters from non-English languages, or with
+non-ascii characters (such as the heart symbol or slanted quotes),
+simply insert the characters directly into the input file and save
+it with utf-8 encoding.  See @ref{Text encoding} for more info.
 
 @example
-\new Lyrics \lyricsto "lahlah" @{
-  \set associatedVoice = alternative % applies to "ran"
-  Ty --
-  ran --
-  no --
-  \set associatedVoice = lahlah % applies to "rus"
-  sau -- rus Rex
-@}
+\lyricmode @{ He said: “Let my peo ple go”. @}
 @end example
 
-@noindent
-The underlay is switched back to the starting situation by assigning
-@code{lahlah} to @code{associatedVoice}.
+To use normal quotes in lyrics, add a backslash before the
+quotes.  For example,
 
+@lilypond[quote,ragged-right,fragment,verbatim]
+\relative c' { \time 3/4 e4 e4. e8 d4 e d c2. }
+\addlyrics { "\"I" am so lone- "ly\"" said she }
+@end lilypond
 
+The full definition of a word start in Lyrics mode is somewhat more
+complex.
 
+A word in Lyrics mode begins with: an alphabetic character, @code{_},
+@code{?}, @code{!}, @code{:}, @code{'}, the control characters @code{^A}
+through @code{^F}, @code{^Q} through @code{^W}, @code{^Y}, @code{^^},
+any 8-bit character with ASCII code over 127, or a two-character
+combination of a backslash followed by one of @code{`}, @code{'},
+@code{"}, or @code{^}.
 
-@node More stanzas
-@subsection More stanzas
 
-@cindex phrasing, in lyrics
+@seealso
 
+Program reference: @internalsref{LyricText}, @internalsref{LyricSpace}.
 
-@cindex stanza number
-@cindex singer's names
-@cindex name of singer
 
-Stanza numbers can be added by setting @code{stanza}, e.g.,
 
-@lilypond[quote,raggedright,verbatim,relative=2,fragment]
-\new Voice {
-  \time 3/4 g2 e4 a2 f4 g2.
-} \addlyrics {
-  \set stanza = "1. "
-  Hi, my name is Bert.
-} \addlyrics {
-  \set stanza = "2. "
-  Oh, che -- ri, je t'aime
-}
-@end lilypond
+@node Hyphens and extenders
+@subsection Hyphens and extenders
 
-These numbers are put just before the start of first syllable.
+@cindex hyphens
 
-Names of singers can also be added.  They are printed at the start of
-the line, just like instrument names.  They are created by setting
-@code{vocalName}.  A short version may be entered as @code{vocNam}.
+Centered hyphens are entered as `@code{--}' between syllables.
+The hyphen will have variable length depending on the space between
+the syllables and it will be centered between the syllables.
 
+@cindex melisma
+@cindex extender
 
-@lilypond[fragment,raggedright,quote,verbatim,relative=2]
-\new Voice {
-  \time 3/4 g2 e4 a2 f4 g2.
-} \addlyrics {
-  \set vocalName = "Bert "
-  Hi, my name is Bert.
-} \addlyrics {
-  \set vocalName = "Ernie "
-  Oh, che -- ri, je t'aime
-}
-@end lilypond
+When a lyric is sung over many notes (this is called a melisma), this is
+indicated with a horizontal line centered between a syllable and the
+next one.  Such a line is called an extender line, and it is entered as
+`@code{__}'.
 
-@seealso
+In tighly engraved music, hyphens can be removed.  Whether this
+happens can be controlled with the @code{minimum-distance} (minimum
+distance between two syllables) and the @code{minimum-length}
+(threshold below which hyphens are removed).
 
-Program reference: Layout objects @internalsref{LyricText} and
-@internalsref{VocalName}.  Music expressions
-@internalsref{LyricEvent}.
+@seealso
 
+Program reference: @internalsref{LyricHyphen}, @internalsref{LyricExtender}.
 
 
-@node Ambitus
-@subsection Ambitus
-@cindex ambitus
 
-The term @emph{ambitus} denotes a range of pitches for a given voice
-in a part of music.  It may also denote the pitch range that a musical
-instrument is capable of playing.  Ambits are printed on vocal parts,
-so performers can easily determine it meets their capabilities.
+@node The Lyrics context
+@subsection The Lyrics context
 
-Ambits are denoted at the beginning of a piece near the initial clef.
-The range is graphically specified by two note heads that represent the
-minimum and maximum pitch.  To print such ambits, add the
-@internalsref{Ambitus_engraver} to the @internalsref{Voice} context,
-for example,
+Lyrics are printed by interpreting them in the context caleld 
+@internalsref{Lyrics}.
 
 @example
-\layout @{
-  \context @{
-    \Voice
-    \consists Ambitus_engraver
-  @}
-@}
+\new Lyrics \lyricmode @dots{}
 @end example
 
-This results in the following output
+@cindex automatic syllable durations
+@cindex @code{\lyricsto}
+@cindex lyrics and melodies
 
-@lilypond[quote,raggedright]
-\layout {
-  \context {
-    \Staff
-    \consists Ambitus_engraver
-  }
-}
+This will place the lyrics according to the durations that were
+entered.  The lyrics can also be aligned under a given melody
+automatically.  In this case, it is no longer necessary to enter the
+correct duration for each syllable.  This is achieved by combining the
+melody and the lyrics with the @code{\lyricsto} expression
 
-\relative \new Staff {
-  as'' c e2 cis,2
-}
-@end lilypond
+@example
+\new Lyrics \lyricsto @var{name} @dots{}
+@end example
 
-If you have multiple voices in a single staff and you want a single
-ambitus per staff rather than per each voice, add the
-@internalsref{Ambitus_engraver} to the @internalsref{Staff} context
-rather than to the @internalsref{Voice} context.  Here is an example,
+This aligns the lyrics to the
+notes of the @internalsref{Voice} context called @var{name}, which has
+to exist.  Therefore, normally the @code{Voice} is specified first, and
+then the lyrics are specified with @code{\lyricsto}.  The command
+@code{\lyricsto} switches to @code{\lyricmode} mode automatically, so the
+@code{\lyricmode} keyword may be omitted.
 
-@lilypond[verbatim,raggedright,quote]
-\new Staff \with {
-  \consists "Ambitus_engraver"
-}
-<<
-  \new Voice \with {
-    \remove "Ambitus_engraver"
-  } \relative c'' {
-    \override Ambitus #'X-offset-callbacks
-      = #(list (lambda (grob axis) -1.0))
-    \voiceOne
-    c4 a d e f2
-  }
-  \new Voice \with {
-    \remove "Ambitus_engraver"
-  } \relative c' {
-    \voiceTwo
-    es4 f g as b2
+The following example uses different commands for entering lyrics.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<< 
+  \new Voice = "one" \relative c'' {
+    \autoBeamOff
+    \time 2/4
+    c4 b8. a16 g4. f8 e4 d c2 
   }
+  \new Lyrics \lyricmode { Joy4 to8. the16 world!4. the8 Lord4 is come.2 }
+  \new Lyrics \lyricmode { Joy to the earth! the Sav -- our reigns. }
+  \new Lyrics \lyricsto "one" { No more let sins and sor -- rows grow. }
 >>
 @end lilypond
 
-@noindent
-This example uses one advanced feature,
+The second stanza is not properly aligned because the durations
+were not specified.  A solution for that would be to use @code{\lyricsto}.
 
-@example
-\override Ambitus #'X-offset-callbacks
-  = #(list (lambda (grob axis) -1.0))
-@end example
 
-@noindent
-This code moves the ambitus to the left.  The same effect could have
-been achieved with @code{extra-offset}, but then the formatting system
-would not reserve space for the moved object.
 
-@seealso
 
-Program reference: @internalsref{Ambitus},
-@internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
-@internalsref{AmbitusAccidental}.
 
-Examples: @inputfileref{input/@/regression,ambitus@/.ly}.
 
-@refbugs
+To define indentifiers containing lyrics, the function @code{lyricmode}
+must be used.
 
-There is no collision handling in the case of multiple per-voice
-ambitus.
+@example
+verseOne = \lyricmode @{ Joy to the world the Lord is come @}
+\score @{
+  << 
+    \new Voice = "one" \relative c'' @{
+      \autoBeamOff
+      \time 2/4
+      c4 b8. a16 g4. f8 e4 d c2 
+    @}
+    \addlyrics @{ \verseOne @}
+  >>
+@}
+@end example
 
-@node Other vocal issues
-@subsection Other vocal issue
+The @code{\addlyrics} command is actually just a convenient way
+to write a more complicated LilyPond structure that sets up the
+lyrics. 
 
-@ignore
-yeah, I'm giving up somewhat by stuffing a bunch of things in
-here.  But at least they're in the manual now; it's easier to
-move them around in the manual once they're already here.
-
-Besides, if users complain about everything stuffed in here, I
-can ask them for specific instructions about where to move these
-examples, and that might get them more involved in the docs.  -gp
-@end ignore
+@example
+@{ MUSIC @}
+\addlyrics @{ LYRICS @}
+@end example
 
-You can display alternate (or divisi) lyrics by naming voice
-contexts and attaching lyrics to those specific contexts.
+@noindent
+is the same as
 
-@lilypond[verbatim,raggedright,quote]
-\score{ <<
-  \context Voice = "melody" {
-    \relative c' {
-      c4
-      <<
-        { \voiceOne c8 e }
-        \context Voice = splitpart { \voiceTwo c4 }
-      >>
-      \oneVoice c4 c | c
-    }
-  }
-  \new Lyrics \lyricsto "melody" { we shall not o- ver- come }
-  \new Lyrics \lyricsto "splitpart" { shall }
->> }
-@end lilypond
+@example
+\new Voice = "blah" @{ music @}
+\new Lyrics \lyricsto "blah" @{ LYRICS @}
+@end example
 
+For different or more complex orderings, the best way is to setup the
+hierarchy of staves and lyrics first, e.g.,
+@example
+\new ChoirStaff <<
+  \new Voice = "soprano" @{ @emph{music} @}
+  \new Lyrics = "sopranoLyrics" @{ s1 @}
+  \new Lyrics = "tenorLyrics" @{ s1 @}
+  \new Voice = "tenor" @{ @emph{music} @}
+>>
+@end example
 
-You can use this trick to display different lyrics for a repeated
-section.
+and then combine the appropriate melodies and lyric lines
 
-@lilypond[verbatim,raggedright,quote]
-\score{ <<
-  \context Voice = melody \relative c' {
-    c2 e | g e | c1 |
-    \context Voice = verse \repeat volta 2 {c4 d e f | g1 | }
-    a2 b | c1}
-  \lyricsto melody  \context Lyrics = mainlyrics \lyricmode {
-    do mi sol mi do
-    la si do }
-  \lyricsto verse \context Lyrics = mainlyrics \lyricmode {
-   do re mi fa sol }
-  \lyricsto verse \context Lyrics = repeatlyrics \lyricmode {
-   dodo rere mimi fafa solsol }
->>
-}
-@end lilypond
+@example
+\context Lyrics = sopranoLyrics \lyricsto "soprano"
+  @emph{the lyrics}
+@end example
 
+@noindent
+The final input would resemble
 
-@node Other instrument specific notation
-@section Other instrument specific notation
+@example
+<<\new ChoirStaff << @emph{setup the music} >>
+  \lyricsto "soprano" @emph{etc}
+  \lyricsto "alto" @emph{etc}
+  @emph{etc}
+>>
+@end example
 
-This section includes extra information for writing string music, and may
-include extra information for other instruments in the future.
+@seealso
 
-@menu
-* Harmonic notes::              
-@end menu
+Program reference: @internalsref{LyricCombineMusic},
+@internalsref{Lyrics}.
 
-@node Harmonic notes
-@subsection Harmonic notes
 
-@cindex artificial harmonics
-@cindex harmonics
+@node Melismata
+@subsection Melismata
 
-Artificial harmonics are notated with a different notehead style.  They
-are entered by marking the harmonic pitch with @code{\harmonic}.
+The @code{\lyricsto} command detects melismata: it only puts one
+syllable under a tied or slurred group of notes.  If you want to force
+an unslurred group of notes to be a melisma, insert @code{\melisma}
+after the first note of the group, and @code{\melismaEnd} after the
+last one, e.g.,
 
-@lilypond[raggedright,verbatim,quote,fragment]
-<c' g'\harmonic>4
+@lilypond[quote,relative=2,ragged-right,fragment,verbatim]
+<<
+  \new Voice = "lala" {
+    \time 3/4
+    f4 g8
+    \melisma
+    f e f
+    \melismaEnd
+    e2
+  }
+  \new Lyrics \lyricsto "lala" {
+    la di __ daah
+  }
+>>
 @end lilypond
 
+In addition, notes are considered a melisma if they are manually
+beamed, and automatic beaming (see @ref{Setting automatic beam
+behavior}) is switched off.
 
-@node Tablatures
-@section Tablatures
+@cindex SATB
+@cindex choral score
 
-@cindex tablature
-@cindex guitar tablature
+A complete example of a SATB score setup is in section
+@ref{Vocal ensembles}.
 
-Tablature notation is used for notating music for plucked string
-instruments.  Pitches are not denoted with note heads, but by
-indicating on which string and fret a note must be played.  LilyPond
-offers limited support for tablature.
 
-@menu
-* Tablatures basic::            
-* Non-guitar tablatures::       
-@end menu
+@refcommands
 
-@node Tablatures basic
-@subsection Tablatures basic
-@cindex Tablatures basic
+@code{\melisma}, @code{\melismaEnd}
+@cindex @code{\melismaEnd}
+@cindex @code{\melisma}
 
-The string number associated to a note is given as a backslash
-followed by a number, e.g., @code{c4\3} for a C quarter on the third
-string.  By default, string 1 is the highest one, and the tuning
-defaults to the standard guitar tuning (with 6 strings).  The notes
-are printed as tablature, by using @internalsref{TabStaff} and
-@internalsref{TabVoice} contexts
+@seealso
 
-@lilypond[quote,raggedright,fragment,verbatim]
-\context TabStaff {
-  a,4\5 c'\2 a\3 e'\1
-  e\4 c'\2 a\3 e'\1
-}
-@end lilypond
+Program reference: @internalsref{Melisma_translator}.
 
-@cindex @code{minimumFret}
-@cindex fret
 
-When no string is specified, the first string that does not give a
-fret number less than @code{minimumFret} is selected.  The default
-value for @code{minimumFret} is 0
+@inputfileref{input/@/regression,lyric@/-combine@/-new@/.ly}.
 
+@refbugs
 
-@example
-e16 fis gis a b4
-\set TabStaff.minimumFret = #8
-e16 fis gis a b4
-@end example
-@lilypond[quote,raggedright]
-frag = {
-  \key e \major
-  e16 fis gis a b4
-  \set TabStaff.minimumFret = #8
-  e16 fis gis a b4
-}
-  \context StaffGroup <<
-    \context Staff { \clef "G_8" \frag }
-    \context TabStaff { \frag }
-  >>
-@end lilypond
+Melismata are not detected automatically, and extender lines must be
+inserted by hand.
 
-@seealso
 
-Program reference: @internalsref{TabStaff}, @internalsref{TabVoice}, and
-@internalsref{StringNumberEvent}.
+@node Another way of entering lyrics
+@subsection Another way of entering lyrics
 
-@refbugs
+Lyrics can also be entered without @code{\lyricsto}.  In this case the
+duration of each syllable must be entered explicitly, for example,
 
-Chords are not handled in a special way, and hence the automatic
-string selector may easily select the same string to two notes in a
-chord.
+@example
+play2 the4 game2.
+sink2 or4 swim2.
+@end example
 
+The alignment to a melody can be specified with the
+@code{associatedVoice} property,
 
-@node Non-guitar tablatures
-@subsection Non-guitar tablatures
-@cindex Non-guitar tablatures
+@example
+\set associatedVoice = #"lala"
+@end example
 
-You can change the number of strings, by setting the number of lines
-in the @internalsref{TabStaff}.
+@noindent
+The value of the property (here: @code{"lala"}) should be the name of
+a @internalsref{Voice} context.  Without this setting, extender lines
+will not be formatted properly.
 
-You can change the tuning of the strings.  A string tuning is given as
-a Scheme list with one integer number for each string, the number
-being the pitch (measured in semitones relative to middle C) of an
-open string.  The numbers specified for @code{stringTuning} are the
-numbers of semitones to subtract or add, starting the specified pitch
-by default middle C, in string order.  In the next example,
-@code{stringTunings} is set for the pitches e, a, d, and g
+Here is an example demonstrating manual lyric durations,
 
-@lilypond[quote,raggedright,fragment,verbatim]
-\context TabStaff <<
-  \set TabStaff.stringTunings = #'(-5 -10 -15 -20)
-  {
-    a,4 c' a e' e c' a e'
+@lilypond[relative=1,ragged-right,verbatim,fragment,quote]
+<< \new Voice = "melody" {
+     \time 3/4
+     c2 e4 g2.
   }
->>
+  \new Lyrics \lyricmode {
+    \set associatedVoice = #"melody"
+    play2 the4 game2.
+  } >>
 @end lilypond
 
-@refbugs
-
-No guitar special effects have been implemented.
-
-@seealso
-
-Program reference: @internalsref{Tab_note_heads_engraver}.
 
+@c TODO: document \new Staff << Voice \lyricsto >> bug
 
-@node Popular music
-@section Popular music
+@node Flexibility in placement
+@subsection Flexibility in placement
 
-This section discusses issues that arise when writing popular music.
+Often, different stanzas of one song are put to one melody in slightly
+differing ways.  Such variations can still be captured with
+@code{\lyricsto}.
 
 @menu
-* Chord names::                 
-* Chords mode::                 
-* Printing chord names::        
-* Fret diagrams::               
+* Lyrics to multiple notes of a melisma::  
+* Divisi lyrics::               
+* Switching the melody associated with a lyrics line::  
+* Specifying melismata within the lyrics::  
 @end menu
 
-@node Chord names
-@subsection Chord names
-@cindex Chords
+@node Lyrics to multiple notes of a melisma
+@subsubsection Lyrics to multiple notes of a melisma 
 
-LilyPond has support for printing chord names.  Chords may be entered
-in musical chord notation, i.e., @code{< .. >}, but they can also be
-entered by name.  Internally, the chords are represented as a set of
-pitches, so they can be transposed
 
+One possibility is that the text has a melisma in one stanza, but
+multiple syllables in another one.  One solution is to make the faster
+voice ignore the melisma.  This is done by setting
+@code{ignoreMelismata} in the Lyrics context.
 
-@lilypond[quote,raggedright,verbatim,raggedright]
-twoWays = \transpose c c' {
-  \chordmode {
-    c1 f:sus4 bes/f
-  }
-  <c e g>
-  <f bes c'>
-  <f bes d'>
-}
+There is one tricky aspect: the setting for @code{ignoreMelismata}
+must be set one syllable @emph{before} the non-melismatic syllable
+in the text, as shown here,
 
-<< \context ChordNames \twoWays
-   \context Voice \twoWays >>
+@lilypond[verbatim,ragged-right,quote]
+<<
+  \relative \new Voice = "lahlah" {
+    \set Staff.autoBeaming = ##f
+    c4
+    \slurDotted
+    f8.[( g16])
+    a4
+  }
+  \new Lyrics \lyricsto "lahlah" {
+    more slow -- ly
+  }
+  \new Lyrics \lyricsto "lahlah" {
+    \set ignoreMelismata = ##t % applies to "fas"
+    go fas -- ter
+    \unset ignoreMelismata
+    still
+  }
+>>
 @end lilypond
 
-This example also shows that the chord printing routines do not try to
-be intelligent.  The last chord (@code{f bes d}) is not interpreted as
-an inversion.
-
 
-@node Chords mode
-@subsection Chords mode
-@cindex Chords mode
+The @code{ignoreMelismata} applies to the syllable ``fas'', so it
+should be entered before ``go''.
 
-In chord mode sets of pitches (chords) are entered with normal note
-names.  A chord is entered by the root, which is entered like a
-normal pitch
+The reverse is also possible: making a lyric line slower than the
+standard.  This can be achieved by insert @code{\skip}s into the
+lyrics.  For every @code{\skip}, the text will be delayed another note.
+For example,
 
-@lilypond[quote,raggedright,fragment,verbatim]
-\chordmode { es4. d8 c2 }
+@lilypond[verbatim,ragged-right,quote]
+\relative { c c g' }
+\addlyrics {
+  twin -- \skip 4
+  kle
+}
 @end lilypond
 
-@noindent
-The mode is introduced by the keyword @code{\chordmode}.
 
-@cindex chord entry
-@cindex chord mode
+@node Divisi lyrics
+@subsubsection Divisi lyrics
 
-Other chords may be entered by suffixing a colon and introducing a
-modifier (which may include a number if desired)
-@lilypond[quote,fragment,verbatim]
-\chordmode { e1:m e1:7 e1:m7 }
-@end lilypond
-The first number following the root is taken to be the `type' of the
-chord, thirds are added to the root until it reaches the specified
-number
-@lilypond[quote,fragment,verbatim]
-\chordmode { c:3 c:5 c:6 c:7 c:8 c:9 c:10 c:11 }
+You can display alternate (or divisi) lyrics by naming voice
+contexts and attaching lyrics to those specific contexts.
+
+@lilypond[verbatim,ragged-right,quote]
+\score{ <<
+  \new Voice = "melody" {
+    \relative c' {
+      c4
+      <<
+        { \voiceOne c8 e }
+        \new Voice = "splitpart" { \voiceTwo c4 }
+      >>
+      \oneVoice c4 c | c
+    }
+  }
+  \new Lyrics \lyricsto "melody" { we shall not o- ver- come }
+  \new Lyrics \lyricsto "splitpart" { will }
+>> }
 @end lilypond
 
-@cindex root of chord
-@cindex additions, in chords
-@cindex removals, in chords
 
-More complex chords may also be constructed adding separate steps
-to a chord.  Additions are added after the number following
-the colon and are separated by dots
-@lilypond[quote,verbatim,fragment]
-\chordmode { c:5.6 c:3.7.8 c:3.6.13 }
-@end lilypond
-Chord steps can be altered by suffixing a @code{-} or @code{+} sign
-to the number
-@lilypond[quote,verbatim,fragment]
-\chordmode { c:7+ c:5+.3- c:3-.5-.7- }
+You can use this trick to display different lyrics for a repeated
+section.
+
+@lilypond[verbatim,ragged-right,quote]
+\score{ <<
+  \new Voice = "melody" \relative c' {
+    c2 e | g e | c1 |
+    \new Voice = "verse" \repeat volta 2 {c4 d e f | g1 | }
+    a2 b | c1}
+  \new Lyrics = "mainlyrics" \lyricsto melody \lyricmode {
+    do mi sol mi do
+    la si do }
+  \context Lyrics = "mainlyrics" \lyricsto verse \lyricmode {
+   do re mi fa sol }
+  \new Lyrics = "repeatlyrics" \lyricsto verse \lyricmode {
+   dodo rere mimi fafa solsol }
+>>
+}
 @end lilypond
-Removals are specified similarly and are introduced by a caret.  They
-must come after the additions
-@lilypond[quote,verbatim,fragment]
-\chordmode { c^3 c:7^5 c:9^3.5 }
+
+
+
+@node Switching the melody associated with a lyrics line
+@subsubsection Switching the melody associated with a lyrics line
+
+More complex variations in text underlay are possible.  It is possible
+to switch the melody for a line of lyrics during the text.  This is
+done by setting the @code{associatedVoice} property.  In the example
+
+@lilypond[ragged-right,quote]
+<<
+  \relative \new Voice = "lahlah" {
+    \set Staff.autoBeaming = ##f
+    c4
+    <<
+      \new Voice = "alternative" {
+        \voiceOne
+        \times 2/3 {
+          % show associations clearly.
+          \override NoteColumn #'force-hshift = #-3
+          f8 f g
+        }
+      }
+      {
+        \voiceTwo
+        f8.[ g16]
+        \oneVoice
+      } >>
+    a8( b) c
+  }
+  \new Lyrics \lyricsto "lahlah" {
+    Ju -- ras -- sic Park
+  }
+  \new Lyrics \lyricsto "lahlah" {
+    % Tricky: need to set associatedVoice
+    % one syllable too soon!
+    \set associatedVoice = alternative % applies to "ran"
+    Ty --
+    ran --
+    no --
+    \set associatedVoice = lahlah % applies to "rus"
+    sau -- rus Rex
+  } >>
 @end lilypond
 
-Modifiers can be used to change pitches.  The following modifiers are
-supported
+@noindent
+the text for the first stanza is set to a melody called ``lahlah'',
 
-@table @code
-@item m
-The minor chord.  This modifier lowers the 3rd and (if present) the 7th step.
+@example
+\new Lyrics \lyricsto "lahlah" @{
+  Ju -- ras -- sic Park
+@}
+@end example
 
-@item dim
-The diminished chord.  This modifier lowers the 3rd, 5th and (if present)
-the 7th step.
 
-@item aug
-The augmented chord.  This modifier raises the 5th step.
+The second stanza initially is set to the @code{lahlah} context, but
+for the syllable ``ran'', it switches to a different melody.
+This is achieved with
+@example
+\set associatedVoice = alternative
+@end example
 
-@item maj
-The major 7th chord.  This modifier raises the 7th step if present.
+@noindent
+Here, @code{alternative} is the name of the @code{Voice} context
+containing the triplet.
 
-@item sus
-The suspended 4th or 2nd.  This modifier removes the 3rd
-step.  Append either @code{2} or @code{4} to add the 2nd or 4th step to
-the chord.
-@end table
+Again, the command must be one syllable too early, before ``Ty'' in
+this case.
 
-Modifiers can be mixed with additions
-@lilypond[quote,verbatim,fragment]
-  \chordmode { c:sus4 c:7sus4 c:dim7 c:m6 }
+@example
+\new Lyrics \lyricsto "lahlah" @{
+  \set associatedVoice = alternative % applies to "ran"
+  Ty --
+  ran --
+  no --
+  \set associatedVoice = lahlah % applies to "rus"
+  sau -- rus Rex
+@}
+@end example
+
+@noindent
+The underlay is switched back to the starting situation by assigning
+@code{lahlah} to @code{associatedVoice}.
+
+
+@node Specifying melismata within the lyrics
+@subsubsection Specifying melismata within the lyrics
+
+It is also possible to define melismata entirely in the lyrics. This
+can be done by entering @code{_} for every note that is part of the
+melisma. 
+
+@lilypond[relative=1,verbatim,fragment] 
+{ \set melismaBusyProperties = #'()
+  c d( e) f f( e) e e  }
+\addlyrics
+ { Ky -- _ _ ri __ _ _ _  e }
 @end lilypond
 
-@cindex modifiers, in chords.
-@cindex @code{aug}
-@cindex @code{dim}
-@cindex @code{maj}
-@cindex @code{sus}
-@cindex @code{m}
+In this case, you can also have ties and slurs in the melody, if you
+set @code{melismaBusyProperties}, as is done in the example above.
 
-Since an unaltered 11 does not sound good when combined with an
-unaltered 3, the 11 is removed in this case (unless it is added
-explicitly)
-@lilypond[quote,raggedright,fragment,verbatim]
-\chordmode { c:13 c:13.11 c:m13 }
+@lilypond[relative=1,verbatim,fragment]
+{
+ \set melismaBusyProperties = #'()
+  c d( e) f f( e) e e
+}
+\addlyrics
+ { Ky -- _ _ ri __ _ _ _  e }
 @end lilypond
 
-@cindex @code{/}
 
-An inversion (putting one pitch of the chord on the bottom), as well
-as bass notes, can be specified by appending
-@code{/}@var{pitch} to the chord
-@lilypond[quote,raggedright,fragment,verbatim]
-\chordmode { c1 c/g c/f }
+@node Spacing lyrics
+@subsection Spacing lyrics
+
+@cindex Spacing lyrics
+@cindex Lyrics, increasing space between
+
+To increase the spacing between lyrics, set the minimum-distance property of
+LyricSpace.
+
+@lilypond[relative,verbatim,fragment,quote,ragged-right]
+{ 
+  c c c c
+  \override Lyrics.LyricSpace #'minimum-distance = #1.0
+  c c c c
+}
+\addlyrics {
+  longtext longtext longtext longtext
+  longtext longtext longtext longtext
+}
 @end lilypond
-@cindex @code{/+}
 
-A bass note can be added instead transposed out of the chord,
-by using @code{/+}@var{pitch}.
+To make this change for all lyrics in the score, set the property in the 
+layout.
 
-@lilypond[quote,raggedright,fragment,verbatim]
-\chordmode { c1 c/+g c/+f }
+@lilypond[relative,verbatim,quote,ragged-right]
+\score {
+  {
+  c c c c
+  c c c c
+  }
+  \addlyrics {
+  longtext longtext longtext longtext
+  longtext longtext longtext longtext
+  }
+  \layout {
+    \context {
+      \Lyrics
+      \override LyricSpace #'minimum-distance = #1.0
+    }
+  }
+}
 @end lilypond
 
-Chords is a mode similar to @code{\lyricmode}, etc.  Most
-of the commands continue to work, for example, @code{r} and
-@code{\skip} can be used to insert rests and spaces, and property
-commands may be used to change various settings.
 
+@node More about stanzas
+@subsection More about stanzas
 
+@cindex phrasing, in lyrics
 
-@refbugs
 
-Each step can only be present in a chord once.  The following
-simply produces the augmented chord, since @code{5+} is interpreted
-last
-@cindex clusters
-@lilypond[quote,raggedright,verbatim,fragment]
-\chordmode { c:5.5-.5+ }
+@cindex stanza number
+@cindex singer's names
+@cindex name of singer
+
+Stanza numbers can be added by setting @code{stanza}, e.g.,
+
+@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
+\new Voice {
+  \time 3/4 g2 e4 a2 f4 g2.
+} \addlyrics {
+  \set stanza = "1. "
+  Hi, my name is Bert.
+} \addlyrics {
+  \set stanza = "2. "
+  Oh, che -- ri, je t'aime
+}
 @end lilypond
 
+These numbers are put just before the start of first syllable.
 
-@node Printing chord names
-@subsection Printing chord names
+Sometimes it is appropriate to have one stanza set
+to the music, and the rest added in verse form at
+the end of the piece.  This can be accomplished by adding
+the extra verses into a @code{\markup} section outside
+of the main score block.  Notice that there are two
+different ways to force linebreaks when using
+@code{\markup}.
+
+@lilypond[ragged-right,verbatim,quote]
+melody = \relative c' {
+e d c d | e e e e |
+d d e d | c1 |
+}
 
-@cindex printing chord names
-@cindex chord names
-@cindex chords
+text = \lyricmode {
+\set stanza = "1." Ma- ry had a lit- tle lamb,
+its fleece was white as snow.
+}
 
-For displaying printed chord names, use the @internalsref{ChordNames} context.
-The chords may be entered either using the notation
-described above, or directly using @code{<} and @code{>}
+\book{
+  \score{ <<
+    \new Voice = "one" { \melody }
+    \new Lyrics \lyricsto "one" \text
+       >>
+    \layout { }
+  }
+  \markup { \column{
+    \line{ Verse 2. }
+    \line{ All the children laughed and played }
+    \line{ To see a lamb at school. }
+    }
+  }
+  \markup{
+    \wordwrap-string #"
+    Verse 3.
 
-@lilypond[quote,verbatim,raggedright]
-harmonies = {
-  \chordmode {a1 b c} <d' f' a'> <e' g' b'>
+    Mary took it home again,
+
+    It was against the rule."
+  }
 }
-<<
-  \context ChordNames \harmonies
-  \context Staff \harmonies
->>
 @end lilypond
 
-You can make the chord changes stand out by setting
-@internalsref{ChordNames}.@code{chordChanges} to true.  This will only
-display chord names when there is a change in the chords scheme and at
-the start of a new line
 
-@lilypond[quote,verbatim,raggedright]
-harmonies = \chordmode {
-  c1:m c:m \break c:m c:m d
+Names of singers can also be added.  They are printed at the start of
+the line, just like instrument names.  They are created by setting
+@code{vocalName}.  A short version may be entered as @code{vocNam}.
+
+
+@lilypond[fragment,ragged-right,quote,verbatim,relative=2]
+\new Voice {
+  \time 3/4 g2 e4 a2 f4 g2.
+} \addlyrics {
+  \set vocalName = "Bert "
+  Hi, my name is Bert.
+} \addlyrics {
+  \set vocalName = "Ernie "
+  Oh, che -- ri, je t'aime
 }
-<<
-  \context ChordNames {
-    \set chordChanges = ##t
-    \harmonies }
-  \context Staff \transpose c c' \harmonies
->>
 @end lilypond
 
-The previous examples all show chords over a staff.  This is not
-necessary.  Chords may also be printed separately.  It may be necessary
-to add @internalsref{Volta_engraver} and @internalsref{Bar_engraver}
-for showing repeats.
 
-@lilypond[raggedright,verbatim]
-\new ChordNames \with {
-  \override BarLine #'bar-size = #4
-  voltaOnThisStaff = ##t
-  \consists Bar_engraver
-  \consists "Volta_engraver"
+@seealso
+
+Program reference: @internalsref{LyricText}, @internalsref{StanzaNumber}, 
+@internalsref{VocalName}.
+
+
+
+@node Ambitus
+@subsection Ambitus
+@cindex ambitus
+
+The term @emph{ambitus} denotes a range of pitches for a given voice
+in a part of music.  It may also denote the pitch range that a musical
+instrument is capable of playing.  Ambits are printed on vocal parts,
+so performers can easily determine it meets their capabilities.
+
+Ambits are denoted at the beginning of a piece near the initial clef.
+The range is graphically specified by two note heads that represent the
+minimum and maximum pitch.  To print such ambits, add the
+@internalsref{Ambitus_engraver} to the @internalsref{Voice} context,
+for example,
+
+@example
+\layout @{
+  \context @{
+    \Voice
+    \consists Ambitus_engraver
+  @}
+@}
+@end example
+
+This results in the following output
+
+@lilypond[quote,ragged-right]
+\layout {
+  \context {
+    \Staff
+    \consists Ambitus_engraver
+  }
 }
-\repeat volta 2 \chordmode {
-  f1:maj f:7 bes:7
-  c:maj
-} \alternative {
-  es e
+
+\relative \new Staff {
+  as'' c e2 cis,2
+}
+@end lilypond
+
+If you have multiple voices in a single staff and you want a single
+ambitus per staff rather than per each voice, add the
+@internalsref{Ambitus_engraver} to the @internalsref{Staff} context
+rather than to the @internalsref{Voice} context.  Here is an example,
+
+@lilypond[verbatim,ragged-right,quote]
+\new Staff \with {
+  \consists "Ambitus_engraver"
+}
+<<
+  \new Voice \with {
+    \remove "Ambitus_engraver"
+  } \relative c'' {
+    \override Ambitus #'X-offset = #-1.0
+    \voiceOne
+    c4 a d e f2
+  }
+  \new Voice \with {
+    \remove "Ambitus_engraver"
+  } \relative c' {
+    \voiceTwo
+    es4 f g as b2
+  }
+>>
+@end lilypond
+
+@noindent
+This example uses one advanced feature,
+
+@example
+\override Ambitus #'X-offset = #-1.0
+@end example
+
+@noindent
+This code moves the ambitus to the left.  The same effect could have
+been achieved with @code{extra-offset}, but then the formatting system
+would not reserve space for the moved object.
+
+@seealso
+
+Program reference: @internalsref{Ambitus},
+@internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
+@internalsref{AmbitusAccidental}.
+
+Examples: @inputfileref{input/@/regression,ambitus@/.ly}.
+
+@refbugs
+
+There is no collision handling in the case of multiple per-voice
+ambitus.
+
+
+@node Other vocal issues
+@subsection Other vocal issues
+
+@ignore
+yeah, I'm giving up somewhat by stuffing a bunch of things in
+here.  But at least they're in the manual now; it's easier to
+move them around in the manual once they're already here.
+
+Besides, if users complain about everything stuffed in here, I
+can ask them for specific instructions about where to move these
+examples, and that might get them more involved in the docs.  -gp
+@end ignore
+
+``Parlato'' is spoken without pitch but still with rhythm; it is
+notated by cross noteheads.  This is demonstrated in
+@ref{Special noteheads}.
+
+
+
+
+
+@node Rhythmic music
+@section Rhythmic music
+
+Rhythmic music is primarily used for percussion and drum notation, but it can
+also be used to show the rhythms of melodies.
+
+@menu
+* Showing melody rhythms::      
+* Entering percussion::         
+* Percussion staves::           
+@end menu
+
+
+@node Showing melody rhythms
+@subsection Showing melody rhythms
+
+Sometimes you might want to show only the rhythm of a melody.  This
+can be done with the rhythmic staff.  All pitches of notes on such a
+staff are squashed, and the staff itself has a single line
+
+@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+\new RhythmicStaff {
+  \time 4/4
+  c4 e8 f g2 | r4 g r2 | g1:32 | r1 |
+}
+@end lilypond
+
+@seealso
+
+Program reference: @internalsref{RhythmicStaff}.
+
+Examples: @inputfileref{input/@/regression,rhythmic@/-staff@/.ly}.
+
+
+@node Entering percussion
+@subsection Entering percussion
+
+@cindex percussion
+@cindex drums
+
+
+Percussion notes may be entered in @code{\drummode} mode, which is
+similar to the standard mode for entering notes.  Each piece of
+percussion has a full name and an abbreviated name, and both can be used
+in input files
+
+@lilypond[quote,ragged-right,verbatim]
+\drums {
+  hihat hh bassdrum bd
+}
+@end lilypond
+
+The complete list of drum names is in the init file
+@file{ly/@/drumpitch@/-init@/.ly}.
+@c TODO: properly document this.
+
+@seealso
+
+Program reference: @internalsref{note-event}.
+
+@node Percussion staves
+@subsection Percussion staves
+@cindex percussion
+@cindex drums
+
+A percussion part for more than one instrument typically uses a
+multiline staff where each position in the staff refers to one piece
+of percussion.
+
+
+To typeset the music, the notes must be interpreted in a
+@internalsref{DrumStaff} and @internalsref{DrumVoice} contexts
+
+@lilypond[quote,ragged-right,verbatim]
+up = \drummode { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat }
+down = \drummode { bassdrum4 snare8 bd r bd sn4 }
+  \new DrumStaff <<
+    \new DrumVoice { \voiceOne \up }
+    \new DrumVoice { \voiceTwo \down }
+  >>
+@end lilypond
+
+The above example shows verbose polyphonic notation.  The short
+polyphonic notation, described in @ref{Polyphony}, can also be used if
+the @internalsref{DrumVoice}s are instantiated by hand first.  For example,
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\new DrumStaff <<
+  \new DrumVoice = "1" { s1 *2 }
+  \new DrumVoice = "2" { s1 *2 }
+  \drummode {
+    bd4 sn4 bd4 sn4
+    <<
+      { \repeat unfold 16 hh16 }
+      \\
+      { bd4 sn4 bd4 sn4 }
+    >>
+  }
+>>
+@end lilypond
+
+
+There are also other layout possibilities.  To use these, set the
+property @code{drumStyleTable} in context @internalsref{DrumVoice}.
+The following variables have been predefined
+
+@table @code
+@item drums-style
+This is the default.  It typesets a typical drum kit on a five-line staff
+
+@lilypond[quote,line-width=10.0\cm]
+nam = \lyricmode {
+  cymc cyms cymr hh hhc hho hhho hhp
+  cb hc bd sn ss tomh tommh tomml toml tomfh tomfl }
+mus = \drummode {
+  cymc cyms cymr hh hhc hho hhho hhp \break
+  cb hc bd sn ss tomh tommh tomml toml tomfh tomfl s16 }
+\score {
+  << \new DrumStaff \with {
+       \remove Bar_engraver
+       \remove Time_signature_engraver
+       \override Stem #'transparent = ##t
+       \override Stem #'Y-extent-callback = ##f
+       \override VerticalAxisGroup #'minimum-Y-extent = #'(-4.0 . 5.0)
+     } \mus
+     \new Lyrics \nam
+  >>
+  \layout {
+    \context {
+      \Score
+      \override LyricText #'font-family = #'typewriter
+      \override BarNumber #'transparent =##T
+    }
+  }
+}
+@end lilypond
+
+The drum scheme supports six different toms.  When there are fewer toms,
+simply select the toms that produce the desired result, i.e., to get toms
+on the three middle lines you use @code{tommh}, @code{tomml}, and
+@code{tomfh}.
+
+@item timbales-style
+This typesets timbales on a two line staff
+
+@lilypond[quote,ragged-right]
+nam = \lyricmode { timh ssh timl ssl cb }
+mus = \drummode { timh ssh timl ssl cb s16 }
+
+<<
+  \new DrumStaff \with {
+    \remove Bar_engraver
+    \remove Time_signature_engraver
+    \override Stem #'transparent = ##t
+    \override Stem #'Y-extent-callback = ##f
+    \override StaffSymbol #'line-count = #2
+    \override StaffSymbol #'staff-space = #2
+    \override VerticalAxisGroup #'minimum-Y-extent = #'(-3.0 . 4.0)
+    drumStyleTable = #timbales-style
+  } \mus
+  \new Lyrics {
+    \override LyricText #'font-family = #'typewriter
+    \nam
+  }
+>>
+@end lilypond
+
+@item congas-style
+This typesets congas on a two line staff
+
+@lilypond[quote,ragged-right]
+nam = \lyricmode { cgh cgho cghm ssh cgl cglo cglm ssl }
+mus = \drummode { cgh cgho cghm ssh cgl cglo cglm ssl s16 }
+
+<<
+  \new DrumStaff \with {
+    \remove Bar_engraver
+    \remove Time_signature_engraver
+    drumStyleTable = #congas-style
+    \override StaffSymbol #'line-count = #2
+
+    %% this sucks; it will lengthen stems.
+    \override StaffSymbol #'staff-space = #2
+    \override Stem #'transparent = ##t
+    \override Stem #'Y-extent-callback = ##f
+  } \mus
+  \new Lyrics {
+    \override LyricText #'font-family = #'typewriter
+    \nam
+  }
+>>
+@end lilypond
+
+@item bongos-style
+This typesets bongos on a two line staff
+
+@lilypond[quote,ragged-right]
+nam = \lyricmode { boh boho bohm ssh bol bolo bolm ssl }
+mus = \drummode { boh boho bohm ssh bol bolo bolm ssl s16 }
+
+<<
+  \new DrumStaff \with {
+    \remove Bar_engraver
+    \remove Time_signature_engraver
+    \override StaffSymbol #'line-count = #2
+    drumStyleTable = #bongos-style
+
+    %% this sucks; it will lengthen stems.
+    \override StaffSymbol #'staff-space = #2
+    \override Stem #'transparent = ##t
+    \override Stem #'Y-extent-callback = ##f
+  } \mus
+  \new Lyrics {
+    \override LyricText #'font-family = #'typewriter
+    \nam
+  }
+>>
+@end lilypond
+
+@item percussion-style
+To typeset all kinds of simple percussion on one line staves.
+
+@lilypond[quote,ragged-right]
+nam = \lyricmode { tri trio trim gui guis guil cb cl tamb cab mar hc }
+mus = \drummode { tri trio trim gui guis guil cb cl tamb cab mar hc s16 }
+
+<<
+  \new DrumStaff \with{
+    \remove Bar_engraver
+    drumStyleTable = #percussion-style
+    \override StaffSymbol #'line-count = #1
+    \remove Time_signature_engraver
+    \override Stem #'transparent = ##t
+    \override Stem #'Y-extent-callback = ##f
+  } \mus
+  \new Lyrics {
+    \override LyricText #'font-family = #'typewriter
+    \nam
+  }
+>>
+@end lilypond
+@end table
+
+If you do not like any of the predefined lists you can define your own
+list at the top of your file
+
+@lilypond[quote,ragged-right,verbatim]
+#(define mydrums '(
+         (bassdrum     default   #f         -1)
+         (snare        default   #f         0)
+         (hihat        cross     #f         1)
+         (pedalhihat   xcircle   "stopped"  2)
+         (lowtom       diamond   #f         3)))
+up = \drummode { hh8 hh hh hh hhp4 hhp }
+down = \drummode { bd4 sn bd toml8 toml }
+
+\new DrumStaff <<
+  \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
+  \new DrumVoice { \voiceOne \up }
+  \new DrumVoice { \voiceTwo \down }
+>>
+@end lilypond
+
+
+@seealso
+
+Init files: @file{ly/@/drumpitch@/-init@/.ly}.
+
+Program reference: @internalsref{DrumStaff}, @internalsref{DrumVoice}.
+
+@refbugs
+
+Because general MIDI does not contain rim shots, the sidestick is used
+for this purpose instead.
+
+
+
+@node Guitar
+@section Guitar
+
+@cindex tablature
+@cindex guitar tablature
+
+@menu
+* String number indications::   
+* Tablatures basic::            
+* Non-guitar tablatures::       
+* Banjo tablatures::            
+* Fret diagrams::               
+* Other guitar issues::         
+@end menu
+
+@node String number indications
+@subsection String number indications
+
+@cindex String numbers
+
+String numbers can be added to chords, by indicating the string number
+with @code{\}@var{number}, 
+
+@lilypond[relative,relative=1,ragged-right,fragment]
+<c\1 e\2 g\3>
+@end lilypond
+
+See also @inputfileref{input/regression,string-number.ly}.
+
+
+@seealso
+
+Program reference: @internalsref{StringNumber}.
+
+
+@node Tablatures basic
+@subsection Tablatures basic
+@cindex Tablatures basic
+
+Tablature notation is used for notating music for plucked string
+instruments.  Pitches are not denoted with note heads, but by
+numbers indicating on which string and fret a note must be played.  LilyPond
+offers limited support for tablature.
+
+The string number associated to a note is given as a backslash
+followed by a number, e.g., @code{c4\3} for a C quarter on the third
+string.  By default, string 1 is the highest one, and the tuning
+defaults to the standard guitar tuning (with 6 strings).  The notes
+are printed as tablature, by using @internalsref{TabStaff} and
+@internalsref{TabVoice} contexts
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\new TabStaff {
+  a,4\5 c'\2 a\3 e'\1
+  e\4 c'\2 a\3 e'\1
 }
 @end lilypond
 
+@cindex @code{minimumFret}
+@cindex fret
 
-The default chord name layout is a system for Jazz music, proposed by
-Klaus Ignatzek (see @ref{Literature list}).  It can be tuned through the
-following properties
+When no string is specified, the first string that does not give a
+fret number less than @code{minimumFret} is selected.  The default
+value for @code{minimumFret} is 0
 
-@table @code
-@cindex @code{chordNameExceptions}
-@item chordNameExceptions
-This is a list that contains the chords that have special formatting.
 
-The exceptions list should be encoded as
 @example
-@{ <c f g bes>1 \markup @{ \super "7" "wahh" @} @}
+e16 fis gis a b4
+\set TabStaff.minimumFret = #8
+e16 fis gis a b4
 @end example
+@lilypond[quote,ragged-right]
+frag = {
+  \key e \major
+  e16 fis gis a b4
+  \set TabStaff.minimumFret = #8
+  e16 fis gis a b4
+}
+  \new StaffGroup <<
+    \new Staff { \clef "G_8" \frag }
+    \new TabStaff { \frag }
+  >>
+@end lilypond
+
+
+@commonprop
+
+To print tablatures with stems down and horizontal beams,
+initialize the @code{TabStaff} with this code:
 
-To get this information into @code{chordNameExceptions} takes a little
-manoeuvring.  The following code transforms @code{chExceptionMusic}
-(which is a sequential music) into a list of exceptions.
-@example
-(sequential-music-to-chord-exceptions chExceptionMusic #t)
-@end example
-Then,
 @example
-(append
- (sequential-music-to-chord-exceptions chExceptionMusic #t)
- ignatzekExceptions)
+\stemDown
+\override Beam #'damping = #100000
 @end example
-adds the new exceptions to the default ones, which are defined in
-@file{ly/@/chord@/-modifier@/-init@/.ly}.
 
-For an example of tuning this property, see also
-@inputfileref{input/@/regression,chord@/-name@/-exceptions@/.ly}.
-@cindex exceptions, chord names.
+@seealso
 
+Program reference: @internalsref{TabStaff}, @internalsref{TabVoice}.
 
-@cindex @code{majorSevenSymbol}
-@item majorSevenSymbol
-This property contains the markup object used for the 7th step, when
-it is major.  Predefined options are @code{whiteTriangleMarkup} and
-@code{blackTriangleMarkup}.  See
-@inputfileref{input/@/regression,chord@/-name@/-major7@/.ly} for an example.
+@refbugs
 
-@cindex @code{chordNameSeparator}
-@item chordNameSeparator
-Different parts of a chord name are normally separated by a
-slash.  By setting @code{chordNameSeparator}, you can specify other
-separators, e.g.,
-@lilypond[quote,raggedright,fragment,verbatim]
-\context ChordNames \chordmode {
-  c:7sus4
-  \set chordNameSeparator
-    = \markup { \typewriter "|" }
-  c:7sus4
-}
-@end lilypond
+Chords are not handled in a special way, and hence the automatic
+string selector may easily select the same string to two notes in a
+chord.
 
-@cindex @code{chordRootNamer}
-@item chordRootNamer
-The root of a chord is usually printed as a letter with an optional
-alteration.  The transformation from pitch to letter is done by this
-function.  Special note names (for example, the German ``H'' for a
-B-chord) can be produced by storing a new function in this property.
 
-@cindex @code{chordNoteNamer}
-@item chordNoteNamer
-The default is to print single pitch, e.g., the bass note, using the
-@code{chordRootNamer}.  The @code{chordNoteNamer} property can be set
-to a specialized function to change this behavior.  For example, the
-base can be printed in lower case.
+@node Non-guitar tablatures
+@subsection Non-guitar tablatures
+@cindex Non-guitar tablatures
 
-@end table
+You can change the tuning of the strings.  A string tuning is given as
+a Scheme list with one integer number for each string, the number
+being the pitch (measured in semitones relative to middle C) of an
+open string.  The numbers specified for @code{stringTuning} are the
+numbers of semitones to subtract or add, starting the specified pitch
+by default middle C, in string order.  LilyPond automatically calculates
+the number of strings by looking at @code{stringTuning}.
 
-The predefined variables @code{\germanChords},
-@code{\semiGermanChords} set these variables.  The effect is
-demonstrated here,
+In the next example,
+@code{stringTunings} is set for the pitches e, a, d, and g
 
-@lilypondfile[raggedright]{chord-names-german.ly}
+@lilypond[quote,ragged-right,fragment,verbatim]
+\new TabStaff <<
+  \set TabStaff.stringTunings = #'(-5 -10 -15 -20)
+  {
+    a,4 c' a e' e c' a e'
+  }
+>>
+@end lilypond
 
-There are also two other chord name schemes implemented: an alternate
-Jazz chord notation, and a systematic scheme called Banter chords.  The
-alternate Jazz notation is also shown on the chart in @ref{Chord name
-chart}.  Turning on these styles is described in the input file
-@inputfileref{input/@/test,chord@/-names@/-jazz@/.ly}.
+LilyPond comes with predefined string tunings for banjo, mandolin, guitar
+and bass guitar.
 
-@cindex Banter
-@cindex jazz chords
-@cindex chords, jazz
+@example
+\set TabStaff.stringTunings = #bass-tuning
+@end example
 
+The default string tuning is @code{guitar-tuning} (the standard EADGBE 
+tuning).
+Some other predefined tunings are @code{guitar-open-g-tuning},
+@code{mandolin-tuning} and @code{banjo-open-g-tuning}.
 
-@refcommands
+@seealso
 
-@cindex @code{\germanChords}
-@code{\germanChords},
-@cindex @code{\semiGermanChords}
-@code{\semiGermanChords}.
+The file @file{scm/@/output@/-lib@/.scm} contains the predefined string 
+tunings.
+Program reference: @internalsref{Tab_note_heads_engraver}.
 
+@refbugs
 
+No guitar special effects have been implemented.
 
 
-@seealso
 
-Examples: @inputfileref{input/@/regression,chord@/-name@/-major7@/.ly},
-@inputfileref{input/@/regression,chord@/-name@/-exceptions@/.ly},
-@inputfileref{input/@/test,chord@/-names@/-jazz@/.ly}.
+@node Banjo tablatures
+@subsection Banjo tablatures
+@cindex Banjo tablatures
 
+LilyPond has basic support for five stringed banjo.  When making tablatures
+for five stringed banjo, use the banjo tablature format function to get 
+correct
+fret numbers for the fifth string:
 
-Init files: @file{scm/@/chords@/-ignatzek@/.scm}, and
-@file{scm/@/chord@/-entry@/.scm}.
+@lilypond[quote,ragged-right,fragment,verbatim]
+\new TabStaff <<
+  \set TabStaff.tablatureFormat = #fret-number-tablature-format-banjo
+  \set TabStaff.stringTunings = #banjo-open-g-tuning
+  {
+    \stemDown
+    g8 d' g'\5 a b g e d' |
+    g4 d''8\5 b' a'\2 g'\5 e'\2 d' |
+    g4
+  }
+>>
+@end lilypond
 
+A number of common tunings for banjo are predefined in LilyPond:
+@code{banjo-c-tuning} (gCGBD), @code{banjo-modal-tuning} (gDGCD),
+@code{banjo-open-d-tuning} (aDF#AD) and @code{banjo-open-dm-tuning}
+(aDFAD).
 
-@refbugs
+These tunings may be converted to four string banjo tunings using the
+@code{four-string-banjo} function:
 
-Chord names are determined solely from the list of pitches.  Chord
-inversions are not identified, and neither are added bass notes.  This
-may result in strange chord names when chords are entered with the
-@code{< .. >} syntax.
+@example
+\set TabStaff.stringTunings = #(four-string-banjo banjo-c-tuning)
+@end example
+
+@seealso
+
+The file @file{scm/@/output@/-lib@/.scm} contains predefined banjo tunings.
 
 
 @node Fret diagrams
@@ -1779,11 +2031,11 @@ Fret diagrams can be added to music as a markup to the desired note.  The
 markup contains information about the desired fret diagram, as shown in the
 following example
 
-@lilypond[verbatim, raggedright, quote]
-\context Voice {
-  d' ^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;"
+@lilypond[verbatim, ragged-right, quote]
+\new Voice {
+  d'^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;"
   d' d' d'
-  fis' ^\markup \override #'(size . 0.75) {
+  fis'^\markup \override #'(size . 0.75) {
     \override #'(finger-code . below-string) {
       \fret-diagram-verbose #'((place-fret 6 2 1) (barre 6 1 2)
                                (place-fret 5 4 3) (place-fret 4 4 4)
@@ -1792,7 +2044,7 @@ following example
     }
   }
   fis' fis' fis'
-  c' ^\markup \override #'(dot-radius . 0.35) {
+  c'^\markup \override #'(dot-radius . 0.35) {
     \override #'(finger-code . in-dot) {
       \override #'(dot-color . white) {
         \fret-diagram-terse #"x;3-1-(;5-2;5-3;5-4;3-1-);"
@@ -1819,6 +2071,126 @@ Details about the property interface to fret diagrams are found at
 Examples: @inputfileref{input/@/test,fret@/-diagram@/.ly}
 
 
+@node Other guitar issues
+@subsection Other guitar issues
+
+This example demonstrates how to include guitar position and
+barring indications.
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=0]
+\clef "G_8"
+b16 d16 g16 b16 e16
+\textSpannerDown
+\override TextSpanner #'edge-text = #'("XII " . "")
+  g16\startTextSpan
+  b16 e16 g16 e16 b16 g16\stopTextSpan
+e16 b16 g16 d16
+@end lilypond
+
+
+Stopped (X) note heads are used in guitar music to signal a place where the 
+guitarist must play a certain note or chord, with its fingers just 
+touching the strings instead of fully pressing them.  This gives the sound a 
+percussive noise-like sound that still maintains part of the original
+pitch.  It is notated with cross noteheads; this is
+demonstrated in @ref{Special noteheads}.
+
+
+@node Bagpipe
+@section Bagpipe
+
+@cindex Bagpipe
+
+@menu
+* Bagpipe definitions::         
+* Bagpipe example::             
+@end menu
+
+
+@node Bagpipe definitions
+@subsection Bagpipe definitions
+
+LilyPond contains special definitions for music for the Scottish
+highland bagpipe; to use them, add
+
+@example
+\include "bagpipe.ly"
+@end example
+
+@noindent
+at the top of your input file.  This lets you add the special gracenotes
+common to bagpipe music with short commands.  For example, you could
+write @code{\taor} instead of
+
+@example
+\grace @{ \small G32[ d G e] @}
+@end example
+
+@code{bagpipe.ly} also contains pitch definitions for the bagpipe
+notes in the appropiate octaves, so you do not need to worry about
+@code{\relative} or @code{\transpose}.
+
+@lilypond[ragged-right,verbatim,quote,notime]
+\include "bagpipe.ly"
+{ \grg G4 \grg a \grg b \grg c \grg d \grg e \grg f \grA g A }
+@end lilypond
+
+Bagpipe music nominally uses the key of D Major (even though that 
+isn't really true). However, since that is the only key that can be used, 
+the key signature is normally not written out. To set this up correctly, 
+always start your music with @code{\hideKeySignature}. If you for some 
+reason want to show the key signature, you can use @code{\showKeySignature}
+instead.
+
+Some modern music use cross fingering on c and f to flatten those notes.
+This can be indicated by @code{cflat} or @code{fflat}. Similarly, the
+piobaireachd high g can be written @code{gflat} when it occurs in light 
+music.
+
+
+@node Bagpipe example
+@subsection Bagpipe example
+
+This is what the well known tune Amazing Grace looks like in bagpipe
+notation.
+
+@lilypond[verbatim,quote]
+\include "bagpipe.ly"
+\layout {
+  indent = 0.0\cm
+  \context { \Score \remove "Bar_number_engraver" }
+}
+
+\header {
+  title = "Amazing Grace"
+  meter = "Hymn"
+  arranger = "Trad. arr."
+}
+
+{
+  \hideKeySignature
+  \time 3/4
+  \grg \partial 4 a8. d16 
+  \slurd d2 \grg f8[ e32 d16.]
+  \grg f2 \grg f8 e
+  \thrwd d2 \grg b4
+  \grG a2 \grg a8. d16
+  \slurd d2 \grg f8[ e32 d16.]
+  \grg f2 \grg e8. f16
+  \dblA A2 \grg A4
+  \grg A2 f8. A16
+  \grg A2 \hdblf f8[ e32 d16.]
+  \grg f2 \grg f8 e
+  \thrwd d2 \grg b4
+  \grG a2 \grg a8. d16
+  \slurd d2 \grg f8[ e32 d16.]
+  \grg f2 e4
+  \thrwd d2.
+  \slurd d2
+  \bar "|."
+}
+@end lilypond
+
 
 @node Ancient notation
 @section Ancient notation
@@ -1913,10 +2285,12 @@ Here are all suptopics at a glance:
 * Ligatures::                   
 * Gregorian Chant contexts::    
 * Mensural contexts::           
+* Musica ficta accidentals::    
 * Figured bass::                
 @end menu
 
 
+
 @node Ancient note heads
 @subsection Ancient note heads
 
@@ -1926,19 +2300,21 @@ Here are all suptopics at a glance:
 For ancient notation, a note head style other than the @code{default}
 style may be chosen.  This is accomplished by setting the @code{style}
 property of the @internalsref{NoteHead} object to @code{baroque},
-@code{neomensural} or @code{mensural}.  The @code{baroque} style
-differs from the @code{default} style only in using a square shape
-for @code{\breve} note heads.  The @code{neomensural} style differs from
-the @code{baroque} style in that it uses rhomboidal heads for whole notes
-and all smaller durations.  Stems are centered on the note heads.
-This style is particularly useful when transcribing mensural music,
-e.g., for the incipit.  The @code{mensural} style finally produces note
-heads that mimic the look of note heads in historic printings of the
-16th century.
+@code{neomensural}, @code{mensural} or @code{petrucci}.  The
+@code{baroque} style differs from the @code{default} style only in
+using a square shape for @code{\breve} note heads.  The
+@code{neomensural} style differs from the @code{baroque} style in that
+it uses rhomboidal heads for whole notes and all smaller durations.
+Stems are centered on the note heads.  This style is particularly
+useful when transcribing mensural music, e.g., for the incipit.  The
+@code{mensural} style produces note heads that mimic the look of note
+heads in historic printings of the 16th century.  Finally, the
+@code{petrucci} style also mimicks historic printings, but uses bigger
+note heads.
 
 The following example demonstrates the @code{neomensural} style
 
-@lilypond[quote,fragment,raggedright,verbatim]
+@lilypond[quote,fragment,ragged-right,verbatim]
 \set Score.skipBars = ##t
 \override NoteHead #'style = #'neomensural
 a'\longa a'\breve a'1 a'2 a'4 a'8 a'16
@@ -1969,7 +2345,7 @@ Use the @code{style} property of grob @internalsref{Accidental} to
 select ancient accidentals.   Supported styles are
 @code{mensural}, @code{vaticana}, @code{hufnagel}, and @code{medicaea}.
 
-@lilypond[quote,raggedright,staffsize=26]
+@lilypond[quote,ragged-right,staffsize=26]
 \score {
 {
   \fatText
@@ -2002,7 +2378,7 @@ select ancient accidentals.   Supported styles are
       \remove "Key_engraver"
       \remove "Time_signature_engraver"
       \remove "Staff_symbol_engraver"
-      minimumVerticalExtent = ##f
+      \override VerticalAxisGroup #'minimum-Y-extent = ##f
     }
   }
 }
@@ -2019,8 +2395,8 @@ controlled by the @code{style} property of the
 
 @seealso
 
-In this manual: @ref{Pitches}, @ref{Chromatic alterations} and
-@ref{Accidentals} give a general introduction of the use of
+In this manual: @ref{Pitches}, @ref{Cautionary accidentals} and
+@ref{Automatic accidentals} give a general introduction of the use of
 accidentals.  @ref{Key signature} gives a general introduction of
 the use of key signatures.
 
@@ -2031,7 +2407,7 @@ Examples: @inputfileref{input/@/test,ancient@/-accidentals@/.ly}.
 @node Ancient rests
 @subsection Ancient rests
 
-@cindex rests
+@cindex rests, ancient
 
 
 Use the @code{style} property of grob @internalsref{Rest} to select
@@ -2045,7 +2421,7 @@ in historic prints of the 16th century.
 
 The following example demonstrates the @code{neomensural} style
 
-@lilypond[quote,fragment,raggedright,verbatim]
+@lilypond[quote,fragment,ragged-right,verbatim]
 \set Score.skipBars = ##t
 \override Rest #'style = #'neomensural
 r\longa r\breve r1 r2 r4 r8 r16
@@ -2061,7 +2437,8 @@ There are no rests in Gregorian Chant notation; instead, it uses
 
 @seealso
 
-In this manual: @ref{Rests} gives a general introduction into the use of rests.
+In this manual: @ref{Rests} gives a general introduction into the use of 
+rests.
 
 
 @node Ancient clefs
@@ -2108,7 +2485,9 @@ petrucci style mensural C clefs, for use on different staff lines
 @code{petrucci-c5}
 @tab
 @lilypond[fragment,relative=1,notime]
-  \clef "petrucci-c2" c
+  \clef "petrucci-c2"
+  \override NoteHead #'style = #'mensural
+  c
 @end lilypond
 
 @item
@@ -2117,7 +2496,9 @@ petrucci style mensural F clef
 @code{petrucci-f}
 @tab
 @lilypond[fragment,relative=1,notime]
-  \clef "petrucci-f" c
+  \clef "petrucci-f"
+  \override NoteHead #'style = #'mensural
+  c
 @end lilypond
 
 @item
@@ -2126,7 +2507,9 @@ petrucci style mensural G clef
 @code{petrucci-g}
 @tab
 @lilypond[fragment,relative=1,notime]
-  \clef "petrucci-g" c
+  \clef "petrucci-g"
+  \override NoteHead #'style = #'mensural
+  c
 @end lilypond
 
 @item
@@ -2136,7 +2519,9 @@ historic style mensural C clef
 @code{mensural-c3}, @code{mensural-c4}
 @tab
 @lilypond[fragment,relative=1,notime]
-  \clef "mensural-c2" c
+  \clef "mensural-c2"
+  \override NoteHead #'style = #'mensural
+  c
 @end lilypond
 
 @item
@@ -2145,7 +2530,9 @@ historic style mensural F clef
 @code{mensural-f}
 @tab
 @lilypond[fragment,relative=1,notime]
-  \clef "mensural-f" c
+  \clef "mensural-f"
+  \override NoteHead #'style = #'mensural
+  c
 @end lilypond
 
 @item
@@ -2154,7 +2541,9 @@ historic style mensural G clef
 @code{mensural-g}
 @tab
 @lilypond[fragment,relative=1,notime]
-  \clef "mensural-g" c
+  \clef "mensural-g"
+  \override NoteHead #'style = #'mensural
+  c
 @end lilypond
 
 @item
@@ -2165,7 +2554,12 @@ Editio Vaticana style do clef
 @tab
 @lilypond[fragment,relative=1,notime]
   \override Staff.StaffSymbol #'line-count = #4
-  \clef "vaticana-do2" c
+  \override Staff.StaffSymbol #'color = #red
+  \override Staff.LedgerLineSpanner #'color = #red
+  \override Voice.Stem #'transparent = ##t
+  \override NoteHead #'style = #'vaticana.punctum
+  \clef "vaticana-do2"
+  c
 @end lilypond
 
 @item
@@ -2175,7 +2569,12 @@ Editio Vaticana style fa clef
 @tab
 @lilypond[fragment,relative=1,notime]
   \override Staff.StaffSymbol #'line-count = #4
-  \clef "vaticana-fa2" c
+  \override Staff.StaffSymbol #'color = #red
+  \override Staff.LedgerLineSpanner #'color = #red
+  \override Voice.Stem #'transparent = ##t
+  \override NoteHead #'style = #'vaticana.punctum
+  \clef "vaticana-fa2"
+  c
 @end lilypond
 
 @item
@@ -2186,7 +2585,12 @@ Editio Medicaea style do clef
 @tab
 @lilypond[fragment,relative=1,notime]
   \override Staff.StaffSymbol #'line-count = #4
-  \clef "medicaea-do2" c
+  \override Staff.StaffSymbol #'color = #red
+  \override Staff.LedgerLineSpanner #'color = #red
+  \override Voice.Stem #'transparent = ##t
+  \override NoteHead #'style = #'medicaea.punctum
+  \clef "medicaea-do2"
+  c
 @end lilypond
 
 @item
@@ -2196,7 +2600,12 @@ Editio Medicaea style fa clef
 @tab
 @lilypond[fragment,relative=1,notime]
   \override Staff.StaffSymbol #'line-count = #4
-  \clef "medicaea-fa2" c
+  \override Staff.StaffSymbol #'color = #red
+  \override Staff.LedgerLineSpanner #'color = #red
+  \override Voice.Stem #'transparent = ##t
+  \override NoteHead #'style = #'medicaea.punctum
+  \clef "medicaea-fa2"
+  c
 @end lilypond
 
 @item
@@ -2207,7 +2616,12 @@ historic style hufnagel do clef
 @tab
 @lilypond[fragment,relative=1,notime]
   \override Staff.StaffSymbol #'line-count = #4
-  \clef "hufnagel-do2" c
+  \override Staff.StaffSymbol #'color = #red
+  \override Staff.LedgerLineSpanner #'color = #red
+  \override Voice.Stem #'transparent = ##t
+  \override NoteHead #'style = #'hufnagel.punctum
+  \clef "hufnagel-do2"
+  c
 @end lilypond
 
 @item
@@ -2217,7 +2631,12 @@ historic style hufnagel fa clef
 @tab
 @lilypond[fragment,relative=1,notime]
   \override Staff.StaffSymbol #'line-count = #4
-  \clef "hufnagel-fa2" c
+  \override Staff.StaffSymbol #'color = #red
+  \override Staff.LedgerLineSpanner #'color = #red
+  \override Voice.Stem #'transparent = ##t
+  \override NoteHead #'style = #'hufnagel.punctum
+  \clef "hufnagel-fa2"
+  c
 @end lilypond
 
 @item
@@ -2226,7 +2645,12 @@ historic style hufnagel combined do/fa clef
 @code{hufnagel-do-fa}
 @tab
 @lilypond[fragment,relative=1,notime]
-  \clef "hufnagel-do-fa" c
+  \override Staff.StaffSymbol #'color = #red
+  \override Staff.LedgerLineSpanner #'color = #red
+  \override Voice.Stem #'transparent = ##t
+  \override NoteHead #'style = #'hufnagel.punctum
+  \clef "hufnagel-do-fa"
+  c
 @end lilypond
 @end multitable
 
@@ -2266,7 +2690,7 @@ Use the @code{flag-style} property of grob @internalsref{Stem} to
 select ancient flags.  Besides the @code{default} flag style,
 only the @code{mensural} style is supported
 
-@lilypond[quote,fragment,raggedright,verbatim]
+@lilypond[quote,fragment,ragged-right,verbatim]
 \override Stem #'flag-style = #'mensural
 \override Stem #'thickness = #1.0
 \override NoteHead #'style = #'mensural
@@ -2306,46 +2730,48 @@ to get a particular mensural signature glyph with the @code{\time n/m}
 command, @code{n} and @code{m} have to be chosen according to the
 following table
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \layout {
   indent = 0.0
-  \context { \Staff
+  \context {
+    \Staff
     \remove Staff_symbol_engraver
     \remove Clef_engraver
     \remove Time_signature_engraver
   }
-} {
+}
+{
   \set Score.timing = ##f
   \set Score.barAlways = ##t
-  s_\markup { "\\time 4/4" }
-  ^\markup { "       " \musicglyph #"timesig.neomensural44" }
+  s_\markup { "\\time 4/4" }^\markup { "       " \musicglyph 
+#"timesig.neomensural44" }
   s
-  s_\markup { "\\time 2/2" }
-  ^\markup { "       " \musicglyph #"timesig.neomensural22" }
+  s_\markup { "\\time 2/2" }^\markup { "       " \musicglyph 
+#"timesig.neomensural22" }
   s
-  s_\markup { "\\time 6/4" }
-  ^\markup { "       " \musicglyph #"timesig.neomensural64" }
+  s_\markup { "\\time 6/4" }^\markup { "       " \musicglyph 
+#"timesig.neomensural64" }
   s
-  s_\markup { "\\time 6/8" }
-  ^\markup { "       " \musicglyph #"timesig.neomensural68" }
+  s_\markup { "\\time 6/8" }^\markup { "       " \musicglyph 
+#"timesig.neomensural68" }
   \break
-  s_\markup { "\\time 3/2" }
-  ^\markup { "       " \musicglyph #"timesig.neomensural32" }
+  s_\markup { "\\time 3/2" }^\markup { "       " \musicglyph 
+#"timesig.neomensural32" }
   s
-  s_\markup { "\\time 3/4" }
-  ^\markup { "       " \musicglyph #"timesig.neomensural34" }
+  s_\markup { "\\time 3/4" }^\markup { "       " \musicglyph 
+#"timesig.neomensural34" }
   s
-  s_\markup { "\\time 9/4" }
-  ^\markup { "       " \musicglyph #"timesig.neomensural94" }
+  s_\markup { "\\time 9/4" }^\markup { "       " \musicglyph 
+#"timesig.neomensural94" }
   s
-  s_\markup { "\\time 9/8" }
-  ^\markup { "       " \musicglyph #"timesig.neomensural98" }
+  s_\markup { "\\time 9/8" }^\markup { "       " \musicglyph 
+#"timesig.neomensural98" }
   \break
-  s_\markup { "\\time 4/8" }
-  ^\markup { "       " \musicglyph #"timesig.neomensural48" }
+  s_\markup { "\\time 4/8" }^\markup { "       " \musicglyph 
+#"timesig.neomensural48" }
   s
-  s_\markup { "\\time 2/4" }
-  ^\markup { "       " \musicglyph #"timesig.neomensural24" }
+  s_\markup { "\\time 2/4" }^\markup { "       " \musicglyph 
+#"timesig.neomensural24" }
 }
 @end lilypond
 
@@ -2358,9 +2784,10 @@ style mimics the look of historical printings of the 16th century.
 
 The following examples show the differences in style,
 
-@lilypond[raggedright,fragment,relative=1,quote]
+@lilypond[ragged-right,fragment,relative=1,quote]
 {
   \fatText
+
   \time 2/2
   c1^\markup { \hspace #-2.0 \typewriter default }
 
@@ -2414,10 +2841,12 @@ In addition to the standard articulation signs described in section
 provided.  These are specifically designed for use with notation in
 Editio Vaticana style.
 
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 \include "gregorian-init.ly"
 \score {
-  \context VaticanaVoice {
+  \new VaticanaVoice {
+    \override Staff.StaffSymbol #'color = #red
+    \override Staff.LedgerLineSpanner #'color = #red
     \override TextScript #'font-family = #'typewriter
     \override TextScript #'font-shape = #'upright
     \override Script #'padding = #-0.1
@@ -2468,7 +2897,7 @@ as shown in the following example
 
 The result looks like this
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \score {
 {
   a'1
@@ -2486,23 +2915,23 @@ The custos glyph is selected by the @code{style} property.  The styles
 supported are @code{vaticana}, @code{medicaea}, @code{hufnagel}, and
 @code{mensural}.  They are demonstrated in the following fragment
 
-@lilypond[quote,raggedright,fragment]
+@lilypond[quote,ragged-right,fragment]
 \new Lyrics \lyricmode {
   \markup { \column {
     \typewriter "vaticana"
-    \line { " " \musicglyph #"custodes.vaticana-u0" }
+    \line { " " \musicglyph #"custodes.vaticana.u0" }
   } }
   \markup { \column {
     \typewriter "medicaea"
-    \line { " " \musicglyph #"custodes.medicaea-u0" }
+    \line { " " \musicglyph #"custodes.medicaea.u0" }
   }}
   \markup { \column {
     \typewriter "hufnagel"
-    \line { " " \musicglyph #"custodes.hufnagel-u0" }
+    \line { " " \musicglyph #"custodes.hufnagel.u0" }
   }}
   \markup { \column {
     \typewriter "mensural"
-    \line { " " \musicglyph #"custodes.mensural-u0" }
+    \line { " " \musicglyph #"custodes.mensural.u0" }
   }}
 }
 @end lilypond
@@ -2539,7 +2968,7 @@ and @code{\finalis} at proper places in the input.  Some editions use
 Therefore, @file{gregorian@/-init@/.ly} also defines @code{\virgula} and
 @code{\caesura}
 
-@lilypondfile[quote,raggedright]{divisiones.ly}
+@lilypondfile[quote,ragged-right]{divisiones.ly}
 
 @refcommands
 
@@ -2560,7 +2989,7 @@ Therefore, @file{gregorian@/-init@/.ly} also defines @code{\virgula} and
 
 In this manual: @ref{Breath marks}.
 
-Program reference: @internalsref{BreathingSign}, @internalsref{BreathingSignEvent}.
+Program reference: @internalsref{BreathingSign}.
 
 Examples: @inputfileref{input/@/test,divisiones@/.ly}.
 
@@ -2582,7 +3011,7 @@ this particular type of ligature.  By default, the
 @internalsref{LigatureBracket} engraver just puts a square bracket
 above the ligature
 
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 \transpose c c' {
   \[ g c a f d' \]
   a g f
@@ -2609,6 +3038,15 @@ be collected and printed in front of it.
 
 Augmentum dots within ligatures are not handled correctly.
 
+The syntax still uses the deprecated infix style @code{\[ music expr
+\]}.  For consistency reasons, it will eventually be changed to
+postfix style @code{note\[ ... note\]}.  Alternatively, the file
+@file{gregorian@/-init@/.ly} can be included; it provides a scheme
+function
+@example
+\ligature @var{music expr}
+@end example
+with the same effect and is believed to be stable.
 
 @menu
 * White mensural ligatures::    
@@ -2654,11 +3092,15 @@ For example,
 \override NoteHead #'style = #'neomensural
 \override Staff.TimeSignature #'style = #'neomensural
 \clef "petrucci-g"
-\[ g\longa c\breve a\breve f\breve d'\longa \]
+\[ c'\maxima g \]
+s4
+\[ d\longa c\breve f e d \]
+s4
+\[ c'\maxima d'\longa \]
 s4
-\[ e1 f1 a\breve g\longa \]
+\[ e'1 a g\breve \]
 @end example
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \score {
   \transpose c c' {
     \set Score.timing = ##f
@@ -2666,9 +3108,13 @@ s4
     \override NoteHead #'style = #'neomensural
     \override Staff.TimeSignature #'style = #'neomensural
     \clef "petrucci-g"
-    \[ g\longa c\breve a\breve f\breve d'\longa \]
+    \[ c'\maxima g \]
     s4
-    \[ e1 f1 a\breve g\longa \]
+    \[ d\longa c\breve f e d \]
+    s4
+    \[ c'\maxima d'\longa \]
+    s4
+    \[ e'1 a g\breve \]
   }
   \layout {
     \context {
@@ -2684,23 +3130,27 @@ Without replacing @internalsref{Ligature_bracket_engraver} with
 @internalsref{Mensural_ligature_engraver}, the same music transcribes
 to the following
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \transpose c c' {
   \set Score.timing = ##f
   \set Score.defaultBarType = "empty"
   \override NoteHead #'style = #'neomensural
   \override Staff.TimeSignature #'style = #'neomensural
   \clef "petrucci-g"
-  \[ g\longa c\breve a\breve f\breve d'\longa \]
+  \[ c'\maxima g \]
+  s4
+  \[ d\longa c\breve f e d \]
+  s4
+  \[ c'\maxima d'\longa \]
   s4
-  \[ e1 f1 a\breve g\longa \]
+  \[ e'1 a g\breve \]
 }
 @end lilypond
 
 @refbugs
 
-The implementation is experimental.  It may output strange warnings,
-incorrect results, and might even crash on more complex ligatures.
+The invisible rests (@code{s4}) in the example are used to compensate
+for the poor horizontal spacing.
 
 @node Gregorian square neumes ligatures
 @subsubsection Gregorian square neumes ligatures
@@ -2749,7 +3199,7 @@ Deminutae}
 @item
 @code{1. Punctum}
 @tab
-@lilypond[staffsize=26,linewidth=1.5\cm]
+@lilypond[staffsize=26,line-width=1.5\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2764,7 +3214,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=2.5\cm]
+@lilypond[staffsize=26,line-width=2.5\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2783,7 +3233,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2797,7 +3247,7 @@ Deminutae}
 @item
 @code{2. Virga}
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2813,7 +3263,7 @@ Deminutae}
 @item
 @code{3. Apostropha vel Stropha}
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2824,7 +3274,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2839,7 +3289,7 @@ Deminutae}
 @item
 @code{4. Oriscus}
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2855,7 +3305,7 @@ Deminutae}
 @item
 @code{5. Clivis vel Flexa}
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2866,7 +3316,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=2.0\cm]
+@lilypond[staffsize=26,line-width=2.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2881,7 +3331,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2895,7 +3345,7 @@ Deminutae}
 @item
 @code{6. Podatus vel Pes}
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2906,7 +3356,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=2.0\cm]
+@lilypond[staffsize=26,line-width=2.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2921,7 +3371,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2935,7 +3385,7 @@ Deminutae}
 @item
 @code{7. Pes Quassus}
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2946,7 +3396,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2961,7 +3411,7 @@ Deminutae}
 @item
 @code{8. Quilisma Pes}
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2972,7 +3422,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2987,7 +3437,7 @@ Deminutae}
 @item
 @code{9. Podatus Initio Debilis}
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -2998,7 +3448,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3013,7 +3463,7 @@ Deminutae}
 @item
 @code{10. Torculus}
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3024,7 +3474,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3035,7 +3485,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3049,7 +3499,7 @@ Deminutae}
 @item
 @code{11. Torculus Initio Debilis}
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3060,7 +3510,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3071,7 +3521,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3085,7 +3535,7 @@ Deminutae}
 @item
 @code{12. Porrectus}
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3096,7 +3546,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3107,7 +3557,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3121,7 +3571,7 @@ Deminutae}
 @item
 @code{13. Climacus}
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3133,7 +3583,7 @@ Deminutae}
 }
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3144,7 +3594,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3158,7 +3608,7 @@ Deminutae}
 @item
 @code{14. Scandicus}
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3169,7 +3619,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3180,7 +3630,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3194,7 +3644,7 @@ Deminutae}
 @item
 @code{15. Salicus}
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3205,7 +3655,7 @@ Deminutae}
 \layout { \neumeDemoLayout }}
 @end lilypond
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3220,7 +3670,7 @@ Deminutae}
 @item
 @code{16. Trigonus}
 @tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
 \include "gregorian-init.ly"
 \score {
   \transpose c c' {
@@ -3574,6 +4024,20 @@ Trigonus
 @code{\[ \stropha b \stropha b \stropha a \]}
 @end multitable
 
+The ligatures listed above mainly serve as a limited, but still
+representative pool of Gregorian ligature examples.  Virtually, within
+the ligature delimiters @code{\[} and @code{\]}, any number of heads
+may be accumulated to form a single ligature, and head prefixes like
+@code{\pes}, @code{\flexa}, @code{\virga}, @code{\inclinatum},
+etc. may be mixed in as desired.  The use of the set of rules that
+underlies the construction of the ligatures in the above table is
+accordingly extrapolated.  This way, infinitely many different
+ligatures can be created.
+
+@c TODO: create a regression or tips & tricks example document with
+@c even more Gregorian ligatures, and add a link to this document
+@c here.
+
 @refcommands
 
 The following head prefixes are supported
@@ -3595,7 +4059,11 @@ The following head prefixes are supported
 @cindex @code{\quilisma}
 @code{\quilisma},
 @cindex @code{\deminutum}
-@code{\deminutum}.
+@code{\deminutum},
+@cindex @code{\cavum}
+@code{\cavum},
+@cindex @code{\linea}
+@code{\linea}.
 
 Head prefixes can be accumulated, though restrictions apply.  For
 example, either @code{\descendens} or @code{\ascendens} can be applied
@@ -3622,11 +4090,13 @@ initialize all relevant context properties and grob properties to
 proper values, so you can immediately go ahead entering the chant, as
 the following excerpt demonstrates
 
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,packed,verbatim]
 \include "gregorian-init.ly"
 \score {
   <<
-    \context VaticanaVoice = "cantus" {
+    \new VaticanaVoice = "cantus" {
+      \override Staff.StaffSymbol #'color = #red
+      \override Staff.LedgerLineSpanner #'color = #red
       \override Score.BarNumber #'transparent = ##t {
         \[ c'\melisma c' \flexa a \]
         \[ a \flexa \deminutum g\melismaEnd \]
@@ -3637,7 +4107,7 @@ the following excerpt demonstrates
         \[ a \flexa \deminutum g\melismaEnd \] f \divisioMinima
       }
     }
-    \lyricsto "cantus" \new Lyrics {
+    \new Lyrics \lyricsto "cantus" {
       San- ctus, San- ctus, San- ctus
     }
   >>
@@ -3657,10 +4127,10 @@ style.  These contexts initialize all relevant context properties and
 grob properties to proper values, so you can immediately go ahead
 entering the chant, as the following excerpt demonstrates
 
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 \score {
   <<
-    \context MensuralVoice = "discantus" \transpose c c' {
+    \new MensuralVoice = "discantus" \transpose c c' {
       \override Score.BarNumber #'transparent = ##t {
         c'1\melisma bes a g\melismaEnd
         f\breve
@@ -3670,13 +4140,38 @@ entering the chant, as the following excerpt demonstrates
         fis\longa^\signumcongruentiae
       }
     }
-    \lyricsto "discantus" \new Lyrics {
+    \new Lyrics \lyricsto "discantus" {
       San -- ctus, San -- ctus, San -- ctus
     }
   >>
 }
 @end lilypond
 
+@node Musica ficta accidentals
+@subsection Musica ficta accidentals
+
+In European music from before about 1600, singers were often expected
+to chromatically alter notes at their own initiative. This is called
+``Musica Ficta''. In modern transcriptions, these accidentals are
+usually printed over the note.
+
+@cindex Musica ficta
+
+Support for such suggested accidentals is included, and can be
+switched on by setting @code{suggestAccidentals} to true.
+
+@cindex @code{suggestAccidentals}
+
+@lilypond[verbatim,fragment,relative=1]
+fis gis
+\set suggestAccidentals = ##t
+ais bis
+@end lilypond 
+
+@seealso
+
+Program reference: @internalsref{Accidental_engraver} engraver and the
+@internalsref{AccidentalSuggestion} object.
 
 @node Figured bass
 @subsection Figured bass
@@ -3686,15 +4181,15 @@ entering the chant, as the following excerpt demonstrates
 @c TODO: musicological blurb about FB
 
 
-LilyPond has limited support for figured bass
+LilyPond has support for figured bass
 
-@lilypond[quote,raggedright,verbatim,fragment]
+@lilypond[quote,ragged-right,verbatim,fragment]
 <<
-  \context Voice { \clef bass dis4 c d ais g fis}
-  \context FiguredBass \figuremode {
-    < 6 >4 < 7 >8 < 6+ [_!] >
+  \new Voice { \clef bass dis4 c d ais g fis}
+  \new FiguredBass \figuremode {
+    < 6 >4 < 7\+ >8 < 6+ [_!] >
     < 6 >4 <6 5 [3+] >
-    < _ >4 < 6 >4
+    < _ >4 < 6 5/>4
   }
 >>
 @end lilypond
@@ -3709,38 +4204,110 @@ In figures input mode, a group of bass figures is delimited by
 @example
 <4 6>
 @end example
-@lilypond[quote,raggedright,fragment]
-\context FiguredBass
+@lilypond[quote,ragged-right,fragment]
+\new FiguredBass
 \figuremode { <4 6> }
 @end lilypond
 
 Accidentals are added when you append @code{-}, @code{!}, and @code{+}
-to the numbers
+to the numbers.  A plus sign is added when you append @code{\+}, and
+diminished fifths and sevenths can be obtained with @code{5/} and @code{7/}.
+
+@example
+<4- 6+ 7!> <5++> <3--> <7/> r <6\+ 5/>
+@end example
+@lilypond[quote,ragged-right,fragment]
+\figures { <4- 6+ 7!> <5++> <3--> <7/> r <6\+ 5/> }
+@end lilypond
+
+Spaces may be inserted by using @code{_}.  Brackets are
+introduced with @code{[} and @code{]}. You can also include text
+strings and text markups, see @ref{Overview of text markup commands}.
 
 @example
-<4- 6+ 7!>
+< [4 6] 8 [_! 12] > < 5 \markup @{ \number 6 \super (1) @} >
 @end example
-@lilypond[quote,raggedright,fragment]
-\context FiguredBass
-\figuremode { <4- 6+ 7!> }
+@lilypond[quote,ragged-right,fragment]
+\new FiguredBass
+\figuremode { < [4 6] 8 [_! 12] > < 5 \markup{ \tiny \number 6 \super (1)} > }
+@end lilypond
+
+
+It is also possible to use continuation lines for repeated figures,
+
+@lilypond[verbatim,relative=1]
+<<
+  \new Staff {
+    \clef bass
+    c4 c c
+  }
+  \figures {
+    \set useBassFigureExtenders = ##t 
+    <4 6> <3 6> <3 7>
+  }
+>>
+@end lilypond
+
+@noindent
+In this case, the extender lines always replace existing figures.
+The @code{FiguredBass} context doesn't pay attention to the actual
+bass line. As a consequence, you may have to insert extra figures to
+get extender lines below all notes, and you may have to add @code{\!}
+to avoid getting an extender line, e.g.
+
+@lilypond[relative=1]
+<<
+  \new Voice 
+  \figures {
+    \set useBassFigureExtenders = ##t 
+    <6 4->4. <6 4->16. <6 4->32 <5>8. r16 <6>8 <6\! 5->
+  }
+  {
+    \clef bass
+    f16. g32 f16. g32 f16. g32 f16. g32 f8. es16 d8 es
+  }
+>>
 @end lilypond
 
-Spaces or dashes may be inserted by using @code{_}.  Brackets are
-introduced with @code{[} and @code{]}
+When using continuation lines, common figures are always put in the
+same vertical position. When this is unwanted, you can insert a rest
+with @code{r}. The rest will clear any previous alignment.  For
+example, you can write 
+
+@example
+  <4 6>8 r8
+@end example
 
+@noindent
+instead of 
 @example
-< [4 6] 8 [_! 12] >
+  <4 6>4
 @end example
-@lilypond[quote,raggedright,fragment]
-\context FiguredBass
-\figuremode { < [4 6] 8 [_! 12] > }
+
+Accidentals and plus signs can appear before or after the numbers,
+depending on the @code{figuredBassAlterationDirection} and 
+@code{figuredBassPlusDirection}
+properties
+
+@lilypond
+  \figures {
+    <6\+> <5+> <6 4-> r
+    \set figuredBassAlterationDirection = #1
+    <6\+> <5+> <6 4-> r
+    \set figuredBassPlusDirection = #1
+    <6\+> <5+> <6 4-> r
+    \set figuredBassAlterationDirection = #-1
+    <6\+> <5+> <6 4-> r
+  }
 @end lilypond
 
+
 Although the support for figured bass may superficially resemble chord
-support, it works much simpler.  The @code{\figuremode} mode simply
-stores the numbers and @internalsref{FiguredBass} context prints
-them as entered.  There is no conversion to pitches and no
-realizations of the bass are played in the MIDI file.
+support, it is much simpler.  The @code{\figuremode} mode simply
+stores the numbers and @internalsref{FiguredBass} context prints them
+as entered.  There is no conversion to pitches and no realizations of
+the bass are played in the MIDI file.
 
 Internally, the code produces markup texts.  You can use any of the
 markup text properties to override formatting.  For example, the
@@ -3748,11 +4315,32 @@ vertical spacing of the figures may be set with @code{baseline-skip}.
 
 @seealso
 
-Program reference: @internalsref{BassFigureEvent} music,
-@internalsref{BassFigure} object, and @internalsref{FiguredBass} context.
+Program reference: @internalsref{NewBassFigure},
+@internalsref{BassFigureAlignment}, @internalsref{BassFigureLine},
+@internalsref{BassFigureBracket}, and
+@internalsref{BassFigureContinuation} objects and
+@internalsref{FiguredBass} context.
 
-@refbugs
 
-Slash notation for alterations is not supported.
 
+@node Other instrument specific notation
+@section Other instrument specific notation
+
+This section includes extra information for writing for instruments.
+
+@menu
+* Artificial harmonics (strings)::  
+@end menu
+
+@node Artificial harmonics (strings)
+@subsection Artificial harmonics (strings)
+
+@cindex artificial harmonics
+
+Artificial harmonics are notated with a different notehead style.  They
+are entered by marking the harmonic pitch with @code{\harmonic}.
+
+@lilypond[ragged-right,verbatim,quote,fragment,relative=1]
+<c g'\harmonic>4
+@end lilypond