]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/refman.itely
* lily/new-chord-name-engraver.cc (process_music): give original
[lilypond.git] / Documentation / user / refman.itely
index d3f2dda3f09fee112f4ce324262b209b7afcbf5e..fed1fb0911c141c7a5f2f28e41d6b7eb038c862f 100644 (file)
@@ -22,7 +22,7 @@
 @end html
 
 This document describes GNU LilyPond and its input format. The last
-revision of this document was made for LilyPond 1.6.2.  It assumes
+revision of this document was made for LilyPond 1.7.10.  It assumes
 that you already know a little bit about LilyPond input (how to
 make an input file, how to create sheet music from that input file,
 etc).  New users are encouraged to study the tutorial before reading
@@ -41,10 +41,12 @@ this manual.
 * Repeats::                     
 * Rhythmic music::              
 * Piano music::                 
+* Vocal music::                 
 * Tablatures::                  
 * Chords::                      
 * Writing parts::               
-* Ancient notation ::           
+* Ancient notation::           
+* Contemporary notation::      
 * Tuning output::               
 * Global layout::               
 * Sound::                       
@@ -314,7 +316,7 @@ won't affect the appearance of the notes or rests produced.
 
 Durations can also be produced through GUILE extension mechanism. 
 @lilypond[verbatim,fragment]
- c'\duration #(make-duration 2 1)
+ c'\duration #(ly:make-duration 2 1)
 @end lilypond
 
 
@@ -322,7 +324,7 @@ Durations can also be produced through GUILE extension mechanism.
 
 Dot placement for chords is not perfect.  In some cases, dots overlap:
 @lilypond[]
- \context Voice { <f,4. c'' d e f> }
+ <<f, c'' d e f>>4.
 @end lilypond
 
 
@@ -339,7 +341,7 @@ slurs, which indicate articulation, or phrasing slurs, which indicate
 musical phrasing.  A tie is entered using the tilde symbol `@code{~}'.
 
 @lilypond[fragment,verbatim,center]
-  e' ~ e' <c' e' g'> ~ <c' e' g'>
+  e' ~ e' <<c' e' g'>> ~ <<c' e' g'>>
 @end lilypond
 
 When a tie is applied to a chord, all note heads (whose pitches match) are
@@ -351,7 +353,7 @@ If you want less ties created for a chord, you can set
 for every tied chord.
 @lilypond[fragment,verbatim,center]
   \property Voice.sparseTies = ##t
-  <c' e' g'> ~ <c' e' g'>
+  <<c' e' g'>> ~ <<c' e' g'>>
 @end lilypond
 
 In its meaning a tie is just a way of extending a note duration, similar
@@ -437,7 +439,7 @@ should last.  With this, you can make lots of tuplets while typing
 @code{\times} only once, saving you lots of typing.
 
 @lilypond[fragment,  relative, singleline, verbatim]
-\property Voice.tupletSpannerDuration = #(make-moment 1 4)
+\property Voice.tupletSpannerDuration = #(ly:make-moment 1 4)
 \times 2/3 { c'8 c c c c c }
 @end lilypond
 
@@ -546,9 +548,15 @@ version 0.1.6.
 @end quotation
 @end itemize
 
-Another option is to enter the music using your favorite MIDI
-sequencer, and then import it using midi2ly. midi2ly is described in
-@ref{Invoking midi2ly}.
+Another option is to enter the music using your favorite
+sequencer/notation editor, and then export it as MIDI or MusicXML.
+You can then import it in lilypond by using either midi2ly or
+@cindex midi2ly
+xml2ly. midi2ly is described in @ref{Invoking midi2ly}. @code{xml2ly}
+@cindex xml2ly
+is a tool to convert from the MusicXML music representation format
+(@uref{http://www.musicxml.org}) to LilyPond format. @code{xml2ly} is
+described at @uref{http://www.nongnu.org/xml2ly/}.
 
 
 @c .  {Relative}
@@ -599,9 +607,9 @@ preceding note.
 
 @lilypond[fragment,verbatim,center]
   \relative c' {
-    c <c e g
-    <c' e g>
-    <c, e' g>
+    c <<c e g>
+    <<c' e g>>
+    <<c, e' g>>
   }
 @end lilypond 
 @cindex @code{\notes}
@@ -691,9 +699,10 @@ column location.
 @c move this elsewhere?
 
 LilyPond also comes with support files for emacs: lilypond-mode for
-emacs provides indentation, syntax coloring and handy compile
-short-cuts. If lilypond-mode is not installed on your platform, then
-refer to the installation instructions for more information
+emacs provides indentation, autocompletion, syntax coloring, handy
+compile short-cuts and reading Info documents of lilypond inside emacs.
+If lilypond-mode is not installed on your platform,
+then refer to the installation instructions for more information.
 
 @cindex emacs
 @cindex emacs mode
@@ -752,23 +761,27 @@ emacsclient --no-wait +%l %f
 If you use xemacs instead of emacs, you use @code{(gnuserve-start)} in
 your @file{.emacs}, and set @code{XEDITOR} to @code{gnuclient -q +%l %f}
 
-For using Vim, set @code{XEDITOR} to @code{gvim --remote +%l %f}, or use this
-argument with xdvi's @code{-editor} option.
+For using Vim, set @code{XEDITOR} to @code{gvim --remote +%l %f}, or
+use this argument with xdvi's @code{-editor} option.
+
 @cindex NEdit
 For using NEdit, set @code{XEDITOR} to @code{nc -noask +%l %f}, or
 use this argument with xdvi's @code{-editor} option.
 
 If can also make your editor jump to the exact location of the note
-you clicked. This is only supported on Emacs. Users of version 20 must
-apply the patch @file{emacsclient.patch}. Users of version 21 must
-apply @file{server.el.patch} (version 21.2 and earlier).  At the top
-of the @code{ly} file, replace the @code{set!} line with the following
-line,
+you clicked. This is only supported on Emacs and VIM. Users of Emacs version
+20 must apply the patch @file{emacsclient.patch}. Users of version 21
+must apply @file{server.el.patch} (version 21.2 and earlier).  At the
+top of the @code{ly} file, replace the @code{set-point-and-click} line
+with the following line,
 @example
 #(ly:set-point-and-click 'line-column)
 @end example
 @cindex line-colomn-location
-and set @code{XEDITOR} to @code{emacsclient --no-wait +%l:%c %f}.
+and set @code{XEDITOR} to @code{emacsclient --no-wait +%l:%c %f}.  Vim
+users can set @var{XEDITOR} to @code{gvim --remote +:%l:norm%c| %f}.
+
+
 
 @refbugs
 
@@ -805,7 +818,7 @@ such as keys, clefs and time signatures.
 @cindex Staff notation
 
 @menu
-* Staff symbol::
+* Staff symbol::                
 * Key signature::               
 * Clef::                        
 * Time signature::              
@@ -962,6 +975,28 @@ inserted, and how automatic beams should be generated.  Changing the
 value of @code{timeSignatureFraction} also causes a time signature
 symbol to be printed.
 
+More options are available through the Scheme function
+@code{set-time-signature}. In combination with the
+@internalsref{Measure_grouping_engraver}, it will create
+@internalsref{MeasureGrouping} signs. Such signs ease reading
+rhythmically complex modern music.  In the following example, the 9/8
+measure is subdivided in 2, 2, 2 and 3. This is passed to
+@code{set-time-signature} as the third argument @code{(2 2 2 3)}.
+
+@lilypond[verbatim]
+\score { \notes \relative c'' {
+   #(set-time-signature 9 8 '(2 2 2 3))
+   g8 g d d g g a8-[-( bes g-]-) | 
+   #(set-time-signature 5 8 '(3 2))
+   a4. g4
+   }
+   \paper {
+       linewidth = -1.0
+       \translator { \StaffContext
+         \consists "Measure_grouping_engraver"
+   }}}
+@end lilypond 
+
 @c .   {Partial}
 @subsection Partial
 @cindex Partial
@@ -1229,7 +1264,7 @@ same effect as twiddling with @code{stemLeftBeamCount} and
 \property Voice.subdivideBeams = ##t
 [c16 c c c c c c c]
 [c32 c c c c c c c c c c c c c c c]
-\property Score.beatLength = #(make-moment 1 8)
+\property Score.beatLength = #(ly:make-moment 1 8)
 [c32 c c c c c c c c c c c c c c c]
 @end example
 @lilypond[noindent,noquote]
@@ -1239,7 +1274,7 @@ same effect as twiddling with @code{stemLeftBeamCount} and
         \property Voice.subdivideBeams = ##t
         [c16 c c c c c c c]
         [c32 c c c c c c c c c c c c c c c]
-        \property Score.beatLength = #(make-moment 1 8)
+        \property Score.beatLength = #(ly:make-moment 1 8)
         [c32 c c c c c c c c c c c c c c c]
     }
 }
@@ -1326,16 +1361,16 @@ For example, if you want automatic beams to end on every quarter note,
 you can use the following:
 @example
 \property Voice.autoBeamSettings \override
-    #'(end * * * *) = #(make-moment 1 4)
+    #'(end * * * *) = #(ly:make-moment 1 4)
 @end example
 Since the duration of a quarter note is 1/4 of a whole note, it is
-entered as @code{(make-moment 1 4)}.
+entered as @code{(ly:make-moment 1 4)}.
 
 The same syntax can be used to specify beam starting points. In this
 example, automatic beams can only end on a dotted quarter note. 
 @example
 \property Voice.autoBeamSettings \override
-    #'(end * * * *) = #(make-moment 3 8)
+    #'(end * * * *) = #(ly:make-moment 3 8)
 @end example
 In 4/4 time signature, this means that automatic beams could end only on
 3/8 and on the fourth beat of the measure (after 3/4, that is 2 times
@@ -1380,7 +1415,7 @@ durations, i.e., you'll have to specify manual beams to get:
 
 @lilypond[singleline,fragment,relative,noverbatim]
   \property Voice.autoBeamSettings
-  \override #'(end * * * *) = #(make-moment 3 8)
+  \override #'(end * * * *) = #(ly:make-moment 3 8)
   \time 12/8 c'8 c c c16 c c c c c [c c c c] c8 c c4
 @end lilypond
 It is not possible to specify beaming parameters that act differently in
@@ -1531,7 +1566,7 @@ The macros are:
 @item \pianoCautionaries
       @cindex @code{\pianoCautionaries}
       As @code{\pianoAccidentals} but with the extra accidentals
-      typeset as cationaries.
+      typeset as cautionaries.
 
 @item \noResetKey
       @cindex @code{\noResetKey}
@@ -1609,7 +1644,7 @@ input file:
 
 @lilypond[singleline,fragment,verbatim]
 \property Staff.autoAccidentals = #'( Staff (any-octave . 0) )
-cis'4 <c'' c'> r2 | cis'4 <c' c''> r2 | <cis' c''> r | <c'' cis'> r | 
+cis'4 <<c'' c'>> r2 | cis'4 <<c' c''>> r2 | <<cis' c''>> r | <<c'' cis'>> r | 
 @end lilypond
 
 The only solution is to manually insert the problematic
@@ -1625,6 +1660,7 @@ accidentals using @code{!} and @code{?}.
 * Breath marks::                
 * Tempo::                       
 * Text spanners::               
+* Analysis brackets::           
 @end menu
 
 @node Slurs 
@@ -1788,6 +1824,32 @@ An application---or rather, a hack---is to fake octavation indications.
 @end lilypond
 
 
+@node Analysis brackets
+@subsection Analysis brackets
+@cindex brackets
+@cindex phrasing brackets
+@cindex musicological analysis
+@cindex note grouping bracket
+
+Brackets are used in musical analysis to indicate structure in musical
+pieces. LilyPond supports a simple form of nested horizontal brackets.
+To use this, add the @internalsref{Horizontal_bracket_engraver} to
+@internalsref{Staff} context.  A bracket is started with
+@code{\groupOpen} and closed with @code{\groupClose}. This produces
+@internalsref{HorizontalBracket} objects.
+
+@lilypond[singleline,verbatim]
+\score { \notes \relative c'' {  
+       c4-\groupOpen-\groupOpen
+       c4-\groupClose
+       c4-\groupOpen
+        c4-\groupClose-\groupClose
+  }
+  \paper { \translator {
+           \StaffContext \consists "Horizontal_bracket_engraver"
+       }}}
+@end lilypond
+
 @c .  {Ornaments}
 @node Ornaments
 @section Ornaments
@@ -2347,8 +2409,11 @@ command can be
 @item 'end-repeat
  Print a :| bar line
 @item (volta . @var{text})
- Print a volta bracket saying @var{text}.
-@item (volta . #f)
+ Print a volta bracket saying @var{text}. The text can be specified as
+a text string or as a markup text, see @ref{Text markup}. Do not
+forget to change the font, as the default number font does not contain
+alphabetic characters.
+@item (volta . #f) 
  Stop a running volta bracket
 @end table
 
@@ -2660,11 +2725,11 @@ list at the top of your file:
 
 @lilypond[singleline, verbatim]
 #(define mydrums `(
-        (bassdrum     default   #f        ,(make-pitch -1 2 0))
-        (snare        default   #f        ,(make-pitch 0 1 0))
-        (hihat        cross     #f        ,(make-pitch 0 5 0))
-        (pedalhihat   xcircle   "stopped" ,(make-pitch 0 5 0))
-        (lowtom              diamond   #f        ,(make-pitch -1 6 0))
+        (bassdrum     default   #f        ,(ly:make-pitch -1 2 0))
+        (snare        default   #f        ,(ly:make-pitch 0 1 0))
+        (hihat        cross     #f        ,(ly:make-pitch 0 5 0))
+        (pedalhihat   xcircle   "stopped" ,(ly:make-pitch 0 5 0))
+        (lowtom              diamond   #f        ,(ly:make-pitch -1 6 0))
 ))
 \include "drumpitch-init.ly"
 up = \notes { hh8 hh hh hh hhp4 hhp }
@@ -2684,8 +2749,8 @@ list:
 
 @example
 #(define mydrums (append `(
-   (bassdrum default #f ,(make-pitch -1 2 0))
-   (lowtom   diamond #f ,(make-pitch -1 6 0))
+   (bassdrum default #f ,(ly:make-pitch -1 2 0))
+   (lowtom   diamond #f ,(ly:make-pitch -1 6 0))
 ) drums ))
 @end example
 
@@ -2701,7 +2766,7 @@ dutch pitch names anymore. Hence you might wan't to reinclude
 up = \notes { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat }
 down = \notes { bassdrum4 snare8 bd r bd sn4 }
 \include "nederlands.ly"
-bass = \notes \transpose c, { a4. e8 r e g e }
+bass = \notes \transpose c c,, { a4. e8 r e g e }
 \score {
     <
         \apply #(drums->paper 'drums) \context Staff = drums <
@@ -2839,7 +2904,7 @@ Piano pedal instruction can be expressed using
 The symbols that are printed can be modified by setting
 @code{pedal@var{X}Strings}, where @var{X} is one of the pedal types:
 Sustain, Sostenuto or UnaCorda.  Refer to the generated documentation of
-@rgrob{SustainPedal}, for example, for more information.
+@internalsref{SustainPedal}, for example, for more information.
 
 Pedals can also be indicated by a sequence of brackets, by setting the 
 @code{pedal-type} property of SustainPedal objects: 
@@ -2890,11 +2955,11 @@ f'4 g'4 a'4 \sostenutoUp
 @cindex @code{\arpeggio}
 
 You can specify an arpeggio sign on a chord by attaching an
-@code{\arpeggio} to a note of the chord.
+@code{\arpeggio} to a chord.
 
 
 @lilypond[fragment,relative,verbatim]
-  \context Voice <c\arpeggio e g c>
+  <<c e g c>>-\arpeggio
 @end lilypond
 
 When an arpeggio crosses staves in piano music, you attach an arpeggio
@@ -2904,8 +2969,8 @@ to the chords in both staves, and set
 @lilypond[fragment,relative,verbatim]
   \context PianoStaff <
     \property PianoStaff.connectArpeggios = ##t
-    \context Voice = one  { <c'\arpeggio e g c> }
-    \context Voice = other { \clef bass  <c,,\arpeggio e g>}
+    \context Voice = one  { <<c' e g c>>-\arpeggio }
+    \context Voice = other { \clef bass  <<c,, e g>>-\arpeggio}
   >  
 @end lilypond
 
@@ -2919,9 +2984,9 @@ arpeggio, you should set the arpeggio object property
 @lilypond[fragment,relative,verbatim]
   \context Voice {
      \property Voice.Arpeggio \set #'arpeggio-direction = #1
-     <c\arpeggio e g c>
+     <<c e g c>>-\arpeggio
      \property Voice.Arpeggio \set #'arpeggio-direction = #-1
-     <c\arpeggio e g c>
+     <<c e g c>>-\arpeggio
   }
 @end lilypond
 
@@ -2936,8 +3001,8 @@ arpeggiate the chord. To draw these brackets, set the
     \property PianoStaff.connectArpeggios = ##t
     \property PianoStaff.Arpeggio \override
         #'molecule-callback = \arpeggioBracket
-    \context Voice = one  { <c'\arpeggio e g c> }
-    \context Voice = other { \clef bass  <c,,\arpeggio e g>}
+    \context Voice = one  { <<c' e g c>>-\arpeggio }
+    \context Voice = other { \clef bass  <<c,, e g>>-\arpeggio }
   >  
 @end lilypond
 
@@ -2977,6 +3042,116 @@ can be printed automatically. This is enabled if the property
 The associated object is @internalsref{VoiceFollower}.
 
 
+@node Vocal music
+@section Vocal music
+
+For a discussion of how to put lyrics into a score, see section
+@code{Printing lyrics} in the tutorial.
+
+[TODO: Move lyrics section from tutorial to here?]
+
+See also the sections on @ref{Slurs} and @ref{Breath marks}.
+
+[TODO: Move slurs / breath marks section to here?]
+
+[TODO: Write subsection upon usage of ChoirStaff.]
+
+@menu
+* Ambitus::
+@end menu
+
+@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 also may denote the pitch range that a musical
+instrument is capable of playing.  Most musical instruments have their
+ambitus standardized (or at least there is agreement upon the minimal
+ambitus of a particular type of instrument), such that a composer or
+arranger of a piece of music can easily meet the ambitus constraints of
+the targeted instrument.  However, the ambitus of the human voice
+depends on individual physiological state, including education and
+training of the voice.  Therefore, a singer potentially has to check for
+each piece of music if the ambitus of that piece meets his individual
+capabilities.  This is why the ambitus of a piece may be of particular
+value to vocal performers.
+
+The ambitus is typically notated on a per-voice basis at the very
+beginning of a piece, e.g. nearby the initial clef or time signature of
+each staff.  The range is graphically specified by two noteheads, that
+represent the minimum and maximum pitch.  Some publishers use a textual
+notation: they put the range in words in front of the corresponding
+staff.  Lilypond currently only supports the graphical ambitus notation.
+
+To apply, simply add the @internalsref{Ambitus_engraver} to the
+@internalsref{Voice} context, as shown in the below example:
+
+@lilypond[singleline,verbatim]
+upper = \notes \relative c {
+  \clef "treble"
+  \key c \minor
+  as'' c e2 bes f cis d4 e f2 g
+}
+lower = \notes \relative c {
+  \clef "treble"
+  \key e \major
+  e'4 b g a c es fis a cis b a g f e d2
+}
+\score {
+  \context ChoirStaff {
+    <
+      \context Staff = one { \upper }
+      \context Staff = three { \lower }
+    >
+  }
+  \paper {
+    \translator {
+      \VoiceContext
+      \consists Ambitus_engraver
+    }
+  }
+}
+@end lilypond
+
+The shape of the note heads to use can be changed via the
+@code{note-head-style} property, which holds the glyph name of the note
+head (see also @ref{Ancient note heads}).  The vertical line between the
+upper and lower head can be switched on or off via the @code{join-heads}
+property.  Example:
+
+@example
+\translator @{
+  \VoiceContext
+  \consists Ambitus_engraver
+  Ambitus \set #'note-head-style = #'noteheads-2mensural
+  Ambitus \set #'join-heads = ##f
+@}
+@end example
+
+By default, the ambitus grob is put before the clef.  You can control
+this behaviour through the @code{breakAlignOrder} property of the score
+context by redefining the order, e.g. with the following addition to the
+paper block:
+
+@example
+\translator @{
+  \ScoreContext
+  breakAlignOrder = #'(
+    instrument-name
+    left-edge
+    span-bar
+    breathing-sign
+    clef
+    ambitus
+    key-signature
+    staff-bar
+    time-signature
+    custos
+  )
+@}
+@end example
+
 @node Tablatures
 @section Tablatures
 
@@ -3069,7 +3244,6 @@ middle C, in string order: thus the notes are e, a, d & g)
     \notes {
       a,4 c' a e' e c' a e'
     }
-
   > 
 @end lilypond
 
@@ -3124,13 +3298,13 @@ the standard staff.
 
 LilyPond has support for both entering and printing chords. 
 @lilypond[verbatim,singleline]
-twoWays = \notes \transpose c'' {
+twoWays = \notes \transpose c c' {
   \chords {
     c1 f:sus4 bes/f
   }
-  <c e g>
-  <f bes c'>
-  <f bes d'>
+  <<c e g>>
+  <<f bes c'>>
+  <<f bes d'>>
   }
 
 \score {
@@ -3159,107 +3333,118 @@ print them as name.
 @cindex Chords mode
 
 Chord mode is a mode where you can input sets of pitches using common
-names.  It is introduced by the keyword @code{\chords}.  It is similar
-to note mode, but words are also looked up in a chord modifier table
-(containing @code{maj}, @code{dim}, etc). Dashes and carets are used
-to indicate chord additions and subtractions, so articulation scripts
-can not be entered in Chord mode.
+names.  It is introduced by the keyword @code{\chords}.
+In chords mode,  a  chord is entered by the root, which is entered
+like a common pitch, for example,
+@lilypond[fragment,verbatim]
+  es4.  d8 c2
+@end lilypond
+is the notation for an E-flat major chord.
 
-Throughout these examples, chords have been shifted around the staff
-using @code{\transpose}.
+@cindex chord entry
+@cindex chord mode
 
+Other chords may be entered
+by suffixing a colon, and introducing a modifier, and optionally, a
+number, for example
 @lilypond[fragment,verbatim]
-\transpose c'' {
-  \chords {
-    c1  c:3-       c:7     c:8
-    c:9 c:9-.5+.7+ c:3-.5- 
-  }
-}
+\chords { 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, for example.
+@lilypond[fragment,verbatim]
+ \chords { c:3 c:5 c:6 c:7 c:8 c:9 c:10 c:11 }
+@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. For example
+@c
+@lilypond[verbatim,fragment]
+  \chords { 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, for example:
+@lilypond[verbatim,fragment]
+  \chords { 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[verbatim,fragment]
+  \chords { c^3 c:7^5 c:9^3.5 }
+@end lilypond
+
+Modifiers can be used to change pitches. The following modifiers are
+supported
+@table @code
+@item m
+  Minor chord. Lowers the 3rd and (if present) the 7th step.
+@item dim
+  Diminished chord. Lowers the 3rd, 5th and (if present) the 7th step
+@item aug
+  Augmented chord. Raises the 5th step.
+@item maj
+  Major 7th chord. Raises the 7th step, if present.  
+@item sus
+  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
+Modifiers can be mixed with additions. 
+@lilypond[verbatim,fragment]
+  \chords { 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 second type of modifier that may appear after the @code{:} is a
-named modifier.  Named modifiers are listed in the file
-@file{chord-modifiers.ly}.  The available modifiers are @code{m} and
-@code{min} which lower the 3rd half a step, `@code{aug}' which
-raises the 5th, `@code{dim}' which lowers the 5th,
-`@code{maj}' which adds a raised 7th, and `@code{sus}'
-which replaces the 5th with a 4th.
-
+Since the unaltered 11 does sound well when combined with the
+unaltered 3, the 11 is removed in this case, unless it is added
+explicitly). For example,
 @lilypond[fragment,verbatim]
-\transpose c'' {
-  \chords {
-    c1:m c:min7 c:maj c:aug c:dim c:sus
-  }
-}
-@end lilypond
-
-Chord subtractions are used to eliminate notes from a chord.  The
-notes to be subtracted are listed after a @code{^} character,
-separated by dots.
-
-@lilypond[fragment,verbatim,center]
-  \transpose c'' {
-    \chords {
-      c1^3 c:7^5.3 c:8^7
-    }
-  }
+  \chords { c:13 c:13.11 c:m13 }
 @end lilypond 
-@cindex @code{/}
 
-Chord inversions can be specified by appending `@code{/}' and the name
-of a single note to a chord.  In a chord inversion, the inverted note is
-transposed down until it is the lowest note in the chord.  If the note
-is not in the chord, a warning will be printed.
+@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[fragment,verbatim,center]
-  \transpose c''' {
-    \chords {
-      c1 c/e c/g c:7/e
-    }
-  }
-
+   \chords { c1 c/g c/f }
 @end lilypond 
 @cindex @code{/+}
-
-Bass notes can be added by `@code{/+}' and
-the name of a single note to a chord.  This has the effect of
-adding the specified note to the chord, lowered by an octave,
-so it becomes the lowest note in the chord.
+If you do not want to remove the bass note from the chord, but rather
+add the note, then you can use @code{/+}@var{pitch}.
 
 @lilypond[fragment,verbatim,center]
-  \transpose c''' {
-    \chords {
-      c1 c/+c c/+g c:7/+b
-    }
-  }
-
+   \chords { c1 c/+g c/+f }
 @end lilypond 
 
-The formal syntax for named chords is as follows:
-@example
-  @var{tonic}[@var{duration}][@code{-}@var{modifiers}][@code{^}@var{subtractions}][@code{/}@var{inversion}][@code{/+}@var{bass}].
-@end example
 
-@var{tonic} should be the tonic note of the chord, and @var{duration} is
-the chord duration in the usual notation.  There are two kinds of
-modifiers.  One type is formed by @emph{chord additions}. Additions are
-obtained by listing intervals separated by dots.  An interval is written
-by its number with an optional @code{+} or @code{-} to indicate raising
-or lowering by half a step.  Chord additions have two effects: they adds
-the specified interval and all lower odd numbered intervals to the
-chord, and they may lower or raise the specified interval.
+@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[verbatim,fragment]
+  \chords { c:5.5-.5+ }
+@end lilypond
+
+In chord mode, dashes and carets are used to indicate chord additions
+and subtractions, so articulation scripts can not be entered.
 
 
-@refbugs
 
-Implementation details are gory. For example @code{c:4} not only adds
-a fourth, but also removes the third.
 
 
 @c .  {Printing named chords}
@@ -3276,12 +3461,12 @@ directly using simultaneous music.
 
 @lilypond[verbatim,singleline]
 scheme = \notes {
-  \chords {a1 b c} <d f g>  <e g b>
+  \chords {a1 b c} <<d f g>>  <<e g b>>
 }
 \score {
   \notes<
     \context ChordNames \scheme
-    \context Staff \transpose c'' \scheme
+    \context Staff \transpose c c' \scheme
   >
 }
 @end lilypond
@@ -3300,7 +3485,7 @@ scheme = \chords {
     \context ChordNames {
         \property ChordNames.chordChanges = ##t
         \scheme }
-    \context Staff \transpose c'' \scheme
+    \context Staff \transpose c c' \scheme
   >
 \paper{linewidth= 9.\cm}
 }
@@ -3313,9 +3498,9 @@ are entered as a list of pitches:
 
 @lilypond[verbatim,center,singleline]
 scheme = \notes {
-  <c'1 e' g'>
-  <e' g' c''>
-  <e e' g' c''>
+  <<c' e' g'>>1
+  <<e' g' c''>>
+  <<e e' g' c''>>
 }
 
 \score {
@@ -3326,41 +3511,10 @@ scheme = \notes {
 }
 @end lilypond
 
+The default chord name layout is a system for Jazz music, proposed by
+Klaus Ignatzek (See @ref{Literature}).
 
-By default, a chord name system proposed by Harald Banter (See
-@ref{Literature}) is used. The system is very regular and predictable.
-Typical American style chord names may be selected by setting the
-@code{style} property of the @code{ChordNames.ChordName} object to
-@code{'american}. Similarly @code{'jazz} selects Jazz chordnames.
-
-Routines that determine the names to be printed are written in Scheme,
-and may be customized by the user.  The code can be found in
-@file{scm/chord-name.scm}.  Here's an example showing the differences in
-chord name styles:
-
-@c too long?
-@c maybe just junk verbatim option?
-@lilypond[verbatim,singleline,noquote]
-scheme = \chords {
-  c1 c:5^3 c:4^3 c:5+
-  c:m7+ c:m5-.7
-  c:5-.7 c:5+.7
-  c:9^7
-}
-
-\score {
-  \notes <
-    \context ChordNames = banter \scheme
-    \context ChordNames = american {
-      \property ChordNames.ChordName \override
-        #'style = #'american \scheme }
-    \context ChordNames = jazz {
-      \property ChordNames.ChordName \override
-        #'style = #'jazz \scheme }
-    \context Staff \transpose c'' \scheme
-  >
-}
-@end lilypond
+[TODO: add description for banter other jazz.]
 
 
 @node Writing parts
@@ -3422,7 +3576,7 @@ at the beginning of the next line, opposite to what you want for the
 fermata. This can be corrected by the following property setting
 @example
 \property Score.RehearsalMark \override
-  #'visibility-lambda = #begin-of-line-invisible
+  #'break-visibility = #begin-of-line-invisible
 @end example
 
 @cindex fermatas
@@ -3461,7 +3615,7 @@ adds a box around the bar numbers:
 @end example
 @lilypond[noindent,noquote]
 \score {
-    \context Staff \notes \transpose c''' {
+    \context Staff \notes \transpose c c'' {
        \property Score.BarNumber \override #'break-visibility = #end-of-line-invisible
        \property Score.barNumberVisibility = #(every-nth-bar-number-visible 5)
        \property Score.BarNumber \override #'molecule-callback =
@@ -3473,6 +3627,41 @@ adds a box around the bar numbers:
 }
 @end lilypond
 
+If you would like the bar numbers to appear at regular intervals, but
+not starting from measure zero, you can use the context function,
+@code{set-bar-number-visibility}, to automatically set
+@code{barNumberVisibility} so that the bar numbers appear at regular
+intervals, starting from the @code{\applycontext}:
+
+@example
+resetBarnum = \context Score \applycontext
+  #(set-bar-number-visibility 4)
+...
+\property Score.BarNumber \override #'break-visibility =
+  #end-of-line-invisible
+\mark "A" \resetBarnum
+\repeat unfold 10 c1
+\mark \default \resetBarnum
+\repeat unfold 8 c
+@end example
+@lilypond[noindent,noquote]
+resetBarnum = \context Score \applycontext
+  #(set-bar-number-visibility 4)
+\score {
+    <
+        \notes \transpose c c'' {
+           \property Score.BarNumber \override #'break-visibility =#end-of-line-invisible
+           \property Score.RehearsalMark \override #'padding = #2.5
+           \mark "A" \resetBarnum
+           \repeat unfold 10 c1
+           \mark \default \resetBarnum
+           \repeat unfold 8 c
+            \bar "|."
+        }
+    >
+}
+@end lilypond
+
 See also @seeinternals{BarNumber}.
 
 @refbugs
@@ -3500,13 +3689,13 @@ names:
 
 
 @lilypond[verbatim,singleline]
-#(define text-flat
-  '((font-relative-size . -2 ) (music "accidentals--1")))
-
-\score { \notes {
-  \property Staff.instrument = #`((kern . 0.5) (lines
-    "2 Clarinetti" (columns "     (B" ,text-flat ")")))
-    c'' 4 }
+\score {
+  \notes \context Staff = treble {
+    \property Staff.instrument
+       = \markup { \column << "Clarinetti" { "in B" \smaller \musicglyph #"accidentals--1" } >> }
+    { c''1 }
+  }
+  \paper { linewidth= 8.0\cm }
 }
 @end lilypond
 
@@ -3526,24 +3715,24 @@ the name to avoid a collision.
 A music expression can be transposed with @code{\transpose}.  The syntax
 is
 @example
-  \transpose @var{pitch} @var{musicexpr}
+  \transpose @var{from} @var{to} @var{musicexpr}
 @end example
 
-This means that middle C in @var{musicexpr} is transposed to
-@var{pitch}.
+This means that @var{musicexpr} is transposed to by the interval
+between @var{from} is @var{to}.
 
 @code{\transpose} distinguishes between enharmonic pitches: both
-@code{\transpose cis'} or @code{\transpose des'} will transpose up half
-a tone.  The first version will print sharps and the second version
-will print flats.
+@code{\transpose c cis} or @code{\transpose c des} will transpose up
+half a tone.  The first version will print sharps and the second
+version will print flats.
 
 @lilypond[singleline, verbatim]
 mus =\notes { \key d \major cis d fis g }
 \score { \notes \context Staff {
   \clef "F" \mus
   \clef "G"
-  \transpose g'' \mus
-  \transpose f'' \mus
+  \transpose c g' \mus
+  \transpose c f' \mus
 }}
 @end lilypond
 
@@ -3560,11 +3749,10 @@ effect music that appears inside a @code{\transpose}.
 
 Multi measure rests are entered using `@code{R}'. It is specifically
 meant for full bar rests and for entering parts: the rest can expand to
-fill a score with 
-rests, or it can be printed as a single multimeasure rest This expansion
-is controlled by the property @code{Score.skipBars}. If this is set to true,
-Lily will not expand empty measures, and the appropriate number is added
-automatically.
+fill a score with rests, or it can be printed as a single multimeasure
+rest This expansion is controlled by the property
+@code{Score.skipBars}. If this is set to true, Lily will not expand
+empty measures, and the appropriate number is added automatically.
 
 @lilypond[fragment,verbatim]
  \time 4/4 r1 | R1 | R1*2
@@ -3592,14 +3780,29 @@ rest centered in the measure, regardless of the time signature.
 
 @cindex whole rests for a full measure 
 
-The object for this object is @internalsref{MultiMeasureRest}.
+The object for this object is @internalsref{MultiMeasureRest}, and
+@internalsref{MultiMeasureRestNumber}.
 
 @refbugs
 
 Currently, there is no way to automatically condense multiple rests
 into a single multimeasure rest. Multi measure rests do not take part
-in rest collisions. There is no way to put texts centered on
-multi-measure rests.
+in rest collisions.
+
+Multi-measure rests do not accept @var{note}-@code{text} syntax for
+putting texts and scripts on the rest.  This has to be done by setting
+@code{#'text} in @internalsref{MultiMeasureRestNumber}. An identifier is
+provided for a fermata:
+
+@cindex text on multi-measure rest
+@cindex script on multi-measure rest
+@cindex fermata on multi-measure rest
+
+@lilypond[verbatim,fragment]
+  \time 3/4
+  \setMmRestFermata R2.
+@end lilypond
+
 
 @cindex condensing rests
 
@@ -3754,7 +3957,7 @@ output.
 
 @menu
 * Ancient note heads::          
-* Ancient clefs::               
+* Ancient clefs ::              
 * Custodes::                    
 * Ligatures::                   
 * Figured bass::                
@@ -4075,7 +4278,7 @@ a ligature by small square angles:
 
 @lilypond[singleline,verbatim]
 \score {
-    \notes \transpose c'' {
+    \notes \transpose c c' {
        \[ g c a f d' \]
        a g f
        \[ e f a g \]
@@ -4118,7 +4321,7 @@ Example:
 
 @lilypond[singleline,verbatim]
 \score {
-    \notes \transpose c'' {
+    \notes \transpose c c' {
        \property Score.timing = ##f
        \property Score.defaultBarType = "empty"
        \property Voice.NoteHead \set #'style = #'neo_mensural
@@ -4144,7 +4347,7 @@ following:
 
 @lilypond[singleline,verbatim]
 \score {
-    \notes \transpose c'' {
+    \notes \transpose c c' {
        \property Score.timing = ##f
        \property Score.defaultBarType = "empty"
        \property Voice.NoteHead \set #'style = #'neo_mensural
@@ -4219,6 +4422,105 @@ conversion to pitches, and no realizations of the bass are played in
 the MIDI file.
 
 
+@c . {Contemporary notation}
+@node Contemporary notation
+@section Contemporary notation
+
+@menu
+* Clusters::
+@end menu
+
+@node Clusters
+@subsection Clusters
+
+@cindex cluster
+
+In musical terminology, a @emph{cluster} denotes a range of
+simultaneously sounding pitches that may change over time.  The set of
+available pitches to apply usually depends on the accoustic source.
+Thus, in piano music, a cluster typically consists of a continous range
+of the semitones as provided by the piano's fixed set of a chromatic
+scale.  In choral music, each singer of the choir typically may sing an
+arbitrary pitch within the cluster's range that is not bound to any
+diatonic, chromatic or other scale.  In electronic music, a cluster
+(theoretically) may even cover a continuous range of pitches, thus
+resulting in coloured noise, such as pink noise.
+
+Clusters can be notated in the context of ordinary staff notation by
+engraving simple geometrical shapes that replace ordinary notation of
+notes.  Ordinary notes as musical events specify starting time and
+duration of pitches; however, the duration of a note is expressed by the
+shape of the note head rather than by the horizontal graphical extent of
+the note symbol.  In contrast, the shape of a cluster geometrically
+describes the development of a range of pitches (vertical extent) over
+time (horizontal extent).  Still, the geometrical shape of a cluster
+covers the area in wich any single pitch contained in the cluster would
+be notated as an ordinary note.  From this point of view, it is
+reasonable to specify a cluster as the envelope of a set of notes.  This
+is exactly how to construct a cluster with lilypond.
+
+@lilypond[singleline,verbatim]
+\score {
+    \context PianoStaff <
+        \context Voice = voiceI { % same as voiceII, but with ordinary notes
+            \notes \relative c' {
+                c4 f4
+                a4 <e4 d'4> | \break
+                < g8 a8 > < e8 a8 > a4 c1 < d4 b4 > e4 |
+                c4 a4 f4 g4 a4
+            }
+        }
+        \context Voice = voiceII { % same as voiceI, but with cluster notation
+            \notes \relative c' {
+
+                % hide notes, accidentals, etc.
+                \property Thread.NoteHead \set #'transparent = ##t
+                \property Voice.Stem \set #'transparent = ##t
+                \property Voice.Beam \set #'transparent = ##t
+                \property Staff.Accidental \set #'transparent = ##t
+
+                \property Voice.Cluster \set #'padding = #0.01
+                \property Voice.Cluster \set #'shape = #'ramp
+
+                c4 f4
+                \startCluster
+                a4 <e4 d'4> | \break
+                < g8 a8 > < e8 a8 > a4 c1 < d4 b4 > e4 |
+                c4 \stopCluster a4 f4 g4 a4
+            }
+        }
+    >
+}
+@end lilypond
+
+Note that the second voice differs from the first one only by the
+additional keywords @code{\startCluster} and @code{\stopCluster} and the
+fact that notes, accidentals, etc. are hidden.  A future version of
+lilypond may automatically hide notes, accidentals, etc. within the
+scope of clusters.
+
+Also note that a music expression like @code{< @{ g8 e8 @} a4 >} is
+illegal; in such a case, you can instead use the expression @code{< g8
+a8 > < e8 a8 >}.
+
+By default, cluster engraver is in the voice context.  This allows
+putting ordinary notes and clusters together in the same staff, even
+simultaneously.  However, in such a case no attempt is made to
+automatically avoid collisions between ordinary notes and clusters.
+
+The geometrical shape can be further controlled with grob properties
+@code{padding} and @code{shape}.  @code{padding} adds to the vertical
+extent of the shape (top and bottom) and is expressed in units of
+staffspace.  Since the pitch range of a single pitch is infinitely
+small, if padding is set to @code{0.0}, this possibly results in an
+invisible shape, if you,for example, say @code{ \startCluster c d e
+\endCluster}.  The default value for @code{padding} therefore is
+@code{0.25}, such that a single pitch roughly shows the same height as a
+note head.  Property @code{shape} controls how the overall shape of the
+cluster is constructed from the set of notes.  Currently supported
+values are @code{leftsided-stairs}, @code{rightsided-stairs},
+@code{centered-stairs}, and @code{ramp}.
+
 @c . {Tuning output}
 @node Tuning output
 @section Tuning output
@@ -4240,8 +4542,8 @@ affecting a whole set of objects.  Second, you can select one specific
 object, and set a object property in that object.
 
 @menu
-* Tuning groups of objects ::     
-* Tuning per object ::            
+* Tuning groups of objects ::   
+* Tuning per object ::          
 * Font selection::              
 * Text markup::                 
 @end menu
@@ -4415,7 +4717,7 @@ property.
   \context Staff \outputproperty
   #(make-type-checker 'note-head-interface)
   #'extra-offset = #'(0.5 . 0.75)
-  <c8 e g> }
+  <<c e g>>8 }
 @end lilypond
 
 @cindex @code{extra-offset}
@@ -4424,7 +4726,7 @@ In this example, the predicate checks the @code{text} object property, to
 shift only the `m.d.' text,  but not the fingering instruction "2".
 @lilypond[verbatim,singleline]
 #(define (make-text-checker text)
-   (lambda (grob) (equal? text (ly-get-grob-property grob 'text))))
+   (lambda (grob) (equal? text (ly:get-grob-property grob 'text))))
 
 \score {    
   \notes\relative c''' {
@@ -4542,7 +4844,7 @@ letters by a factor 2 in both directions.
 Relative size is not linked to any real size.
 
 There is no style sheet provided for other fonts besides the @TeX{}
-family, and the style sheet can not be modified easiyl.
+family, and the style sheet can not be modified easily.
 
 @cindex font selection
 @cindex font magnification
@@ -4554,87 +4856,170 @@ family, and the style sheet can not be modified easiyl.
 @cindex text markup
 @cindex markup text
 
-LilyPond has an internal mechanism to typeset texts. You can
-form text markup expressions by composing scheme expressions
-in the following way.
-
-@lilypond[verbatim, singleline]
- \relative c' {
-    \fatText
-    a^#"upright"
-    b_#'(bold "bold")
-    c^#'(italic "italic")
-    d_#'((bold italic) "ff")
-    e^#'(dynamic "ff")
-    f_#'(lines "one" (bold "two"))
-    g^#'(music "noteheads-2" ((raise . 2.4) "flags-u3"))
-  }
+
+@cindex typeset text
+
+LilyPond has an internal mechanism to typeset texts. You can access it
+with the keyword @code{\markup}. Within markup mode, you can enter texts
+similar to lyrics: simply enter them, surrounded by spaces. 
+@cindex markup
+
+@lilypond[verbatim,fragment,relative=1]
+ c1^\markup { hello }
+ c1_\markup { hi there }
+ c1^\markup { hi \bold there, is \italic anyone home? }
 @end lilypond
 
-Normally, the Scheme markup text is stored in the @code{text} property
-of a object.  Formally, it is defined as follows:
+@cindex font switching
 
+The line of the example demonstrates font switching commands. Notice
+that the command only apply to the first following word; enclose a set
+of texts with braces to apply a command to more words.
+@example
+  \markup @{ \bold @{ hi there @} @}
+@end example
+For clarity, you can also do this for single arguments, e.g.
 @example
-text: string | (head? text+)
-head: markup | (markup+)
-markup-item: property | abbrev
-property: (@var{key} . @var{value})
-abbrev: @code{columns lines roman music bold italic named super sub}
-        @code{overstrike text finger volta timesig mmrest mark script}
-        @code{large Large dynamic}
+  \markup @{ is \italic @{ anyone @} home @}
 @end example
 
-The markup is broken down and converted into a list of object properties,
-which are prepended to the property list.  The @var{key}-@var{value}
-pair is a object property. A list of properties available is included in
-the generated documentation for @internalsref{text-interface}.
+@cindex font size, texts
+
+
+The following size commands set abolute sizes
+
+@cindex \teeny
+@cindex \tiny
+@cindex \small
+@cindex \large
+@cindex \huge
 
-The following abbreviations are defined:
 @table @code
-@item columns
- horizontal mode: set all text on one line (default)
-@item lines
- vertical mode: set every text on a new line
-@item roman
- select roman font
-@item music
- selects the Feta font (the standard font for music notation glyphs),
-and uses named lookup
-
-@item bold
- select bold series
-@item italic
- select italic shape
-@item named
- lookup by character name
-@item text
- plain text lookup (by character value)
-@item super
- superscript
-@item sub
- subscript
-@item overstrike
- the next text or character overstrikes this one
-@item finger
- select fingering number fontstyle
-@item volta
- select volta number fontstyle
-@item timesig
- select time signature number fontstyle
-@item mmrest
- select multi measure rest number fontstyle
-@item mark
- select mark number fontstyle
-@item script
- select scriptsize roman fontstyle
-@item large
- select large roman fontstyle
-@item Large
- select Large roman fontstyle
-@item dynamic
- select dynamics fontstyle
+@item \teeny
+@item \tiny
+@item \small
+@item \large
+@item \huge
+@end table
+
+You can also make letter larger or smaller relative to their neighbors,
+with the commands @code{\larger} and @code{\smaller}.
+@cindex smaller
+@cindex larger
+
+@cindex font style, for texts
+@cindex \bold
+@cindex \dynamic
+@cindex \number
+@cindex \italic
+
+The following font change commands are defined:
+@table @code
+@item \dynamic
+This changes to the font used for dynamic signs. Note that this font
+doesn't contain all characters of the alphabet.
+@item \number
+This changes to the font used for time signatures. It only contains
+numbers and a few punctuation marks.
+@item \italic
+@item \bold
+@end table
+
+@cindex raising text
+@cindex lowering text
+@cindex moving text
+@cindex translating text
+
+@cindex \sub
+@cindex \super
+
+Raising and lowering texts can be done with @code{\super} and
+@code{\sub}.
+
+@lilypond[verbatim,fragment,relative=1]
+ c1^\markup { E "=" mc \super "2" }
+@end lilypond
+
+@cindex \raise
+
+If you want to give an explicit amount for lowering or raising, use
+@code{\raise}.  This command takes a Scheme valued argument,
+@lilypond[verbatim,fragment,relative=1]
+ c1^\markup { C \small \raise #1.0 { "9/7+" }}
+@end lilypond
+The argument to @code{\raise} is the vertical displacement amount,
+measured in (global) staff spaces.
+
+Other commands taking  single arguments include
+@table @code
+
+@item \musicglyph
+@cindex \musicglyph
+  This is converted to a musical symbol, e.g. @code{\musicglyph
+#"accidentals-0"} will select the natural sign from the music font.
+See @ref{The Feta font} for  a complete listing of the possible glyphs.
+@item \char
+This produces a single character, e.g. @code{\char #65} produces the 
+letter 'A'.
+
+@item \hspace #@var{amount}
+@cindex \hspace
+This produces a invisible object taking horizontal space.
+@example 
+\markup @{ A \hspace #2.0 B @} 
+@end example
+will put extra space between A and B. Note that lilypond 
+inserts space before and after @code{\hspace}. 
+
+@item \fontsize #@var{size}
+@cindex \fontsize
+This sets the relative font size, eg.
+@example
+A \fontsize #2 @{ B C @} D
+@end example
+
+This will enlarge the B and the C by two steps.
+@item  \translate #(cons @var{x} @var{y})
+@cindex  \translate
+This translates an object. It's first argument is a cons of numbers
+@example
+A \translate #(cons 2 -3) @{ B C @} D
+@end example
+This moves `B C' 2 spaces to the right, and 3 down.
+
+@item \magnify  #@var{mag}
+@cindex \magnify
+This sets the font magnification for the its argument. In the following
+example, the middle A will be 10% larger.
+@example
+A \magnify #1.1 @{ A @} A
+@end example
+
+
+@item \override #(@var{key} . @var{value})
+@cindex \override
+This overrides a  formatting property for its argument. The argument
+should be a key/value pair, e.g.
+@example
+m \override #'(font-family . math) m m
+@end example
 @end table
 
+In markup mode you can compose expressions, similar to mathematical
+expressions, XML documents and music expressions.  The braces group
+notes into horizontal lines. Other types of lists also exist: you can
+stack expressions grouped with @code{<<}, and @code{>>} vertically with
+the command @code{\column}.
+
+@lilypond[verbatim,fragment,relative=1]
+ c1^\markup { \column << a b c >> }
+ c1^\markup { \line << a b c >> }
+@end lilypond
+
+The markup mechanism is very flexible and extensible.  Refer to
+@file{scm/new-markup.scm} for more information on extending the markup
+mode.
+
 
 @cindex metronome mark
 
@@ -4642,36 +5027,29 @@ One practical application of complicated markup is to fake a metronome
 marking:
 
 @lilypond[verbatim]
-#(define note '(columns
-  (music "noteheads-2" ((kern . -0.1) "flags-stem"))))
-#(define eight-note `(columns ,note ((kern . -0.1)
-  (music ((raise . 3.5) "flags-u3")))))
-#(define dotted-eight-note
-  `(columns ,eight-note (music "dots-dot")))
+eighthStem = \markup \combine
+       \musicglyph #"flags-stem"
+       \translate #'(0.0 . 3.5) \musicglyph #"flags-u3"
+eighthNote = \markup
+       \override #'(word-space . 0.0)
+       { \musicglyph #"noteheads-2"
+         \translate #'(-0.05 . 0.1) \eighthStem }
 
 \score {
   \notes\relative c'' {
-    a1^#`((columns (font-relative-size . -1))
-           ,dotted-eight-note " = 64")
-  }
-  \paper {
-    linewidth = -1.
-    \translator{
-      \ScoreContext
-      TextScript \override #'font-shape = #'upright
-    }
+    a1^\markup { \magnify #0.9 \eighthNote " = 64" }
   }
 }
 @end lilypond
 
 @refbugs
 
-The syntax and semantics of markup texts are not clean, and both
-syntax and semantics are slated for a rewrite.
+@cindex kerning
 
-LilyPond does not do kerning, and there generally spaces texts
-slightly too wide.
+LilyPond does not account for kerning in its text formatting, so it
+spaces texts slightly too wide.
 
+Syntax errors for markup mode are confusing.
 
 
 @node Global layout
@@ -4846,9 +5224,9 @@ kneed stems.
 
 @lilypond
 \score {
-     \context PianoStaff \notes \transpose c''' <
+     \context PianoStaff \notes \transpose c c'' <
      \context Staff = up { s1 }
-     \context Staff = down { [c8 c \translator Staff=up <c d> c 
+     \context Staff = down { [c8 c \translator Staff=up <<c d>> c 
 \translator Staff=down c c c] }
      >
      \paper { linewidth = -1 }
@@ -4925,10 +5303,10 @@ This makes the following 28 measures (assuming 4/4 time) be broken every
 @cindex @code{indent}
 @cindex @code{linewidth}
 
-The most basic settings influencing the spacing are @code{linewidth}
-and @code{indent}, both set in the @code{\paper} block.  They control
-the indentation of the first line of music, and the lengths of the
-lines.  If @code{linewidth} set to a negative value, a single
+The most basic settings influencing the spacing are @code{indent} and
+@code{linewidth}. They are set in the @code{\paper} block. They
+control the indentation of the first line of music, and the lengths of
+the lines.  If @code{linewidth} set to a negative value, a single
 unjustified line is produced.  A similar effect for scores that are
 longer than one line, can be produced by setting @code{raggedright} to
 true in the @code{\paper} block.