]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/basic-notation.itely
Add framework for Notation chapter, and do Pitches.
[lilypond.git] / Documentation / user / basic-notation.itely
index ea39cc21d9a72d483491f7f771e7e228166f6659..fef78825e292e80c7e281e34f27a21028659165f 100644 (file)
@@ -18,7 +18,6 @@
 This chapter explains how to use basic notation features.
 
 @menu
-* Pitches::                     
 * Rhythms::                     
 * Polyphony::                   
 * Staff notation::              
@@ -29,476 +28,8 @@ This chapter explains how to use basic notation features.
 
 
 
-@node Pitches
-@section Pitches
-
-This section discusses how to specify the pitch of notes.
-
-@menu
-* Normal pitches::              
-* Accidentals::                 
-* Cautionary accidentals::      
-* Micro tones::                 
-* Note names in other languages::  
-* Relative octaves::            
-* Octave check::                
-* Transpose::                   
-* Rests::                       
-* Skips::                       
-@end menu
-
-
-@node Normal pitches
-@subsection Normal pitches
-
-@cindex Pitch names
-@cindex pitches
-
-A pitch name is specified using lowercase letters @code{a} through @code{g}.
-An ascending C-major scale is engraved with
-
-@lilypond[quote,fragment,verbatim,ragged-right]
-\clef bass
-c d e f g a b c'
-@end lilypond
-
-The note name @code{c} is engraved one octave below middle C.
-
-@lilypond[quote,fragment,verbatim,ragged-right]
-\clef treble
-c1
-\clef bass
-c1
-@end lilypond
-
-@funindex '
-@funindex ,
-
-The optional octave specification takes the form of a series of
-single quote (@samp{'}) characters or a series of comma
-(@samp{,}) characters.  Each @samp{'} raises the pitch by one
-octave; each @samp{,} lowers the pitch by an octave.
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\clef treble
-c' c'' e' g d'' d' d c
-\clef bass
-c, c,, e, g d,, d, d c
-@end lilypond
-
-An alternate method may be used to declare which octave to
-engrave a pitch; this method does not require as many
-octave specifications (@code{'} and @code{,}).  See
-@ref{Relative octaves}.
-
-
-@node Accidentals
-@subsection Accidentals
-
-@cindex note names, Dutch
-@cindex note names, default
-
-A sharp is formed by adding @code{-is} to the end of a pitch name and
-a flat is formed by adding @code{-es}.  Double sharps and double flats
-are obtained by adding @code{-isis} or @code{-eses} to a note name.
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-a2 ais a aes
-a2 aisis a aeses
-@end lilypond
-
-@noindent
-These are the Dutch note names.  In Dutch, @code{aes} is contracted to
-@code{as}, but both forms are accepted.  Similarly, both
-@code{es} and @code{ees} are accepted
-
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-a2 as e es
-@end lilypond
-
-A natural will cancel the effect of an accidental or key signature.
-However, naturals are not encoded into the note name syntax with a
-suffix; a natural pitch is shown as a simple note name
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-a4 aes a2
-@end lilypond
-
-The input @code{d e f} is interpreted as @q{print a D-natural,
-E-natural, and an F-natural,} regardless of the key
-signature.  For more information about the distinction between
-musical content and the presentation of that content, see
-@ref{Accidentals and key signatures}.
-
-@lilypond[fragment,quote,ragged-right,verbatim,relative]
-\key d \major
-d e f g
-d e fis g
-@end lilypond
-
-
-@commonprop
-
-In accordance with standard typesetting rules, a natural sign is printed
-before a sharp or flat if a previous accidental needs to be
-cancelled.  To change this behavior, use
-@code{\set Staff.extraNatural = ##f}
-
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-ceses4 ces cis c
-\set Staff.extraNatural = ##f
-ceses4 ces cis c
-@end lilypond
-
-
-@seealso
-
-Program reference: @internalsref{LedgerLineSpanner},
-@internalsref{NoteHead}.
-
-
-@node Cautionary accidentals
-@subsection Cautionary accidentals
-
-@cindex accidental, reminder
-@cindex accidental, cautionary
-@cindex accidental, parenthesized
-@cindex reminder accidental
-@funindex ?
-@cindex cautionary accidental
-@cindex parenthesized accidental
-@funindex !
-
-Normally accidentals are printed automatically, but you may also
-print them manually.  A reminder accidental
-can be forced by adding an exclamation mark @code{!}
-after the pitch.  A cautionary accidental
-(i.e., an accidental within parentheses) can be obtained by adding the
-question mark @samp{?} after the pitch.  These extra accidentals
-can be used to produce natural signs, too.
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
-cis cis cis! cis? c c? c! c
-@end lilypond
-
-
-@seealso
-
-The automatic production of accidentals can be tuned in many
-ways.  For more information, see @ref{Automatic accidentals}.
-
-
-@node Micro tones
-@subsection Micro tones
-
-@cindex quarter tones
-@cindex semi-flats, semi-sharps
-
-Half-flats and half-sharps are formed by adding @code{-eh} and
-@code{-ih}; the following is a series of Cs with increasing pitches
-
-@lilypond[verbatim,ragged-right,quote,relative=2,fragment]
-\set Staff.extraNatural = ##f
-ceseh ceh cih cisih
-@end lilypond
-
-Micro tones are also exported to the MIDI file.
-
-
-@refbugs
-
-There are no generally accepted standards for denoting
-three-quarter flats, so LilyPond's symbol does not conform to any
-standard.
-
-
-@node Note names in other languages
-@subsection Note names in other languages
-
-There are predefined sets of note names for various other languages.
-To use them, include the language specific init file.  For
-example, add @code{\include "english.ly"} to the top of the input
-file.  The available language files
-and the note names they define are
-
-@c  Should this be made into a multitable?
-@cindex note names, other languages
-@example
-                        Note Names               sharp       flat     double        double
-                                                                       sharp        flat
-
-nederlands.ly  c   d   e   f   g   a   bes b   -is         -es       -isis         -eses
-english.ly     c   d   e   f   g   a   bf  b   -s/-sharp   -f/-flat  -ss/-x/       -ff/
-                                                                     -sharpsharp   -flatflat
-deutsch.ly     c   d   e   f   g   a   b   h   -is         -es       -isis         -eses
-norsk.ly       c   d   e   f   g   a   b   h   -iss/-is    -ess/-es  -ississ/-isis -essess/-eses
-svenska.ly     c   d   e   f   g   a   b   h   -iss        -ess      -ississ       -essess
-italiano.ly    do  re  mi  fa  sol la  sib si  -d          -b        -dd           -bb
-catalan.ly     do  re  mi  fa  sol la  sib si  -d/-s       -b        -dd/-ss       -bb
-espanol.ly     do  re  mi  fa  sol la  sib si  -s          -b        -ss           -bb
-@end example
-
-@noindent
-Note that in Dutch, German, Norwegian, and Swedish, the flat
-alterations of @samp{a} like for example @code{aes} and @code{aeses}
-are usually contracted to @code{as} and @code{ases} (or more commonly
-@code{asas}). Sometimes only these contracted names are defined in the
-corresponding language files (this also applies to the suffixes for
-quartertones below).
-
-@noindent
-Some music uses microtones whose alterations are fractions of a
-@q{regular} sharp or flat. The note names for quartertones defined in
-the various language files are listed in the following table. Here the
-prefixes @q{semi-} and @q{sesqui-} mean @q{half} and @q{one and a
-half}, respectively. For Norwegian, Swedish, Catalan and Spanish no
-special names have been defined yet.
-@c What about Turkish Maquam music and similar microtonal systems?
-@c
-@c Note that the term "three-quarter-sharp/-flat" used in lilypond's source code 
-@c is actually misleading since the alteration is in fact one and a half
-@c of a regular sharp/flat. Whence the naming "sesqui-sharp/-flat" used below.
-
-@example
-                        Note Names             semi-   semi-  sesqui-  sesqui-
-                                               sharp   flat    sharp    flat
-
-nederlands.ly  c   d   e   f   g   a   bes b   -ih     -eh    -isih    -eseh
-english.ly     c   d   e   f   g   a   bf  b   -qs     -qf    -tqs     -tqf
-deutsch.ly     c   d   e   f   g   a   b   h   -ih     -eh    -isih    -eseh
-norsk.ly       c   d   e   f   g   a   b   h   
-svenska.ly     c   d   e   f   g   a   b   h   
-italiano.ly    do  re  mi  fa  sol la  sib si  -sd     -sb    -dsd     -bsb
-catalan.ly     do  re  mi  fa  sol la  sib si  
-espanol.ly     do  re  mi  fa  sol la  sib si  
-@end example
-
-
-
-@node Relative octaves
-@subsection Relative octaves
-
-@cindex Relative
-@cindex Relative octave specification
-@funindex \relative
-
-Octaves are specified by adding @code{'} and @code{,} to pitch names.
-When you copy existing music, it is easy to accidentally put a pitch
-in the wrong octave and hard to find such an error.  The relative
-octave mode prevents these errors by making the mistakes much
-larger: a single error puts the rest of the piece off by one octave
-
-@example
-\relative @var{startpitch} @var{musicexpr}
-@end example
-
-@noindent
-or
-
-@example
-\relative @var{musicexpr}
-@end example
-
-@noindent
-@code{c'} is used as the default if no starting pitch is defined.
-
-The octave of notes that appear in @var{musicexpr} are calculated as
-follows: if no octave changing marks are used, the basic interval
-between this and the last note is always taken to be a fourth or
-less.  This distance is determined without regarding alterations; a
-@code{fisis} following a @code{ceses} will be put above the
-@code{ceses}.  In other words, a doubly-augmented fourth is considered
-a smaller interval than a diminished fifth, even though the
-doubly-augmented fourth spans seven semitones while the diminished
-fifth only spans six semitones.
-
-The octave changing marks @code{'} and @code{,} can be added to raise
-or lower the pitch by an extra octave.  Upon entering relative mode,
-an absolute starting pitch can be specified that will act as the
-predecessor of the first note of @var{musicexpr}.  If no starting pitch
-is specified, then middle C is used as a start.
-
-Here is the relative mode shown in action
-@lilypond[quote,fragment,ragged-right,verbatim]
-\relative c'' {
-  b c d c b c bes a
-}
-@end lilypond
-
-Octave changing marks are used for intervals greater than a fourth
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\relative c'' {
-  c g c f, c' a, e''
-}
-@end lilypond
-
-If the preceding item is a chord, the first note of the chord is used
-to determine the first note of the next chord
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\relative c' {
-  c <c e g>
-  <c' e g>
-  <c, e' g>
-}
-@end lilypond
-
-The pitch after @code{\relative} contains a note name.
-
-The relative conversion will not affect @code{\transpose},
-@code{\chordmode} or @code{\relative} sections in its argument.  To use
-relative within transposed music, an additional @code{\relative} must
-be placed inside @code{\transpose}.
-
-
-@node Octave check
-@subsection Octave check
-
-@cindex Octave check
-
-Octave checks make octave errors easier to correct: a note may be
-followed by @code{=}@var{quotes} which indicates what its absolute
-octave should be.  In the following example,
-
-@example
-\relative c'' @{ c='' b=' d,='' @}
-@end example
-
-@noindent
-the @code{d} will generate a warning, because a @code{d''} is expected
-(because @code{b'} to @code{d''} is only a third), but a @code{d'} is
-found.  In the output, the octave is corrected to be a @code{d''} and
-the next note is calculated relative to @code{d''} instead of @code{d'}.
-
-There is also an octave check that produces no visible output.  The syntax
-
-@example
-\octave @var{pitch}
-@end example
-
-This checks that @var{pitch} (without quotes) yields @var{pitch} (with
-quotes) in @code{\relative} mode compared to the note given in the
-@code{\relative} command.  If not, a warning is printed, and the
-octave is corrected.  The @var{pitch} is not printed as a note.
-
-In the example below, the first check passes without incident, since
-the @code{e} (in @code{relative} mode) is within a fifth of
-@code{a'}.  However,
-the second check produces a warning, since the @code{e} is not within
-a fifth of @code{b'}.  The warning message is printed, and the octave
-is adjusted so that the following notes are in the correct octave
-once again.
-
-@example
-\relative c' @{
-  e
-  \octave a'
-  \octave b'
-@}
-@end example
-
-
-The octave of a note following an octave check is determined with
-respect to the note preceding it.  In the next fragment, the last note
-is an @code{a'}, above middle C.  That means that the @code{\octave}
-check passes successfully, so the check could be deleted without changing
-the output of the piece.
-
-@lilypond[quote,ragged-right,verbatim,fragment]
-\relative c' {
-  e
-  \octave b
-  a
-}
-@end lilypond
-
-
-@node Transpose
-@subsection Transpose
-
-@cindex Transpose
-@cindex Transposition of pitches
-@funindex \transpose
-
-A music expression can be transposed with @code{\transpose}.  The
-syntax is
-@example
-\transpose @var{from} @var{to} @var{musicexpr}
-@end example
-
-This means that @var{musicexpr} is transposed by the interval between
-the pitches @var{from} and @var{to}: any note with pitch @code{from}
-is changed to @code{to}.
-
-For example, consider a piece written in the key of D-major.  If
-this piece is a little too low for its performer, it can be
-transposed up to E-major with
-@example
-\transpose d e @dots{}
-@end example
-
-Consider a part written for violin (a C instrument).  If
-this part is to be played on the A clarinet (for which an
-A is notated as a C, and which sounds a minor third lower
-than notated), the following
-transposition will produce the appropriate part
-
-@example
-\transpose a c @dots{}
-@end example
-
-@code{\transpose} distinguishes between enharmonic pitches: both
-@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[quote,ragged-right,verbatim]
-mus = { \key d \major cis d fis g }
-\new Staff {
-  \clef "F" \mus
-  \clef "G"
-  \transpose c g' \mus
-  \transpose c f' \mus
-}
-@end lilypond
-
-@code{\transpose} may also be used to input written notes for a
-transposing instrument.  Pitches are normally entered into LilyPond
-in C (or @q{concert pitch}), but they may be entered in another
-key.  For example, when entering music for a B-flat trumpet which
-begins on concert D, one would write
-
-@example
-\transpose c bes @{ e4 @dots{} @}
-@end example
-
-To print this music in B-flat again (i.e., producing a trumpet part,
-instead of a concert pitch conductor's score) you would wrap the
-existing music with another @code{transpose}
-
-@example
-\transpose bes c @{ \transpose c bes @{ e4 @dots{} @} @}
-@end example
-
-
-@seealso
-
-Program reference: @internalsref{TransposedMusic}.
-
-Example: @lsr{scheme,transpose-pitches-with-minimum-accidentals.ly}.
-
-
-@refbugs
-
-If you want to use both @code{\transpose} and @code{\relative},
-you must put @code{\transpose} outside of @code{\relative}, since
-@code{\relative} will have no effect on music that appears inside a
-@code{\transpose}.
-
-
-@node Rests
-@subsection Rests
+@anchor{Rests}
+@unnumberedsubsubsec Rests
 @cindex Rests
 
 @funindex \rest
@@ -533,8 +64,8 @@ formatter will leave these rests alone.
 Program reference: @internalsref{Rest}.
 
 
-@node Skips
-@subsection Skips
+@anchor{Skips}
+@unnumberedsubsubsec Skips
 
 @cindex Skip
 @cindex Invisible rest
@@ -595,8 +126,8 @@ This section discusses rhythms, durations, and bars.
 @end menu
 
 
-@node Durations
-@subsection Durations
+@anchor{Durations}
+@unnumberedsubsubsec Durations
 
 @cindex duration
 @funindex \longa
@@ -654,8 +185,8 @@ duration.  The default for the first note is a quarter note.
 @end lilypond
 
 
-@node Augmentation dots
-@subsection Augmentation dots
+@anchor{Augmentation dots}
+@unnumberedsubsubsec Augmentation dots
 
 @funindex .
 
@@ -684,8 +215,8 @@ direction manually
 Program reference: @internalsref{Dots}, and @internalsref{DotColumn}.
 
 
-@node Tuplets
-@subsection Tuplets
+@anchor{Tuplets}
+@unnumberedsubsubsec Tuplets
 
 @cindex tuplets
 @cindex triplets
@@ -833,8 +364,8 @@ Program reference: @internalsref{TupletBracket},
 
 
 
-@node Scaling durations
-@subsection Scaling durations
+@anchor{Scaling durations}
+@unnumberedsubsubsec Scaling durations
 
 You can alter the length of duration by a fraction @var{N/M}
 appending @samp{*@var{N/M}} (or @samp{*@var{N}} if @var{M=1}).  This
@@ -857,8 +388,8 @@ b16*4 c4
 This manual: @ref{Tuplets}.
 
 
-@node Bar check
-@subsection Bar check
+@anchor{Bar check}
+@unnumberedsubsubsec Bar check
 
 @cindex Bar check
 @funindex barCheckSynchronize
@@ -900,8 +431,8 @@ pipeSymbol = \bar "||"
 @end lilypond
 
 
-@node Barnumber check
-@subsection Barnumber check
+@anchor{Barnumber check}
+@unnumberedsubsubsec Barnumber check
 
 When copying large pieces of music, it can be helpful to check that
 the LilyPond bar number corresponds to the original that you are
@@ -917,8 +448,8 @@ will print a warning if the @code{currentBarNumber} is not 123 when it
 is processed.
 
 
-@node Automatic note splitting
-@subsection Automatic note splitting
+@anchor{Automatic note splitting}
+@unnumberedsubsubsec Automatic note splitting
 
 Long notes can be converted automatically to tied notes.  This is done
 by replacing the @internalsref{Note_heads_engraver} by the
@@ -975,8 +506,8 @@ one voice on the same staff.
 @end menu
 
 
-@node Chords
-@subsection Chords
+@anchor{Chords}
+@unnumberedsubsubsec Chords
 
 @cindex Chords
 
@@ -993,8 +524,8 @@ For more information about chords, see @ref{Chord names}.
 
 @c  I don't like having this here, but I can't think of
 @c  anywhere else to put it.  :(   -gp
-@node Stems
-@subsection Stems
+@anchor{Stems}
+@unnumberedsubsubsec Stems
 
 Whenever a note is found, a @internalsref{Stem} object is created
 automatically.  For whole notes and rests, they are also created but
@@ -1023,8 +554,8 @@ a4 b c b
 @end lilypond
 
 
-@node Basic polyphony
-@subsection Basic polyphony
+@anchor{Basic polyphony}
+@unnumberedsubsubsec Basic polyphony
 
 @cindex polyphony
 
@@ -1102,8 +633,8 @@ to the note immediately preceding it.
 @code{noteA}.
 
 
-@node Explicitly instantiating voices
-@subsection Explicitly instantiating voices
+@anchor{Explicitly instantiating voices}
+@unnumberedsubsubsec Explicitly instantiating voices
 
 @internalsref{Voice} contexts can also be instantiated manually
 inside a @code{<< >>} block to create polyphonic music, using
@@ -1221,8 +752,8 @@ voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)
 @end lilypond
 
 
-@node Collision Resolution
-@subsection Collision Resolution
+@anchor{Collision Resolution}
+@unnumberedsubsubsec Collision Resolution
 
 Normally, note heads with a different number of dots are not merged, but
 when the object property @code{merge-differently-dotted} is set in
@@ -1368,187 +899,8 @@ such as key signatures, clefs and time signatures.
 @end menu
 
 
-@node Clef
-@subsection Clef
-
-@funindex \clef
-
-The clef indicates which lines of the staff correspond to which
-pitches.  The clef is set with the @code{\clef} command
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-{ c''2 \clef alto g'2 }
-@end lilypond
-
-@cindex treble clef
-@cindex violin clef
-@cindex alto clef
-@cindex tenor clef
-@cindex bass clef
-@cindex french clef
-@cindex soprano clef
-@cindex mezzosoprano clef
-@cindex baritone clef
-@cindex varbaritone clef
-@cindex subbass clef
-
-Supported clefs include
-
-@multitable @columnfractions .33 .66
-@headitem Clef @tab Position
-@item @code{treble}, violin, G, G2 @tab
-G clef on 2nd line
-@item @code{alto, C} @tab
-C clef on 3rd line
-@item @code{tenor} @tab
-C clef on 4th line.
-@item @code{bass, F} @tab
-F clef on 4th line
-@item @code{french} @tab
-G clef on 1st line, so-called French violin clef
-@item @code{soprano} @tab
-C clef on 1st line
-@item @code{mezzosoprano} @tab
-C clef on 2nd line
-@item @code{baritone} @tab
-C clef on 5th line
-@item @code{varbaritone} @tab
-F clef on 3rd line
-@item @code{subbass} @tab
-F clef on 5th line
-@item @code{percussion} @tab
-percussion clef
-@item @code{tab} @tab
-tablature clef
-@end multitable
-
-By adding @code{_8} or @code{^8} to the clef name, the clef is
-transposed one octave down or up, respectively, and @code{_15} and
-@code{^15} transposes by two octaves.  The argument @var{clefname}
-must be enclosed in quotes when it contains underscores or digits.  For
-example,
-
-@cindex choral tenor clef
-@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
-\clef "G_8" c4
-@end lilypond
-
-
-@commonprop
-
-The command @code{\clef "treble_8"} is equivalent to setting
-@code{clefGlyph},
-@code{clefPosition} (which controls the Y position of the clef),
-@code{middleCPosition} and @code{clefOctavation}.  A clef is printed
-when any of these properties are changed.  The following example shows
-possibilities when setting properties manually.
-
-@lilypond[quote,ragged-right,verbatim]
-{
-  \set Staff.clefGlyph = #"clefs.F"
-  \set Staff.clefPosition = #2
-  c'4
-  \set Staff.clefGlyph = #"clefs.G"
-  c'4
-  \set Staff.clefGlyph = #"clefs.C"
-  c'4
-  \set Staff.clefOctavation = #7
-  c'4
-  \set Staff.clefOctavation = #0
-  \set Staff.clefPosition = #0
-  c'4
-  \clef "bass"
-  c'4
-  \set Staff.middleCPosition = #4
-  c'4
-}
-@end lilypond
-
-
-@seealso
-
-Manual: @ref{Grace notes}.
-
-Program reference: @internalsref{Clef}.
-
-
-@node Key signature
-@subsection Key signature
-
-@cindex Key signature
-@funindex \key
-
-The key signature indicates the tonality in which a piece is played.  It
-is denoted by a set of alterations (flats or sharps) at the start of the
-staff.
-
-Setting or changing the key signature is done with the @code{\key}
-command
-
-@example
-@code{\key} @var{pitch} @var{type}
-@end example
-
-@funindex \minor
-@funindex \major
-@funindex \minor
-@funindex \ionian
-@funindex \locrian
-@funindex \aeolian
-@funindex \mixolydian
-@funindex \lydian
-@funindex \phrygian
-@funindex \dorian
-@cindex church modes
-
-Here, @var{type} should be @code{\major} or @code{\minor} to get
-@var{pitch}-major or @var{pitch}-minor, respectively.  You may also
-use the standard mode names (also called @q{church modes}): @code{\ionian},
-@code{\locrian}, @code{\aeolian}, @code{\mixolydian}, @code{\lydian},
-@code{\phrygian}, and @code{\dorian}.
-
-This command sets the context property
-@code{Staff.keySignature}.  Non-standard key signatures
-can be specified by setting this property directly.
-
-Accidentals and key signatures often confuse new users, because
-unaltered notes get natural signs depending on the key signature.  For
-more information, see @ref{Accidentals}, or @ref{Accidentals and key signatures}.
-
-@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
-\key g \major
-f1
-fis
-@end lilypond
-
-
-@commonprop
-
-A natural sign is printed to cancel any previous accidentals.  This
-can be suppressed by setting the @code{Staff.printKeyCancellation}
-property.
-
-@lilypond[quote,fragment,ragged-right,fragment,verbatim,relative=2]
-\key d \major
-a b cis d
-\key g \minor
-a bes c d
-\set Staff.printKeyCancellation = ##f
-\key d \major
-a b cis d
-\key g \minor
-a bes c d
-@end lilypond
-
-
-@seealso
-
-Program reference: @internalsref{KeyCancellation},
-@internalsref{KeySignature}.
-
-
-@node Time signature
-@subsection Time signature
+@anchor{Time signature}
+@unnumberedsubsubsec Time signature
 
 @cindex Time signature
 @cindex meter
@@ -1629,8 +981,8 @@ Automatic beaming does not use the measure grouping specified with
 @code{set-time-signature}.
 
 
-@node Partial measures
-@subsection Partial measures
+@anchor{Partial measures}
+@unnumberedsubsubsec Partial measures
 
 @cindex anacrusis
 @cindex upbeat
@@ -1684,8 +1036,8 @@ piece.  If you use it after the beginning, some odd warnings may
 occur.
 
 
-@node Bar lines
-@subsection Bar lines
+@anchor{Bar lines}
+@unnumberedsubsubsec Bar lines
 
 @cindex Bar lines
 @funindex \bar
@@ -1769,8 +1121,8 @@ Program reference: @internalsref{BarLine} (created at
 @internalsref{Staff} level), @internalsref{SpanBar} (across staves).
 
 
-@node Unmetered music
-@subsection Unmetered music
+@anchor{Unmetered music}
+@unnumberedsubsubsec Unmetered music
 
 @cindex cadenza
 @funindex \cadenzaOn
@@ -1806,8 +1158,8 @@ invisible bar lines
 to indicate where breaks can occur.
 
 
-@node System start delimiters
-@subsection System start delimiters
+@anchor{System start delimiters}
+@unnumberedsubsubsec System start delimiters
 
 @cindex start of system
 @cindex Staff, multiple
@@ -1894,8 +1246,8 @@ System start delimiters may be deeply nested,
 @end lilypond
 
 
-@node Staff symbol
-@subsection Staff symbol
+@anchor{Staff symbol}
+@unnumberedsubsubsec Staff symbol
 
 @cindex adjusting staff symbol
 
@@ -1941,8 +1293,8 @@ Program reference: @internalsref{StaffSymbol}.
 Examples: @lsrdir{staff}
 
 
-@node Writing music in parallel
-@subsection Writing music in parallel
+@anchor{Writing music in parallel}
+@unnumberedsubsubsec Writing music in parallel
 
 @cindex Writing music in parallel
 @cindex Interleaved music
@@ -2021,8 +1373,8 @@ This section deals with notation that affects groups of notes.
 @end menu
 
 
-@node Ties
-@subsection Ties
+@anchor{Ties}
+@unnumberedsubsubsec Ties
 
 @cindex tie
 @funindex ~
@@ -2139,8 +1491,8 @@ Changing clefs or octavations during a tie is not really
 well-defined.  In these cases, a slur may be preferable.
 
 
-@node Slurs
-@subsection Slurs
+@anchor{Slurs}
+@unnumberedsubsubsec Slurs
 
 @cindex Slurs
 
@@ -2197,11 +1549,11 @@ be achieved in LilyPond by setting @code{doubleSlurs},
 
 @seealso
 
-Program reference: @seeinternals{Slur}.
+Program reference: @internalsref{Slur}.
 
 
-@node Phrasing slurs
-@subsection Phrasing slurs
+@anchor{Phrasing slurs}
+@unnumberedsubsubsec Phrasing slurs
 
 @cindex phrasing slurs
 @cindex phrasing marks
@@ -2238,8 +1590,8 @@ You cannot have simultaneous phrasing slurs.
 Program reference: @internalsref{PhrasingSlur}.
 
 
-@node Laissez vibrer ties
-@subsection Laissez vibrer ties
+@anchor{Laissez vibrer ties}
+@unnumberedsubsubsec Laissez vibrer ties
 @cindex Laissez vibrer
 @cindex Ties, laissez vibrer
 
@@ -2261,8 +1613,8 @@ Example files:
 @lsr{connecting,laissez-vibrer-ties.ly}
 
 
-@node Automatic beams
-@subsection Automatic beams
+@anchor{Automatic beams}
+@unnumberedsubsubsec Automatic beams
 
 LilyPond inserts beams automatically
 
@@ -2288,8 +1640,8 @@ from being beamed
 Program reference: @internalsref{Beam}.
 
 
-@node Manual beams
-@subsection Manual beams
+@anchor{Manual beams}
+@unnumberedsubsubsec Manual beams
 
 @cindex beams, manual
 @funindex ]
@@ -2372,8 +1724,8 @@ Beams do not avoid collisions with symbols around the notes, such as
 texts and accidentals.
 
 
-@node Grace notes
-@subsection Grace notes
+@anchor{Grace notes}
+@unnumberedsubsubsec Grace notes
 
 @funindex \grace
 @cindex ornaments
@@ -2599,8 +1951,8 @@ notes and rhythms.
 @end menu
 
 
-@node Articulations
-@subsection Articulations
+@anchor{Articulations}
+@unnumberedsubsubsec Articulations
 
 @cindex Articulations
 @cindex scripts
@@ -2699,8 +2051,8 @@ These signs appear in the printed output but have no effect on the
 MIDI rendering of the music.
 
 
-@node Fingering instructions
-@subsection Fingering instructions
+@anchor{Fingering instructions}
+@unnumberedsubsubsec Fingering instructions
 
 @cindex fingering
 @cindex finger change
@@ -2757,8 +2109,8 @@ Program reference: @internalsref{Fingering}.
 Examples: @lsr{expressive,fingering-chords.ly}
 
 
-@node Dynamics
-@subsection Dynamics
+@anchor{Dynamics}
+@unnumberedsubsubsec Dynamics
 
 @cindex Dynamics
 @funindex \pppp
@@ -2925,8 +2277,8 @@ Vertical positioning of these symbols is handled by
 @internalsref{DynamicLineSpanner}.
 
 
-@node Breath marks
-@subsection Breath marks
+@anchor{Breath marks}
+@unnumberedsubsubsec Breath marks
 
 Breath marks are entered using @code{\breathe}
 
@@ -2955,8 +2307,8 @@ Program reference: @internalsref{BreathingSign}.
 Examples: @lsr{expressive,breathing-sign.ly}
 
 
-@node Trills
-@subsection Trills
+@anchor{Trills}
+@unnumberedsubsubsec Trills
 
 Short trills are printed like normal articulation; see @ref{Articulations}.
 
@@ -2998,8 +2350,8 @@ is printed as a stemless note head in parentheses.
 Program reference: @internalsref{TrillSpanner}.
 
 
-@node Glissando
-@subsection Glissando
+@anchor{Glissando}
+@unnumberedsubsubsec Glissando
 
 @cindex Glissando
 @funindex \glissando
@@ -3041,8 +2393,8 @@ Example files:
 Printing text over the line (such as @emph{gliss.}) is not supported.
 
 
-@node Arpeggio
-@subsection Arpeggio
+@anchor{Arpeggio}
+@unnumberedsubsubsec Arpeggio
 
 @cindex Arpeggio
 @cindex broken chord
@@ -3119,8 +2471,8 @@ It is not possible to mix connected arpeggios and unconnected
 arpeggios in one @internalsref{PianoStaff} at the same point in time.
 
 
-@node Falls and doits
-@subsection Falls and doits
+@anchor{Falls and doits}
+@unnumberedsubsubsec Falls and doits
 
 Falls and doits can be added to notes using the @code{\bendAfter}
 command,
@@ -3149,8 +2501,8 @@ for repetitions.
 @end menu
 
 
-@node Repeat types
-@subsection Repeat types
+@anchor{Repeat types}
+@unnumberedsubsubsec Repeat types
 
 @cindex repeats
 
@@ -3180,8 +2532,8 @@ declared within a @code{Voice} context.
 @end table
 
 
-@node Repeat syntax
-@subsection Repeat syntax
+@anchor{Repeat syntax}
+@unnumberedsubsubsec Repeat syntax
 
 @cindex volta
 @cindex prima volta
@@ -3268,7 +2620,7 @@ bracket only lasts one measure, which is a duration of 3/4.
 \relative c''{
   \time 3/4
   c c c
-  \set Staff.voltaSpannerDuration = #(ly:make-moment 3 4)
+  \set Score.voltaSpannerDuration = #(ly:make-moment 3 4)
   \repeat volta 5 { d d d }
   \alternative { { e e e f f f }
   { g g g } }
@@ -3285,6 +2637,11 @@ see @ref{Bar lines} for more information.
 
 @seealso
 
+Program reference: @internalsref{VoltaBracket},
+@internalsref{RepeatedMusic},
+@internalsref{VoltaRepeatedMusic}, and
+@internalsref{UnfoldedRepeatedMusic}.
+
 Examples:
 
 Brackets for the repeat are normally only printed over the topmost
@@ -3319,8 +2676,8 @@ example, by setting @code{Score.measurePosition} or entering
 @code{\partial}.  Similarly, slurs or ties are also not repeated.
 
 
-@node Repeats and MIDI
-@subsection Repeats and MIDI
+@anchor{Repeats and MIDI}
+@unnumberedsubsubsec Repeats and MIDI
 
 @cindex expanding repeats
 @funindex \unfoldRepeats
@@ -3360,8 +2717,8 @@ percent repeats).  For example,
 @end example
 
 
-@node Manual repeat commands
-@subsection Manual repeat commands
+@anchor{Manual repeat commands}
+@unnumberedsubsubsec Manual repeat commands
 
 @funindex repeatCommands
 
@@ -3402,8 +2759,8 @@ Program reference: @internalsref{VoltaBracket},
 @internalsref{UnfoldedRepeatedMusic}.
 
 
-@node Tremolo repeats
-@subsection Tremolo repeats
+@anchor{Tremolo repeats}
+@unnumberedsubsubsec Tremolo repeats
 
 @cindex tremolo beams
 
@@ -3434,8 +2791,8 @@ In this manual: @ref{Tremolo subdivisions}, @ref{Repeats}.
 Program reference: @internalsref{Beam}, @internalsref{StemTremolo}.
 
 
-@node Tremolo subdivisions
-@subsection Tremolo subdivisions
+@anchor{Tremolo subdivisions}
+@unnumberedsubsubsec Tremolo subdivisions
 
 @cindex tremolo marks
 @funindex tremoloFlags
@@ -3464,8 +2821,8 @@ In this manual: @ref{Tremolo repeats}.
 Elsewhere: @internalsref{StemTremolo}.
 
 
-@node Measure repeats
-@subsection Measure repeats
+@anchor{Measure repeats}
+@unnumberedsubsubsec Measure repeats
 
 @cindex percent repeats
 @cindex measure repeats