]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/advanced-notation.itely
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / Documentation / user / advanced-notation.itely
index cf12df8db7e5d9a07b9f906ee528ceb741041ca2..8d3186dc1b177502b4bb82c42c7b77a74d3d7683 100644 (file)
@@ -1,7 +1,7 @@
-@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 
+@c A menu is needed before every deeper *section nesting of @node's; run
 @c     M-x texinfo-all-menus-update
 @c to automatically fill in these menus before saving changes
 
@@ -17,7 +17,6 @@ This chapter deals with rarely-used and advanced notation.
 * Orchestral music::            
 * Contemporary notation::       
 * Educational use::             
-* Automatic notation::          
 @end menu
 
 
@@ -28,17 +27,20 @@ This chapter deals with rarely-used and advanced notation.
 This section explains how to include text (with various formatting) in
 your scores.
 
+@cindex Text, other languages
+To write non-ascii text (such as characters from other languages), simply
+insert the characters directly into the lilypond file.  The file must be
+saved as UTF-8.  For more information, see @ref{Text encoding}.
+
 @menu
 * Text scripts::                
 * Text spanners::               
 * Text marks::                  
 * Text markup::                 
-* Text encoding::               
 * Nested scores::               
 * Overview of text markup commands::  
 * Font selection::              
 * New dynamic marks::           
-* Other text markup issues::    
 @end menu
 
 
@@ -54,13 +56,16 @@ above or below notes by using a string @code{c^"text"}.  By default,
 these indications do not influence the note spacing, but by using the
 command @code{\fatText}, the widths will be taken into account
 
-@lilypond[quote,fragment,raggedright,verbatim,relative=1]
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 c4^"longtext" \fatText c4_"longlongtext" c4
 @end lilypond
 
+@noindent
+To prevent text from influencing spacing, use @code{\emptyText}.
+
 More complex formatting may also be added to a note by using the
 markup command,
-@lilypond[fragment,raggedright,verbatim,quote]
+@lilypond[fragment,ragged-right,verbatim,quote]
 c'4^\markup { bla \bold bla }
 @end lilypond
 
@@ -70,12 +75,23 @@ The @code{\markup} is described in more detail in
 
 @refcommands
 
-@cindex @code{\fatText}
+@findex \fatText
 @code{\fatText},
-@cindex @code{\emptyText}
+@findex \emptyText
 @code{\emptyText}.
 
 
+@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
+
+@example
+\override Score.PaperColumn #'keep-inside-line = ##t
+@end example
+
+
 @seealso
 
 In this manual: @ref{Text markup}.
@@ -97,23 +113,36 @@ notes of the spanner.
 The string to be printed, as well as the style, is set through object
 properties
 
-@lilypond[quote,raggedright,fragment,relative=1,verbatim]
+@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
 c1
 \textSpannerDown
 \override TextSpanner #'edge-text = #'("rall " . "")
 c2\startTextSpan b c\stopTextSpan a
+\break
+\textSpannerUp
+\override TextSpanner #'edge-text = #(cons (markup #:italic "rit" ) "")
+c2\startTextSpan b c\stopTextSpan a
 @end lilypond
 
 @refcommands
 
 @cindex textSpannerUp
 @code{textSpannerUp},
-@cindex textSpannerDown 
+@cindex textSpannerDown
 @code{textSpannerDown},
 @cindex textSpannerNeutral
 @code{textSpannerNeutral}.
 
 
+@commonprop
+
+To print a solid line, use
+
+@example
+\override TextSpanner #'dash-fraction = #'()
+@end example
+
+
 @seealso
 
 Program reference: @internalsref{TextSpanner}.
@@ -128,7 +157,7 @@ Examples: @inputfileref{input/@/regression,text@/-spanner@/.ly}.
 @cindex segno on bar line
 @cindex fermata on bar line
 @cindex bar lines, symbols on
-@cindex @code{\mark}
+@findex \mark
 
 The @code{\mark} command is primarily used for
 @ref{Rehearsal marks},
@@ -136,7 +165,7 @@ but it can also be used to put signs like coda,
 segno, and fermata on a bar line.  Use @code{\markup} to
 access the appropriate symbol
 
-@lilypond[fragment,quote,raggedright,verbatim,relative=2]
+@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
 c1 \mark \markup { \musicglyph #"scripts.ufermata" }
 c1
 @end lilypond
@@ -167,7 +196,7 @@ To print the mark at the end of the current line, use
 @code{\mark} is often useful for adding text to the end of bar.  In
 such cases, changing the @code{#'self-alignment} is very useful
 
-@lilypond[fragment,quote,raggedright,verbatim,relative=2]
+@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
 \override Score.RehearsalMark
   #'break-visibility = #begin-of-line-invisible
 c1 c c c4 c c c
@@ -175,6 +204,52 @@ c1 c c c4 c c c
 \mark "D.S. al Fine "
 @end lilypond
 
+Text marks may be aligned with notation objects other than
+bar lines,
+
+@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+\relative {
+  c1
+  \key cis \major
+  \clef alto
+  \override Score.RehearsalMark #'break-align-symbol = #'key-signature
+  \mark "on key"
+  cis
+  \key ces \major
+  \override Score.RehearsalMark #'break-align-symbol = #'clef
+  \clef treble
+  \mark "on clef"
+  ces
+  \override Score.RehearsalMark #'break-align-symbol = #'time-signature
+  \key d \minor
+  \clef tenor
+  \time 3/4
+  \mark "on time"
+  c
+}
+@end lilypond
+
+Although text marks are normally only printed above the topmost
+staff, you may alter this to print them on every staff,
+
+@lilypond[quote,ragged-right,verbatim,relative=2]
+{
+  \new Score \with {
+    \remove "Mark_engraver"
+  }
+  <<
+    \new Staff \with {
+      \consists "Mark_engraver"
+    }
+    { c''1 \mark "foo" c'' }
+    \new Staff \with {
+      \consists "Mark_engraver"
+    }
+    { c'1 \mark "foo" c' }
+  >>
+}
+@end lilypond
+
 
 @seealso
 
@@ -190,12 +265,14 @@ Program reference: @internalsref{RehearsalMark}.
 @cindex typeset text
 
 Use @code{\markup} to typeset text.  Commands are entered with the
-backslash @code{\}.
+backslash @code{\}.  To enter @code{\} and @code{#}, use double
+quotation marks.
 
 @lilypond[quote,verbatim,fragment,relative=1]
 c1^\markup { hello }
 c1_\markup { hi there }
-c1^\markup { hi \bold there, is \italic anyone home? }
+c1^\markup { hi \bold there, is \italic {anyone home?} }
+c1_\markup { "\special {weird} #characters" }
 @end lilypond
 
 @noindent
@@ -215,19 +292,28 @@ but it can also be used anywhere text is called in lilypond
 
     \set Staff.instrument = \markup{ \column{ Alto solo } }
     c2^\markup{ don't be \flat }
-    b2
+    \override TextSpanner #'edge-text = #(cons (markup #:italic "rit" ) "")
+    b2\startTextSpan
     a2\mark \markup{ \large \bold Fine }
-    r2
+    r2\stopTextSpan
     \bar "||"
   }
   \addlyrics { bar, foo \markup{ \italic bar! } }
 }
 @end lilypond
 
+Text can also be placed on its own, away from any @code{\score}
+block.  This is primarily used in a @code{\book} (see
+@ref{Multiple movements}).
+
+@lilypond[quote,ragged-right,verbatim]
+\markup{ Here is some text. }
+@end lilypond
+
 @cindex font switching
 
 The markup in the example demonstrates font switching commands.  The
-command @code{\bold} and @code{\italic} apply to the first following 
+command @code{\bold} and @code{\italic} apply to the first following
 word only; to apply a command to more than one word, enclose the
 words with braces,
 
@@ -256,7 +342,7 @@ c1^\markup { \line { a b c } }
 Lists with no previous command are not kept distinct.  The expression
 
 @example
-\center-align @{ @{ a b @} @{ c d @} @} 
+\center-align @{ @{ a b @} @{ c d @} @}
 @end example
 
 @noindent
@@ -293,6 +379,25 @@ whole.  For example, the @internalsref{RehearsalMark} is horizontally
 centered, so using @code{\mark \markup @{ \left-align .. @}} has no
 effect.
 
+In addition, vertical placement is performed after creating the
+text markup object.  If you wish to move an entire piece of markup,
+you need to use the #'padding property or create an "anchor" point
+inside the markup (generally with @code{\hspace #0}).
+
+@lilypond[quote,verbatim,fragment,relative=1]
+\fatText
+c'4^\markup{ \raise #5 "not raised" }
+\once \override TextScript #'padding = #3
+c'4^\markup{ raised }
+c'4^\markup{ \hspace #0 \raise #1.5 raised }
+@end lilypond
+
+Some situations (such as dynamic marks) have preset font-related
+properties.  If you are creating text in such situations, it
+is advisable to cancel those properties with
+@code{normal-text}.  See @ref{Overview of text markup commands}
+for more details.
+
 
 @seealso
 
@@ -312,53 +417,6 @@ texts will be spaced slightly too wide.
 Syntax errors for markup mode are confusing.
 
 
-@node Text encoding
-@subsection Text encoding
-
-LilyPond uses the Pango library to format multi-lingual texts, and
-does not perform any input-encoding conversions.  This means that any
-text, be it title, lyric text, or musical instruction containing
-non-ASCII characters, must be utf-8.  Easiest to enter such texts is
-by using a Unicode-aware editor, and save using utf-8 encoding.  Most
-popular modern editors have utf-8 support, for example, vim, Emacs,
-jEdit, and GEdit do.
-
-Depending on the fonts installed, the following fragment shows Hebrew
-and Cyrillic lyrics,
-
-@cindex Cyrillic
-@cindex Hebrew
-@cindex ASCII, non
-
-@lilypondfile[fontload]{utf-8.ly}
-
-The @TeX{} backend does not handle encoding specially at all.  Strings
-in the input are put in the output as-is.  Extents of text items in the
-@TeX{} backend, are determined by reading a file created via the
-@file{texstr} backend,
-
-@example
-lilypond -b texstr input/les-nereides.ly
-latex les-nereides.texstr
-@end example
-
-The last command produces @file{les-nereides.textmetrics}, which is
-read when you execute
-
-@example
-lilypond -b tex input/les-nereides.ly
-@end example
-
-Both @file{les-nereides.texstr} and @file{les-nereides.tex} need
-suitable LaTeX wrappers to load appropriate La@TeX{} packages for
-interpreting non-ASCII strings.
-
-
-@seealso
-
-@inputfileref{input/regression,utf-8.ly}
-
-
 @node Nested scores
 @subsection Nested scores
 
@@ -366,7 +424,7 @@ It is possible to nest music inside markups, by adding a @code{\score}
 block to a markup expression.  Such a score must contain a @code{\layout}
 block.
 
-@lilypond[quote,verbatim,raggedright]
+@lilypond[quote,verbatim,ragged-right]
 \relative {
   c4 d^\markup {
     \score {
@@ -392,7 +450,7 @@ The following commands can all be used inside @code{\markup @{ @}}.
 
 @cindex font selection
 @cindex font magnification
-@cindex @code{font-interface}
+@findex font-interface
 
 By setting the object properties described below, you can select a
 font from the preconfigured font families.  LilyPond has default
@@ -405,7 +463,7 @@ to.
 @itemize @bullet
 @item @code{font-encoding}
 is a symbol that sets layout of the glyphs.  This should only be set to
-select different types of non-text fonts, eg.
+select different types of non-text fonts, e.g.
 
 @code{fetaBraces} for piano staff braces, @code{fetaMusic} the
 standard music font, including ancient glyphs, @code{fetaDynamic} for
@@ -414,7 +472,7 @@ dynamic signs and @code{fetaNumber} for the number font.
 @item @code{font-family}
 is a symbol indicating the general class of the typeface.  Supported are
 @code{roman} (Computer Modern), @code{sans}, and @code{typewriter}.
-  
+
 @item @code{font-shape}
 is a symbol indicating the shape of the font.  There are typically
 several font shapes available for each font family.  Choices are
@@ -423,18 +481,18 @@ several font shapes available for each font family.  Choices are
 @item @code{font-series}
 is a symbol indicating the series of the font.  There are typically
 several font series for each font family and shape.  Choices are
-@code{medium} and @code{bold}. 
+@code{medium} and @code{bold}.
 
 @end itemize
 
 Fonts selected in the way sketched above come from a predefined style
-sheet. If you want to use a font from outside the style sheet, 
-then set the 
-@code{font-name} property, 
+sheet. If you want to use a font from outside the style sheet,
+then set the
+@code{font-name} property,
 
 @lilypond[fragment,verbatim]
 {
-  \override Staff.TimeSignature #'font-name = #"Times"
+  \override Staff.TimeSignature #'font-name = #"Charter"
   \override Staff.TimeSignature #'font-size = #2
   \time 3/4
   c'1_\markup {
@@ -454,22 +512,60 @@ property. The resulting size is taken relative to the
 @cindex font size
 @cindex font magnification
 
+
+It is also possible to change the default font family for the entire
+document. This is done by calling the @code{make-pango-font-tree} from
+within the @code{\paper} block. The function takes names for the font
+families to use for roman, sans serif and monospaced text. For
+example,
+
+@cindex font families, setting
+@cindex Pango
+
+
+@lilypond[verbatim]
+\paper  {
+  myStaffSize = #20
+
+  #(define fonts
+    (make-pango-font-tree "Times New Roman"
+                          "Nimbus Sans"
+                          "Luxi Mono"
+                           (/ myStaffSize 20)))
+}
+
+{
+  c'^\markup { roman: foo \sans bla \typewriter bar }
+}
+@end lilypond
+
+@c we don't do Helvetica / Courier, since GS incorrectly loads
+@c Apple TTF fonts
+
+
+
 @seealso
 
-@c FIXME.
-Init files: @file{ly/@/declarations@/-init@/.ly} contains hints how new
-fonts may be added to LilyPond.
+Examples: @inputfileref{input/@/regression,font@/-family@/-override.ly}.
 
 
 @node New dynamic marks
 @subsection New dynamic marks
 
 It is possible to print new dynamic marks or text that should be aligned
-with dynamics.  Use @code{make-dynamic-script} to create these marks.
+with dynamics.  Use @code{make-dynamic-script} to create these
+marks.  Note that the dynamic font only contains the characters
+@code{f,m,p,r,s} and @code{z}.
+
+Some situations (such as dynamic marks) have preset font-related
+properties.  If you are creating text in such situations, it
+is advisable to cancel those properties with
+@code{normal-text}.  See @ref{Overview of text markup commands}
+for more details.
 
 @cindex make-dynamic-script
 
-@lilypond[quote,verbatim,raggedright]
+@lilypond[quote,verbatim,ragged-right]
 sfzp = #(make-dynamic-script "sfzp")
 \relative c' {
   c4 c c\sfzp c
@@ -482,7 +578,7 @@ sfzp = #(make-dynamic-script "sfzp")
 It is also possible to print dynamics in round parenthesis or square
 brackets.  These are often used for adding editorial dynamics.
 
-@lilypond[quote,verbatim,raggedright]
+@lilypond[quote,verbatim,ragged-right]
 rndf = \markup{ \center-align {\line { \bold{\italic (}
   \dynamic f \bold{\italic )} }} }
 boxf = \markup{ \bracket { \dynamic f } }
@@ -490,22 +586,6 @@ boxf = \markup{ \bracket { \dynamic f } }
 @end lilypond
 
 
-@node Other text markup issues
-@subsection Other text markup issues
-
-To use a normal font within a title, you must define it manually
-
-@example
-#(def-markup-command (normal-font layout props arg) (markup?)
-  "Switch to normal text font"
-  (interpret-markup layout (cons '((font-series . 'medium) (font-shape . 'upright)) props) arg))
-
-\header@{
-  title = \markup@{ ABCD \normal-font ABCD @}
-@}
-@end example
-
-
 
 @node Preparing parts
 @section Preparing parts
@@ -529,19 +609,21 @@ individual parts.
 @subsection Multi measure rests
 
 @cindex multi measure rests
+@cindex full measure rests
 @cindex Rests, multi measure
+@cindex Rests, full measure
 @cindex whole rests for a full measure
-@cindex @code{R}
+@findex R
 
-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
+Rests for one full measure (or many bars) 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
 multi-measure rest.  This expansion is controlled by the property
 @code{Score.skipBars}.  If this is set to true, empty measures will not
 be expanded, and the appropriate number is added automatically
 
-@lilypond[quote,raggedright,fragment,verbatim]
-\time 4/4 r1 | R1 | R1*2
+@lilypond[quote,ragged-right,fragment,verbatim]
+\time 4/4 r1 | R1 | R1*2 \time 3/4 R2. \time 2/4 R2 \time 4/4
 \set Score.skipBars = ##t R1*17 R1*4
 @end lilypond
 
@@ -549,7 +631,7 @@ The @code{1} in @code{R1} is similar to the duration notation used for
 notes.  Hence, for time signatures other than 4/4, you must enter other
 durations.  This can be done with augmentation dots or fractions
 
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
 \set Score.skipBars = ##t
 \time 3/4
 R2. | R2.*2
@@ -566,7 +648,7 @@ If there are only a few measures of rest, LilyPond prints ``church rests''
 (a series of rectangles) in the staff.  To replace that with a simple
 rest, use @code{MultiMeasureRest.expand-limit}.
 
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
 \set Score.skipBars = ##t
 R1*2 | R1*5 | R1*9
 \override MultiMeasureRest #'expand-limit = 1
@@ -582,13 +664,23 @@ Texts can be added to multi-measure rests by using the
 A variable (@code{\fermataMarkup}) is provided for
 adding fermatas
 
-@lilypond[quote,raggedright,verbatim,fragment]
+@lilypond[quote,ragged-right,verbatim,fragment]
 \set Score.skipBars = ##t
 \time 3/4
 R2.*10^\markup { \italic "ad lib." }
 R2.^\fermataMarkup
 @end lilypond
 
+Warning!  This text is created by @code{MultiMeasureRestText}, not
+@code{TextScript}.
+
+@lilypond[quote,ragged-right,verbatim,fragment]
+\override TextScript #'padding = #5
+R1^"low"
+\override MultiMeasureRestText #'padding = #5
+R1^"high"
+@end lilypond
+
 If you want to have text on the left end of a multi-measure rest,
 attach the text to a zero-length skip note, i.e.,
 
@@ -643,8 +735,8 @@ Metronome settings can be entered as follows
 
 In the MIDI output, they are interpreted as a tempo change.  In the
 layout output, a metronome marking is printed
-@cindex @code{\tempo}
-@lilypond[quote,raggedright,verbatim,fragment]
+@findex \tempo
+@lilypond[quote,ragged-right,verbatim,fragment]
 \tempo 8.=120 c''1
 @end lilypond
 
@@ -658,13 +750,13 @@ the metronome marking invisible
 @end example
 
 To print other metronome markings, use these markup commands
-@lilypond[quote,raggedright,verbatim,relative,fragment]
+@lilypond[quote,ragged-right,verbatim,relative,fragment]
 c4^\markup {
-  "("
+  (
   \smaller \general-align #Y #DOWN \note #"16." #1
-  "="
-  \smaller \general-align #Y #DOWN \note #"8" #1"
-  ")" }
+  =
+  \smaller \general-align #Y #DOWN \note #"8" #1
+  ) }
 @end lilypond
 
 @noindent
@@ -681,7 +773,7 @@ Program reference: @internalsref{MetronomeMark}.
 Collisions are not checked.  If you have notes above the top line of
 the staff (or notes with articulations, slurs, text, etc), then the
 metronome marking may be printed on top of musical symbols.  If this
-occurs, increase the padding of the metronome mark to place it 
+occurs, increase the padding of the metronome mark to place it
 further away from the staff.
 
 @example
@@ -693,11 +785,11 @@ further away from the staff.
 @subsection Rehearsal marks
 
 @cindex Rehearsal marks
-@cindex @code{\mark}
+@findex \mark
 
 To print a rehearsal mark, use the @code{\mark} command
 
-@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
 c1 \mark \default
 c1 \mark \default
 c1 \mark #8
@@ -706,7 +798,12 @@ c1 \mark \default
 @end lilypond
 
 @noindent
-(The letter@tie{}`I' is skipped in accordance with engraving traditions.)
+The letter@tie{}`I' is skipped in accordance with engraving traditions.
+If you wish to include the letter `I', then use
+
+@example
+\set Score.markFormatter = #format-mark-alphabet
+@end example
 
 The mark is incremented automatically if you use @code{\mark
 \default}, but you can also use an integer argument to set the mark
@@ -719,7 +816,7 @@ as argument.  It should return a markup object.  In the following
 example, @code{markFormatter} is set to a canned procedure.  After a
 few measures, it is set to function that produces a boxed number.
 
-@lilypond[fragment,quote,raggedright,verbatim,relative=2]
+@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
 \set Score.markFormatter = #format-mark-numbers
 c1 \mark \default
 c1 \mark \default
@@ -730,10 +827,39 @@ c1
 @end lilypond
 
 The file @file{scm/@/translation@/-functions@/.scm} contains the definitions
-of @code{format-mark-numbers} (the default format), @code{format-mark-box-numbers},
+of @code{format-mark-numbers} (the default format),
+@code{format-mark-box-numbers},
 @code{format-mark-letters} and @code{format-mark-box-letters}.
 These can be used as inspiration for other formatting functions.
 
+You may use @code{format-mark-barnumbers}, @code{format-mark-box-barnumbers},
+and @code{format-mark-circle-barnumbers} to get bar numbers instead of
+incremented numbers or letters.
+
+The horizontal location of rehearsal marks can be adjusted by
+setting @code{break-align-symbol}
+
+@lilypond[fragment,quote,ragged-right,verbatim,relative]
+c1
+\key cis \major
+\clef alto
+\override Score.RehearsalMark #'break-align-symbol = #'key-signature
+\mark "on-key"
+cis
+\key ces \major
+\override Score.RehearsalMark #'break-align-symbol = #'clef
+\clef treble
+\mark "on clef"
+ces
+@end lilypond
+
+@code{break-align-symbol} may also accept the following values:
+@code{ambitus}, @code{breathing-sign}, @code{clef}, @code{custos},
+@code{staff-bar}, @code{left-edge}, @code{key-cancellation},
+@code{key-signature}, and @code{time-signature}.  Setting
+@code{break-align-symbol} will only have an effect if the symbol
+appears at that point in the music.
+
 
 @seealso
 
@@ -754,43 +880,49 @@ Examples: @inputfileref{input/@/regression,rehearsal@/-mark@/-letter@/.ly},
 
 @cindex Bar numbers
 @cindex measure numbers
-@cindex @code{currentBarNumber}
+@findex currentBarNumber
 
 Bar numbers are printed by default at the start of the line.  The
 number itself is stored in the @code{currentBarNumber} property, which
 is normally updated automatically for every measure.
 
+@lilypond[verbatim,ragged-right,quote,fragment,relative]
+\repeat unfold 4 {c4 c c c} \break
+\set Score.currentBarNumber = #50
+\repeat unfold 4 {c4 c c c}
+@end lilypond
+
+Bar numbers may only be printed at bar lines; to print a bar
+number at the beginning of a piece, an empty bar line must
+be added
+
+@lilypond[verbatim,ragged-right,quote,fragment,relative]
+\set Score.currentBarNumber = #50
+\bar ""
+\repeat unfold 4 {c4 c c c} \break
+\repeat unfold 4 {c4 c c c}
+@end lilypond
+
 Bar numbers can be typeset at regular intervals instead of at the
 beginning of each line.  This is illustrated in the following example,
 whose source is available as
 @inputfileref{input/@/test,bar@/-number@/-regular@/-interval@/.ly}
 
-@lilypondfile[raggedright,quote]{bar-number-regular-interval.ly}
+@lilypondfile[ragged-right,quote]{bar-number-regular-interval.ly}
 
-Bar numbers can be typeset manually by tweaking the
-@code{markFormatter} property
+Bar numbers can be removed entirely by removing the Bar number
+engraver from the score.
 
-@lilypond[verbatim,raggedright,quote]
-\relative c' {
-  \set Score.markFormatter
-    = #(lambda (mark context)
-      (make-bold-markup
-        (make-box-markup
-          (number->string (ly:context-property context
-                                               'currentBarNumber)))))
-
-  c1 \bar "||" \mark \default c1 c1 \mark \default c1 \bar "|."
+@lilypond[verbatim,ragged-right,quote]
+\layout {
+  \context {
+    \Score
+    \remove "Bar_number_engraver"
+  }
 }
-@end lilypond
-
-Bar numbers can be manually changed by setting the
-@code{Staff.currentBarNumber} property
-
-@lilypond[verbatim,raggedright,quote]
-\relative c' {
-  \repeat unfold 4 {c4 c c c} \break
-  \set Score.currentBarNumber = #50
-  \repeat unfold 4 {c4 c c c}
+\relative c''{
+c4 c c c \break
+c4 c c c
 }
 @end lilypond
 
@@ -823,7 +955,7 @@ and @internalsref{Staff}.@code{instr}.  This will print a string before
 the start of the staff.  For the first staff, @code{instrument} is
 used, for the following ones, @code{instr} is used.
 
-@lilypond[quote,verbatim,raggedright,relative=1,fragment]
+@lilypond[quote,verbatim,ragged-right,relative=1,fragment]
 \set Staff.instrument = "Ploink "
 \set Staff.instr = "Plk "
 c1
@@ -834,16 +966,53 @@ c''
 You can also use markup texts to construct more complicated instrument
 names, for example
 
-@lilypond[quote,fragment,verbatim,raggedright]
+@lilypond[quote,fragment,verbatim,ragged-right]
 \set Staff.instrument = \markup {
   \column { "Clarinetti"
             \line { "in B" \smaller \flat } } }
 c''1
 @end lilypond
 
+If you wish to center the instrument names, you must center all of them
+
+@lilypond[quote,verbatim,ragged-right]
+{ <<
+\new Staff {
+  \set Staff.instrument = \markup {
+    \center-align { "Clarinetti"
+      \line { "in B" \smaller \flat } } }
+  c''1
+}
+\new Staff {
+  \set Staff.instrument = \markup{ \center-align { Vibraphone }}
+  c''1
+}
+>>
+}
+@end lilypond
+
 For longer instrument names, it may be useful to increase the
 @code{indent} setting in the @code{\layout} block.
 
+To center instrument names while leaving extra space to the right,
+
+@lilypond[quote,verbatim,ragged-right]
+\new StaffGroup \relative
+<<
+  \new Staff {
+    \set Staff.instrument
+    = \markup { \hcenter-in #10 "blabla" }
+    c1 c1
+  }
+  \new Staff {
+    \set Staff.instrument
+    = \markup { \hcenter-in #10 "blo" }
+    c1 c1
+  }
+>>
+@end lilypond
+
+
 @seealso
 
 Program reference: @internalsref{InstrumentName}.
@@ -851,8 +1020,12 @@ Program reference: @internalsref{InstrumentName}.
 @refbugs
 
 When you put a name on a grand staff or piano staff, the width of the
-brace is not taken into account.  You must add extra spaces to the end of
-the name to avoid a collision.
+brace is not taken into account. The following property setting can be
+used to move the instrument names to the left, in such situations.
+
+@example
+\override Score.InstrumentName #'padding = #2.0
+@end example
 
 
 @node Instrument transpositions
@@ -878,7 +1051,8 @@ affect how notes are printed in the current staff.  To change the printed
 output, see @ref{Transpose}.
 
 The pitch to use for @code{\transposition} should correspond to the
-transposition of the notes.  For example, when entering a score in
+real sound heard when a @code{c'} written on the staff is played by the
+transposing instrument.  For example, when entering a score in
 concert pitch, typically all voices are entered in C, so
 they should be entered as
 
@@ -920,7 +1094,7 @@ the staff.  They are created by invoking the function
 @cindex 15ma
 @cindex octavation
 
-@lilypond[quote,raggedright,verbatim,fragment]
+@lilypond[quote,ragged-right,verbatim,fragment]
 \relative c''' {
   a2 b
   #(set-octavation 1)
@@ -936,7 +1110,7 @@ The @code{set-octavation} function also takes -1 (for 8va bassa) and 2
 @code{centralCPosition}.  For overriding the text of the bracket, set
 @code{ottavation} after invoking @code{set-octavation}, i.e.,
 
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 {
   #(set-octavation 1)
   \set Staff.ottavation = #"8"
@@ -962,7 +1136,7 @@ during an octavation bracket.
 @node Different editions from one source
 @subsection Different editions from one source
 
-@cindex @code{\tag}
+@findex \tag
 @cindex tag
 
 The @code{\tag} command marks music expressions with a name.  These
@@ -1011,12 +1185,15 @@ commands, tagged expressions can be filtered.  For example,
 @end example
 would yield
 
-@lilypondfile[raggedright,quote]{tag-filter.ly}
+@lilypondfile[ragged-right,quote]{tag-filter.ly}
+
+The arguments of the @code{\tag} command should be a symbol
+(such as @code{#'score} or @code{#'part}), followed by a
+music expression.  It is possible to put multiple tags on
+a piece of music with multiple @code{\tag} entries,
 
-The argument of the @code{\tag} command should be a symbol, or a list
-of symbols, for example,
 @example
-\tag #'(original-part transposed-part) @dots{}
+  \tag #'original-part \tag #'transposed-part @dots{}
 @end example
 
 
@@ -1029,7 +1206,7 @@ Examples: @inputfileref{input/@/regression,tag@/-filter@/.ly}.
 
 Multiple rests are not merged if you create the score with both tagged
 sections.
+
 
 
 @node Orchestral music
@@ -1071,7 +1248,7 @@ The following example demonstrates the basic functionality of the part
 combiner: putting parts on one staff, and setting stem directions and
 polyphony
 
-@lilypond[quote,verbatim,raggedright,fragment]
+@lilypond[quote,verbatim,ragged-right,fragment]
 \new Staff \partcombine
   \relative g' { g g a( b) c c r r }
   \relative g' { g g r4 r e e g g }
@@ -1087,7 +1264,7 @@ first part (with context called @code{one}) always gets up stems, and
 If you just want the merging parts, and not the textual markings, you
 may set the property @code{printPartCombineTexts} to false
 
-@lilypond[quote,verbatim,raggedright,fragment,relative=2]
+@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
 \new Staff <<
   \set Staff.printPartCombineTexts = ##f
   \partcombine
@@ -1100,7 +1277,7 @@ To change the text that is printed for solos or merging, you may
 set the @code{soloText}, @code{soloIIText}, and @code{aDueText}
 properties.
 
-@lilypond[quote,verbatim,raggedright,fragment,relative=2]
+@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
 \new Staff <<
   \set Score.soloText = #"ichi"
   \set Score.soloIIText = #"ni"
@@ -1165,7 +1342,7 @@ multi-measure rests) are removed.  The context definition is stored in
 @code{\RemoveEmptyStaffContext} variable.  Observe how the second staff
 in this example disappears in the second line
 
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 \layout {
   \context { \RemoveEmptyStaffContext }
 }
@@ -1180,10 +1357,10 @@ in this example disappears in the second line
 
 The first system shows all staves in full.  If empty staves should be
 removed from the first system too, set @code{remove-first} to true in
-@internalsref{RemoveEmptyVerticalGroup}.
+@internalsref{VerticalAxisGroup}.
 
 @example
-\override Score.RemoveEmptyVerticalGroup #'remove-first = ##t
+\override Score.VerticalAxisGroup #'remove-first = ##t
 @end example
 
 To remove other types of contexts, use @code{\AncientRemoveEmptyStaffContext}
@@ -1197,6 +1374,8 @@ staff.  See @inputfileref{input/@/test,ossia@/.ly} for an example.
 @node Quoting other voices
 @subsection Quoting other voices
 
+@cindex cues
+
 With quotations, fragments of other parts can be inserted into a part
 directly.  Before a part can be quoted, it must be marked especially as
 quotable.  This is done with the @code{\addquote} command.
@@ -1246,7 +1425,7 @@ rests at the beginning.
 Quotations take into account the transposition of both source and target
 instruments, if they are specified using the @code{\transposition} command.
 
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 \addquote clarinet \relative c' {
   \transposition bes
   f4 fis g gis
@@ -1293,6 +1472,8 @@ Program reference: @internalsref{QuoteMusic}.
 @node Formatting cue notes
 @subsection Formatting cue notes
 
+@cindex cues, formatting
+
 The previous section deals with inserting notes from another voice.
 There is a more advanced music function called @code{\cueDuring},
 which makes formatting cue notes easier.
@@ -1311,36 +1492,35 @@ the staff in effect becomes polyphonic for a moment.  The argument
 first or second voice.
 
 
-@lilypond[verbatim,raggedright]
+@lilypond[verbatim,ragged-right]
 smaller = {
   \set fontSize = #-2
-  \override Stem #'length = #5.5
+  \override Stem #'length-fraction = #0.8
   \override Beam #'thickness = #0.384
-  \override Beam #'space-function =
-    #(lambda (beam mult) (* 0.8 (Beam::space_function beam mult)))
+  \override Beam #'length-fraction = #0.8
 }
 
 \addquote clarinet \relative {
   R1*20
   r2 r8 c f f
-} 
+}
 
 \new Staff \relative  <<
 
   % setup a context for  cue  notes.
-  \context Voice = cue { \smaller \skip 1*21 }
-  
+  \new Voice = "cue" { \smaller \skip 1*21 }
+
   \set Score.skipBars = ##t
-  
+
   \new Voice {
     R1*20
     \cueDuring #"clarinet" #1 {
       R1
     }
-    g4 g2. 
+    g4 g2.
   }
 >>
-@end lilypond 
+@end lilypond
 
 
 Here are a couple of hints for successful cue notes
@@ -1354,17 +1534,18 @@ Cue notes have smaller font sizes.
  when the original part takes over again, this should be marked with
  the name of the original instrument.
 
- @c really?  Are you sure about that last point?  I'll check after 3.0 -gp
+@c really?  Are you sure about that last point?  I'll check after 3.0 -gp
 
 @c Yes, this is good practice.  Otherwise, the start of the original
 @c part can only be seen from the font size.  This is not good enough
 @c for sight-reading.  It is possilbe to use other
-@c markers (eg. a big close-bracket over the staff) to indicate the cue notes are
+@c markers (e.g. a big close-bracket over the staff) to indicate the cue
+@c   notes are
 @c finished.
 @c -hwn
 
 
- any other changes introduced by the cued part should also be
+Any other changes introduced by the cued part should also be
 undone.  For example, if the cued instrument plays in a different clef,
 the original clef should be stated once again.
 
@@ -1385,7 +1566,7 @@ as argument, and generate a @code{\skip} or multi-rest, exactly as
 long as the piece.  The use of @code{mmrest-of-length} is demonstrated
 in the following example.
 
-@lilypond[verbatim,raggedright,quote]
+@lilypond[verbatim,ragged-right,quote]
 cadenza = \relative c' {
   c4 d8 << { e f g } \\ { d4. } >>
   g4 f2 g4 g
@@ -1410,17 +1591,29 @@ In the 20th century, composers have greatly expanded the musical
 vocabulary.  With this expansion, many innovations in musical notation
 have been tried.  The book ``Music Notation in the 20th century'' by
 Kurt Stone gives a comprehensive overview (see @ref{Literature
-list}).  In general, the use of new, innovative notation makes a piece
-harder to understand and perform and its use should therefore be
-avoided.  For this reason, support for contemporary notation in
-LilyPond is limited.
+list}).
+
+This section describes notation that does
+not fit into traditional notation categories, such as pitches,
+tuplet beams, and articulation.  For contemporary notation
+that fits into traditional notation categories, such as
+microtones, nested tuplet beams, and unusual fermatas, please
+see those sections of the documentation.
+
+
+@c I don't think we should discourage modern composers who might
+@c want to sponsor new features.  :)
+@c  In general, the use of new, innovative notation makes a piece
+@c harder to understand and perform and its use should therefore be
+@c avoided.  For this reason, support for contemporary notation in
+@c LilyPond is limited.
 
 
 @menu
 * Polymetric notation::         
 * Time administration::         
+* Proportional notation::       
 * Clusters::                    
-* Special fermatas::            
 * Special noteheads::           
 * Feathered beams::             
 * Improvisation::               
@@ -1433,20 +1626,21 @@ LilyPond is limited.
 Double time signatures are not supported explicitly, but they can be
 faked.  In the next example, the markup for the time signature is
 created with a markup text.  This markup text is inserted in the
-@internalsref{TimeSignature} grob.
+@internalsref{TimeSignature} grob. See also
+@inputfileref{input/@/test,compound@/-time@/.ly}).
 
-@lilypond[verbatim,raggedright]
+@lilypond[verbatim,ragged-right]
 % create 2/4 + 5/8
 tsMarkup =\markup {
-  \number {
+  \override #'(baseline-skip . 2) \number {
     \column { "2" "4" }
-    \musicglyph #"scripts.stopped"
+    \lower #1 "+"
     \bracket \column { "5" "8" }
   }
 }
 
 {
-  \override Staff.TimeSignature #'print-function = #Text_interface::print
+  \override Staff.TimeSignature #'stencil = #ly:text-interface::print
   \override Staff.TimeSignature #'text = #tsMarkup
   \time 3/2
   c'2 \bar ":" c'4 c'4.
@@ -1454,13 +1648,21 @@ tsMarkup =\markup {
 @end lilypond
 
 Each staff can also have its own time signature.  This is done by
-moving the @internalsref{Timing_engraver} to the @internalsref{Staff}
+moving the @internalsref{Timing_translator} to the @internalsref{Staff}
 context.
 
 @example
 \layout @{
-  \context @{ \Score \remove "Timing_engraver" @}
-  \context @{ \Staff \consists "Timing_engraver" @}
+  \context @{ \Score
+     \remove "Timing_translator"
+     \remove "Default_bar_line_engraver"
+  @}
+  \context @{
+    \Staff
+    \consists "Timing_translator"
+    \consists "Default_bar_line_engraver"
+  @}
+
 @}
 @end example
 
@@ -1483,10 +1685,17 @@ Now, each staff has its own time signature.
 >>
 @end example
 
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
 \layout{
-  \context{ \Score \remove "Timing_engraver" }
-  \context{ \Staff \consists "Timing_engraver" }
+  \context{
+     \Score
+     \remove "Timing_translator"
+     \remove "Default_bar_line_engraver"
+    }
+  \context{ \Staff
+    \consists "Timing_translator"
+    \consists "Default_bar_line_engraver"
+  }
 }
 
 \relative c' <<
@@ -1513,8 +1722,12 @@ This notation can be created by setting a common time signature for
 each staff but replacing it manually using
 @code{timeSignatureFraction} to the desired fraction.  Then the printed
 durations in each staff are scaled to the common time signature.
-The latter is done with @code{\compressMusic}, which is similar to
-@code{\times}, but does not create a tuplet bracket.
+The latter is done with @code{\compressMusic}, which is used similar
+to @code{\times}, but does not create a tuplet bracket. The syntax is
+@example
+\compressMusic #'(@var{numerator} . @var{denominator}) @var{musicexpr}
+@end example
+
 
 
 In this example, music with the time signatures of 3/4, 9/8, and 10/8 are
@@ -1522,7 +1735,7 @@ used in parallel.  In the second staff, shown durations are multiplied by
 2/3, so that 2/3 * 9/8 = 3/4, and in the third staff, shown durations are
 multiplied by 3/5, so that 3/5 * 10/8 = 3/4.
 
-@lilypond[quote,raggedright,verbatim,fragment]
+@lilypond[quote,ragged-right,verbatim,fragment]
 \relative c' { <<
   \new Staff {
     \time 3/4
@@ -1591,7 +1804,7 @@ in the measure, so the next bar line will fall at 2/4 + 3/8.  The
 3/8 arises because 5/4 normally has 10/8, but we have manually
 set the measure position to be 7/8 and 10/8 - 7/8 = 3/8.
 
-@lilypond[quote,raggedright,verbatim,relative,fragment]
+@lilypond[quote,ragged-right,verbatim,relative,fragment]
 \set Score.measureLength = #(ly:make-moment 5 4)
 c1 c4
 c1 c4
@@ -1601,6 +1814,28 @@ b8 b b
 c4 c1
 @end lilypond
 
+@noindent
+As the example illustrates, @code{ly:make-moment n m} constructs a
+duration of n/m of a whole note.  For example, @code{ly:make-moment 1 8} is
+an eighth
+note duration and @code{ly:make-moment 7 16} is the duration of
+seven sixteenths notes.
+
+
+@node Proportional notation
+@subsection Proportional notation
+@cindex Proportional notation
+
+Notes can be spaced proportional to their time-difference by
+assigning a duration to @code{proportionalNotationDuration}
+
+@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
+<<
+  \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
+  \new Staff { c8[ c c c c c]  c4 c2 r2 }
+  \new Staff { c2  \times 2/3 { c8 c c } c4 c1 }
+>>
+@end lilypond
 
 
 @node Clusters
@@ -1612,7 +1847,7 @@ A cluster indicates a continuous range of pitches to be played.  They
 can be denoted as the envelope of a set of notes.  They are entered by
 applying the function @code{makeClusters} to a sequence of
 chords, e.g.,
-@lilypond[quote,raggedright,relative=2,fragment,verbatim]
+@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
 \makeClusters { <c e > <b f'> }
 @end lilypond
 
@@ -1620,7 +1855,7 @@ The following example (from
 @inputfileref{input/@/regression,cluster@/.ly}) shows what the result
 looks like
 
-@lilypondfile[raggedright,quote]{cluster.ly}
+@lilypondfile[ragged-right,quote]{cluster.ly}
 
 Ordinary notes and clusters can be put together in the same staff,
 even simultaneously.  In such a case no attempt is made to
@@ -1640,49 +1875,6 @@ Music expressions like @code{<< @{ g8 e8 @} a4 >>} are not printed
 accurately.  Use @code{<g a>8 <e a>8} instead.
 
 
-
-@node Special fermatas
-@subsection Special fermatas
-
-@cindex fermatas, special
-
-In contemporary music notation, special fermata symbols denote breaks
-of differing lengths.  The following fermatas are supported
-
-@lilypond[quote,raggedright]
-<<
-  \oldaddlyrics {
-    b'2
-    ^\shortfermata
-    _\shortfermata
-    r
-
-    b'
-    ^\fermata
-    _\fermata
-    r
-
-    b'
-    ^\longfermata
-    _\longfermata
-    r
-
-    b'
-    ^\verylongfermata
-    _\verylongfermata
-    r
-  }
-  \context Lyrics \lyricmode {
-    \override LyricText #'font-family = #'typewriter
-    "shortfermata" "fermata" "longfermata" "verylongfermata"
-  }
->>
-@end lilypond
-
-See @ref{Articulations} for general instructions how to apply scripts
-such as fermatas to notes.
-
-
 @node Special noteheads
 @subsection Special noteheads
 
@@ -1692,7 +1884,7 @@ notes on guitar; diamonds are used for harmonics on string instruments,
 etc.  There is a shorthand (@code{\harmonic}) for diamond shapes; the
 other notehead styles are produced by tweaking the property
 
-@lilypond[raggedright,relative=1,fragment,verbatim,quote]
+@lilypond[ragged-right,relative=1,fragment,verbatim,quote]
 c4 d
 \override NoteHead #'style = #'cross
 e f
@@ -1717,7 +1909,7 @@ Feathered beams are not supported natively, but they can be faked by
 forcing two beams to overlap.  Here is an example,
 
 @c don't change relative setting witout changing positions!
-@lilypond[raggedright,relative=1,fragment,verbatim,quote]
+@lilypond[ragged-right,relative=1,fragment,verbatim,quote]
 \new Staff <<
   \new Voice
   {
@@ -1754,7 +1946,7 @@ There are shortcuts @code{\improvisationOn} (and an accompanying
 @code{\improvisationOff}) for this command sequence.  They are used in
 the following example
 
-@lilypond[verbatim,raggedright,quote]
+@lilypond[verbatim,ragged-right,quote]
 \new Staff \with {
   \consists Pitch_squash_engraver
 } \transpose c c' {
@@ -1776,10 +1968,11 @@ teaching tools in addition to great musical scores.
 * Balloon help::                
 * Blank music sheet::           
 * Hidden notes::                
-* Shaped note heads ::          
+* Shape note heads::            
 * Easy Notation note heads::    
 * Analysis brackets::           
 * Coloring objects::            
+* Parentheses::                 
 @end menu
 
 @node Balloon help
@@ -1790,13 +1983,11 @@ balloon.  The primary purpose of this feature is to explain notation.
 
 The following example demonstrates its use.
 
-@lilypond[quote,verbatim,fragment,raggedright,relative=2]
-\context Voice {
-  \applyoutput
-    #(add-balloon-text 'NoteHead "heads, or tails?"
-    '(1 . -3))
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\applyOutput #'Voice
+  #(add-balloon-text 'NoteHead "heads, or tails?"
+      '(1 . -3))
   c8
-}
 @end lilypond
 
 @noindent
@@ -1820,6 +2011,9 @@ Examples: @inputfileref{input/@/regression,balloon@/.ly}.
 @node Blank music sheet
 @subsection Blank music sheet
 
+@cindex Sheet music, empty
+@cindex Staves, blank sheet
+
 A blank music sheet can be produced also by using invisible notes, and
 removing @code{Bar_number_engraver}.
 
@@ -1835,8 +2029,8 @@ emptymusic = {
   defaultBarType = #""
   \remove Bar_number_engraver
 } <<
-  \context Staff \emptymusic
-  \context TabStaff \emptymusic
+  \new Staff \emptymusic
+  \new TabStaff \emptymusic
 >>
 @end lilypond
 
@@ -1848,12 +2042,12 @@ emptymusic = {
 @cindex Invisible notes
 @cindex Transparent notes
 
-@cindex @code{\hideNotes}
-@cindex @code{\unHideNotes}
+@findex \hideNotes
+@findex \unHideNotes
 Hidden (or invisible or transparent) notes can be useful in preparing theory
 or composition exercises.
 
-@lilypond[quote,raggedright,verbatim,relative=2,fragment]
+@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
 c4 d4
 \hideNotes
 e4 f4
@@ -1861,31 +2055,15 @@ e4 f4
 g4 a
 @end lilypond
 
-Hidden notes are also great for performing weird tricks.  For example,
-slurs cannot be attached to rests or spacer rests, but you may wish
-to include that in your score -- string instruments use this notation
-when doing pizzicato to indicate that the note should ring for as long
-as possible.
-
-@lilypond[quote,raggedright,verbatim,relative=0,fragment]
-\clef bass
-<< {
-  c4^"pizz"( \hideNotes c)
-  \unHideNotes c( \hideNotes c)
-} {
-  s4 r s r
-} >>
-@end lilypond
 
+@node Shape note heads
+@subsection Shape note heads
 
-@node Shaped note heads 
-@subsection Shaped note heads 
-
-In shaped note head notation, the shape of the note head corresponds
+In shape note head notation, the shape of the note head corresponds
 to the harmonic function of a note in the scale.  This notation was
 popular in the 19th century American song books.
 
-Shaped note heads can be produced by setting @code{\aikenHeads} or
+Shape note heads can be produced by setting @code{\aikenHeads} or
 @code{\sacredHarpHeads}, depending on the style desired.
 
 @lilypond[verbatim,relative=1,fragment]
@@ -1903,11 +2081,10 @@ scale is determined by  the @code{\key} command
 @findex \aikenHeads
 @findex \sacredHarpHeads
 
-Shaped note heads are implemented through the @code{shapeNoteStyles}
+Shape note heads are implemented through the @code{shapeNoteStyles}
 property.  Its value is a vector of symbols.  The k-th element indicates
 the style to use for the k-th step of the scale.  Arbitrary
-combinations are possible, eg.,
-
+combinations are possible, e.g.
 
 @lilypond[verbatim,relative=1,fragment]
   \set shapeNoteStyles  = ##(cross triangle fa #f mensural xcircle diamond)
@@ -1924,7 +2101,7 @@ combinations are possible, eg.,
 The `easy play' note head includes a note name inside the head.  It is
 used in music for beginners
 
-@lilypond[quote,raggedright,verbatim,fragment,staffsize=26]
+@lilypond[quote,ragged-right,verbatim,fragment,staffsize=26]
   \setEasyHeads
   c'2 e'4 f' | g'1
 @end lilypond
@@ -1936,7 +2113,7 @@ to be printed in a large font size.  To print with a larger font, see
 
 @refcommands
 
-@cindex @code{\setEasyHeads}
+@findex \setEasyHeads
 @code{\setEasyHeads}
 
 
@@ -1953,7 +2130,7 @@ brackets.  To use this, add the @internalsref{Horizontal_bracket_engraver}
 to @internalsref{Staff} context.  A bracket is started with
 @code{\startGroup} and closed with @code{\stopGroup}
 
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 \score {
   \relative c'' {
     c4\startGroup\startGroup
@@ -1974,37 +2151,13 @@ Program reference: @internalsref{HorizontalBracket}.
 Examples: @inputfileref{input/@/regression,note@/-group@/-bracket@/.ly}.
 
 
-
-@ignore
-
-I don't think we need this info.
-
-@n ode Stems
-@s ubsection Stems
-
-Whenever a note is found, a @internalsref{Stem} object is created
-automatically.  For whole notes and rests, they are also created but
-made invisible.
-
-@refcommands
-
-@cindex @code{\stemUp}
-@code{\stemUp},
-@cindex @code{\stemDown}
-@code{\stemDown},
-@cindex @code{\stemNeutral}
-@code{\stemNeutral}.
-
-@end ignore
-
-
 @node Coloring objects
 @subsection Coloring objects
 
 Individual objects may be assigned colors.  You may use the
 color names listed in the @ref{List of colors}.
 
-@lilypond[quote,raggedright,verbatim,fragment,relative=1]
+@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
 \override NoteHead #'color = #red
 c4 c
 \override NoteHead #'color = #(x11-color 'LimeGreen)
@@ -2039,11 +2192,11 @@ If x11-color cannot make sense of the parameter then the color returned
 defaults to black.  It should be obvious from the final score that
 something is wrong.
 
-This example, illustrates the use of x11-color.  Notice that the stem
+This example illustrates the use of x11-color.  Notice that the stem
 color remains black after being set to (x11-color 'Boggle), which is
 deliberate nonsense.
 
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
 {
   \override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
   \set Staff.instrument = \markup {
@@ -2068,286 +2221,38 @@ Appendix: @ref{List of colors}.
 
 @refbugs
 Not all x11 colors are distinguishable in a web browser.  For web use
-normal colors are recommended. 
+normal colors are recommended.
 
 An x11 color is not necessarily exactly the same shade as a similarly
-named normal color. 
-
-
-@node Automatic notation
-@section Automatic notation
-
-This section describes how to change the way that accidentals and
-beams are automatically displayed.
-
-FIXME: this might get moved into Changing Defaults.  Please send
-opinions to lilypond-devel.  Thanks!  :)
-
-@menu
-* Automatic accidentals::       
-* Setting automatic beam behavior::  
-@end menu
-
-@node Automatic accidentals
-@subsection Automatic accidentals
-@cindex Automatic accidentals
-
-Common rules for typesetting accidentals have been placed in a
-function.  This function is called as follows
-
-@cindex @code{set-accidental-style}
-@example
-#(set-accidental-style 'STYLE #('CONTEXT#))
-@end example
+named normal color.
 
-The function can take two arguments: the name of the accidental style,
-and an optional argument that denotes the context that should be
-changed.  If no context name is supplied, @code{Staff} is the default,
-but you may wish to apply the accidental style to a single @code{Voice}
-instead.
+Notes in a chord cannot be colored with @code{\override}; use
+@code{\tweak} instead.  See @ref{Objects connected to the input}
+for details.
 
-The following accidental styles are supported
-@table @code
-@item default
-This is the default typesetting behavior.  It corresponds
-to 18th century common practice: Accidentals are
-remembered to the end of the measure in which they occur and
-only on their own octave.
-
-@item voice
-The normal behavior is to remember the accidentals on
-Staff-level.  This variable, however, typesets accidentals
-individually for each voice.  Apart from that, the rule is similar to
-@code{default}.
-
-As a result, accidentals from one voice do not get canceled in other
-voices, which is often an unwanted result
-
-@lilypond[quote,raggedright,relative=1,fragment,verbatim]
-\context Staff <<
-  #(set-accidental-style 'voice)
-  <<
-    { es g } \\
-    { c, e }
->> >>
-@end lilypond
 
-The @code{voice} option should be used if the voices
-are to be read solely by individual musicians.  If the staff is to be
-used by one musician (e.g., a conductor) then
-@code{modern} or @code{modern-cautionary}
-should be used instead.
-
-@item modern
-@cindex @code{modern} style accidentals
-This rule corresponds to the common practice in the 20th century.  This rule
-prints the same accidentals as @code{default}, but temporary
-accidentals also are canceled in other octaves.  Furthermore,
-in the same octave, they also get canceled in the following
-measure
-
-@lilypond[quote,raggedright,fragment,verbatim]
-#(set-accidental-style 'modern)
-cis' c'' cis'2 | c'' c'
-@end lilypond
+@node Parentheses
+@subsection Parentheses
 
-@item @code{modern-cautionary}
-@cindex @code{modern-cautionary}
-This rule is similar to @code{modern}, but the ``extra'' accidentals
-(the ones not typeset by @code{default}) are typeset as cautionary
-accidentals.  They are printed in reduced size or with parentheses
-@lilypond[quote,raggedright,fragment,verbatim]
-#(set-accidental-style 'modern-cautionary)
-cis' c'' cis'2 | c'' c'
-@end lilypond
+@cindex ghost notes
+@cindex notes, ghost
+@cindex notes, parenthesized
 
-@cindex @code{modern-voice}
-@item modern-voice
-This rule is used for multivoice accidentals to be read both by musicians
-playing one voice and musicians playing all voices.  Accidentals are
-typeset for each voice, but they @emph{are} canceled across voices in
-the same @internalsref{Staff}.
-
-@cindex @code{modern-voice-cautionary}
-@item modern-voice-cautionary
-This rule is the same as @code{modern-voice}, but with the extra
-accidentals (the ones not typeset by @code{voice}) typeset
-as cautionaries.  Even though all accidentals typeset by
-@code{default} @emph{are} typeset by this variable,
-some of them are typeset as cautionaries.
-
-@item piano
-@cindex @code{piano} accidentals
-This rule reflects 20th century practice for piano notation.  Very similar to
-@code{modern} but accidentals also get canceled
-across the staves in the same @internalsref{GrandStaff} or
-@internalsref{PianoStaff}.
-
-@item piano-cautionary
-@cindex @code{#(set-accidental-style 'piano-cautionary)}
-Same as @code{#(set-accidental-style 'piano)} but with the extra
-accidentals typeset as cautionaries.
-
-@item no-reset
-@cindex @code{no-reset} accidental style
-This is the same as @code{default} but with accidentals lasting
-``forever'' and not only until the next measure
-@lilypond[quote,raggedright,fragment,verbatim,relative=1]
-#(set-accidental-style 'no-reset)
-c1 cis cis c
-@end lilypond
+Objects may be parenthesized by prefixing @code{\parenthesize} to the music
+event,
 
-@item forget
-This is sort of the opposite of @code{no-reset}: Accidentals
-are not remembered at all---and hence all accidentals are
-typeset relative to the key signature, regardless of what was
-before in the music
-
-@lilypond[quote,raggedright,fragment,verbatim,relative=1]
-#(set-accidental-style 'forget)
-\key d\major c4 c cis cis d d dis dis
+@lilypond[relative=2,fragment,verbatim,ragged-right]
+<
+  c
+  \parenthesize d
+  g
+>4-\parenthesize -.
 @end lilypond
-@end table
-
-
-@seealso
-
-Program reference: @internalsref{Accidental_engraver},
-@internalsref{Accidental}, and @internalsref{AccidentalPlacement}.
-
 
-@refbugs
-
-Simultaneous notes are considered to be entered in sequential
-mode.  This means that in a chord the accidentals are typeset as if the
-notes in the chord happened once at a time - in the order in which
-they appear in the input file.
-
-This is a problem when accidentals in a chord depend on each other,
-which does not happen for the default accidental style.  The problem
-can be solved by manually inserting @code{!} and @code{?} for the
-problematic notes.
-
-
-@node Setting automatic beam behavior
-@subsection Setting automatic beam behavior
-
-@cindex @code{autoBeamSettings}
-@cindex @code{(end * * * *)}
-@cindex @code{(begin * * * *)}
-@cindex automatic beams, tuning
-@cindex tuning automatic beaming
-
-@c [TODO: use \applycontext]
-
-In normal time signatures, automatic beams can start on any note but can
-only end in a few positions within the measure: beams can end on a beat,
-or at durations specified by the properties in
-@code{autoBeamSettings}.  The defaults for @code{autoBeamSettings}
-are defined in @file{scm/@/auto@/-beam@/.scm}.
-
-The value of @code{autoBeamSettings} is changed with three functions,
-@example
-#(override-auto-beam-setting
-   '(@var{be} @var{p} @var{q} @var{n} @var{m}) @var{a} @var{b}
-   [@var{context}])
-#(score-override-auto-beam-setting
-   '(@var{be} @var{p} @var{q} @var{n} @var{m}) @var{a} @var{b})
-#(revert-auto-beam-setting '(@var{be} @var{p} @var{q} @var{n} @var{m})
-   @var{a} @var{b} [@var{context}])
-@end example
-Here, @var{be} is the symbol @code{begin} or @code{end}, and
-@var{context} is an optional context (default: @code{'Voice}).  It
-determines whether the rule applies to begin or end-points.  The
-quantity @var{p}/@var{q} refers to the length of the beamed notes (and
-`@code{* *}' designates notes of any length), @var{n}/@var{M} refers
-to a time signature (wildcards `@code{* *}' may be entered to
-designate all time signatures), @var{a}/@var{b} is a duration.  By
-default, this command changes settings for the current voice.  It is
-also possible to adjust settings at higher contexts, by adding a
-@var{context} argument.  @code{score-override-auto-beam-setting} is
-equal to @code{override-auto-beam-setting} with the argument
-@var{context} set to @code{'Score}.
-
-For example, if automatic beams should end on the first quarter note, use
-the following
-@example
-#(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
-@end example
-Since the duration of a quarter note is 1/4 of a whole note, it is
-entered as @code{(ly:make-moment 1 4)}.
-
-If automatic beams should end on every quarter in 5/4 time, specify
-all endings
-@example
-#(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
-#(override-auto-beam-setting '(end * * * *) 1 2 'Staff)
-#(override-auto-beam-setting '(end * * * *) 3 4 'Staff)
-#(override-auto-beam-setting '(end * * * *) 5 4 'Staff)
-@dots{}
-@end example
+This only functions inside chords, even for single notes
 
-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
-#(override-auto-beam-setting '(end * * * *) 3 8)
-#(override-auto-beam-setting '(end * * * *) 1 2)
-#(override-auto-beam-setting '(end * * * *) 7 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
-3/8, has passed within the measure).
-
-Rules can also be restricted to specific time signatures.  A rule that
-should only be applied in @var{N}/@var{M} time signature is formed by
-replacing the second asterisks by @var{N} and @var{M}.  For example, a
-rule for 6/8 time exclusively looks like
 @example
-#(override-auto-beam-setting '(begin * * 6 8) @dots{})
+< \parenthesize NOTE>
 @end example
 
-If a rule should be to applied only to certain types of beams, use the
-first pair of asterisks.  Beams are classified according to the
-shortest note they contain.  For a beam ending rule that only applies
-to beams with 32nd notes (and no shorter notes), use @code{(end 1 32 *
-*)}.
-
-For example,
-
-@lilypond[quote,raggedright,relative=2,fragment,verbatim]
-\time 5/8
-#(override-auto-beam-setting '(end * * 5 8) 2 8)
-c8 c d d d
-\time 4/4
-e8 e f f e e d d
-\time 5/8
-c8 c d d d
-@end lilypond
-
-@cindex automatic beam generation
-@cindex autobeam
-@cindex @code{autoBeaming}
-@cindex lyrics
-
-If beams are used to indicate melismata in songs, then automatic
-beaming should be switched off.  This is done by setting
-@code{autoBeaming} to @code{#f}.
-
-@refcommands
-
-@cindex @code{\autoBeamOff}
-@code{\autoBeamOff},
-@cindex @code{\autoBeamOn}
-@code{\autoBeamOn}.
-
-
-@refbugs
-
-If a score ends while an automatic beam has not been ended and is
-still accepting notes, this last beam will not be typeset at all.  The
-same holds polyphonic voices, entered with @code{<< @dots{} \\ @dots{}
->>}.  If a polyphonic voice ends while an automatic beam is still
-accepting notes, it is not typeset.
-
-