]> 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 e17f3e480f4a9b3f17fc47eade0c293194d5349e..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: @inputfileref{input/@/test,smart@/-transpose@/.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
@@ -941,7 +472,7 @@ is off.
 
 If you want to allow line breaking on the bar lines where
 @internalsref{Completion_heads_engraver} splits notes, you must
-also remove @internalsref{Forbid_line_breaks_engraver}.
+also remove @internalsref{Forbid_line_break_engraver}.
 
 
 @refbugs
@@ -975,8 +506,8 @@ one voice on the same staff.
 @end menu
 
 
-@node Chords
-@subsection Chords
+@anchor{Chords}
+@unnumberedsubsubsec Chords
 
 @cindex Chords
 
@@ -991,8 +522,10 @@ articulations, just like simple notes
 For more information about chords, see @ref{Chord names}.
 
 
-@node Stems
-@subsection Stems
+@c  I don't like having this here, but I can't think of
+@c  anywhere else to put it.  :(   -gp
+@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
@@ -1021,8 +554,8 @@ a4 b c b
 @end lilypond
 
 
-@node Basic polyphony
-@subsection Basic polyphony
+@anchor{Basic polyphony}
+@unnumberedsubsubsec Basic polyphony
 
 @cindex polyphony
 
@@ -1054,8 +587,9 @@ These voices are all separate from the voice that contains the notes just
 outside the @code{<< \\ >>} construct.  This should be noted when making
 changes at the voice level.  This also means that slurs and ties cannot go
 into or out of a @code{<< \\ >>} construct.  Conversely, parallel voices
-from separate @code{<< \\ >>} constructs on the same staff are the the
-same voice.  Here is the same example, with different noteheads for each
+from separate @code{<< \\ >>} constructs on the same staff are the
+same voice.  Here is the same example, with different noteheads and
+colors for each
 voice.  Note that the change to the note-head style in the main voice does
 not affect
 the inside of the @code{<< \\ >>} constructs.  Also, the change to the
@@ -1068,16 +602,20 @@ voice in the first @code{<< \\ >>} construct is effective in the second
 @lilypond[quote,verbatim,fragment]
 \new Staff \relative c' {
   \override NoteHead #'style = #'cross
+  \override NoteHead #'color = #red
   c16 d e f
   <<
     { g4 f e } \\
     { \override NoteHead #'style = #'triangle
+      \override NoteHead #'color = #blue
     r8 e4 d c8 ~ }
   >> |
   <<
     { d2 e2 } \\
     { c8 b16 a b8 g ~ g2 } \\
-    { \override NoteHead #'style = #'slash s4 b4 c2 }
+    { \override NoteHead #'style = #'slash 
+      \override NoteHead #'color = #green
+      s4 b4 c2 }
   >>
 }
 @end lilypond
@@ -1095,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
@@ -1128,12 +666,13 @@ The command @code{\oneVoice} will revert back to the normal setting.
 An expression that appears directly inside a @code{<< >>} belongs to
 the main voice.  This is useful when extra voices appear while the main
 voice is playing.  Here is a more correct rendition of the example from
-the previous section.  The crossed noteheads demonstrate that the main
+the previous section.  The crossed colored noteheads demonstrate that the main
 melody is now in a single voice context.
 
 @lilypond[quote,ragged-right,verbatim]
 \new Staff \relative c' {
   \override NoteHead #'style = #'cross
+  \override NoteHead #'color = #red
   c16 d e f
   \voiceOne
   <<
@@ -1213,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
@@ -1360,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
@@ -1612,7 +972,7 @@ measure is subdivided in 2, 2, 2 and 3.  This is passed to
 Program reference: @internalsref{TimeSignature}, and
 @internalsref{Timing_translator}.
 
-Examples: @inputfileref{input/@/test,compound@/-time@/.ly}.
+Examples: @lsr{contemporary,compound-time-signature.ly}.
 
 
 @refbugs
@@ -1621,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
@@ -1676,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
@@ -1761,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
@@ -1798,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
@@ -1865,7 +1225,7 @@ The bar lines at the start of each system are
 @internalsref{SystemStartBar}, @internalsref{SystemStartBrace}, and
 @internalsref{SystemStartBracket}.  Only one of these types is created
 in every context, and that type is determined by the property
-@internalsref{systemStartDelimiter}.
+@code{systemStartDelimiter}.
 
 
 @commonprop
@@ -1873,7 +1233,7 @@ in every context, and that type is determined by the property
 System start delimiters may be deeply nested,
 
 @lilypond[quote,ragged-right,verbatim]
-\new StaffGroup 
+\new StaffGroup
 \relative <<
   \set StaffGroup.systemStartDelimiterHierarchy
     = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
@@ -1886,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
 
@@ -1898,8 +1258,8 @@ LilyPond, these lines are drawn using a separate layout object called
 
 The staff symbol may be tuned in the number, thickness and distance
 of lines, using properties.  This is demonstrated in the example files
-@inputfileref{input/@/test,staff@/-lines@/.ly},
-@inputfileref{input/@/test,staff@/-size@/.ly}.
+@lsr{staff,changing-the-number-of-lines-in-a-staff.ly} and
+@lsr{staff,changing-the-staff-size.ly}.
 
 In addition, staves may be started and stopped at will. This is done
 with @code{\startStaff} and @code{\stopStaff}.
@@ -1930,14 +1290,11 @@ sections. An example is shown here
 
 Program reference: @internalsref{StaffSymbol}.
 
-Examples: @inputfileref{input/@/test,staff@/-lines@/.ly},
-@inputfileref{input/@/test@/,ossia.ly},
-@inputfileref{input/@/test,staff@/-size@/.ly},
-@lsr{staff,staff-line-positions.ly}
+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
@@ -2016,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 ~
@@ -2085,7 +1442,7 @@ for example, to tie a tremolo to a chord. For example,
 @lilypond[fragment,verbatim,relative=1,ragged-right,quote]
 \set tieWaitForNote = ##t
 \grace { c16[~ e~ g]~ } <c, e g>2
-\repeat "tremolo" 8 { c32~ c'~ } <c c,>1
+\repeat tremolo 8 { c32~ c'~ } <c c,>1
 e8~ c~ a~ f~ <e' c a f>2
 @end lilypond
 
@@ -2134,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
 
@@ -2192,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
@@ -2233,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
 
@@ -2256,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
 
@@ -2283,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 ]
@@ -2307,11 +1664,13 @@ and end point with @code{[} and @code{]}
 @funindex stemLeftBeamCount
 @funindex stemRightBeamCount
 
-Normally, beaming patterns within a beam are determined automatically.
-If necessary, the properties @code{stemLeftBeamCount} and
-@code{stemRightBeamCount} can be used to override the defaults.  If
+
+LilyPond can automatically determine beaming patterns within a beam,
+but this automatic behavior can sometimes produce odd results;
+therefore the @code{stemLeftBeamCount} and @code{stemRightBeamCount} properties can
+be used to override the defaults.  If
 either property is set, its value will be used only once, and then it
-is erased
+is erased.
 
 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
 {
@@ -2350,22 +1709,23 @@ behavior can be changed by setting @code{breakable}.
 @cindex kneed beams
 @cindex auto-knee-gap
 
-
-@refbugs
-
 Kneed beams are inserted automatically when a large gap is detected
 between the note heads.  This behavior can be tuned through the
 @code{auto-knee-gap} object.
 
+
+@refbugs
+
 Automatically kneed cross-staff beams cannot be used together with
 hidden staves.  See @ref{Hiding staves}.
 
+@c Is this still true with skyline spacing stuff? -J.Mandereau
 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
@@ -2399,6 +1759,8 @@ c4 \grace c16 c4
 Unlike @code{\acciaccatura} and @code{\appoggiatura}, the
 @code{\grace} command does not start a slur.
 
+@cindex timing, internal
+
 Internally, timing for grace notes is done using a second, @q{grace}
 timing.  Every point in time consists of two rational numbers: one
 denotes the logical time, one denotes the grace timing.  The above
@@ -2470,9 +1832,9 @@ The same effect can be achieved manually by doing
 By adjusting the duration of the skip note (here it is a half-note),
 the space between the main-note and the grace is adjusted.
 
-A @code{\grace} section will introduce special typesetting settings,
+A @code{\grace} music expression will introduce special typesetting settings,
 for example, to produce smaller type, and set directions.  Hence, when
-introducing layout tweaks, they should be inside the grace section,
+introducing layout tweaks, they should be inside the grace expression,
 for example,
 
 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
@@ -2487,12 +1849,12 @@ for example,
 @end lilypond
 
 @noindent
-The overrides should also be reverted inside the grace section.
+The overrides should also be reverted inside the grace expression.
 
-The layout of grace sections can be changed throughout the music using
-the function @code{add-grace-property}.  The following example
-undefines the @code{Stem} direction for this grace, so
-that stems do not always point up.
+The layout of grace expressions can be changed throughout the music
+using the function @code{add-grace-property}.  The following example
+undefines the @code{Stem} direction for this grace, so that stems do not
+always point up.
 
 @example
 \new Staff @{
@@ -2543,7 +1905,7 @@ Program reference: @internalsref{GraceMusic}.
 
 @refbugs
 
-A score that starts with a @code{\grace} section needs an explicit
+A score that starts with a @code{\grace} expression needs an explicit
 @code{\new Voice} declaration, otherwise the main note and the grace
 note end up on different staves.
 
@@ -2560,9 +1922,10 @@ care when you mix staves with grace notes and staves without, for example,
 This can be remedied by inserting grace skips of the corresponding
 durations in the other staves. For the above example
 
-@example
-\new Staff @{ c4 \bar "|:" \grace s16 d4 @}
-@end example
+@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
+<< \new Staff { e4 \bar "|:" \grace c16 d4 }
+   \new Staff { c4 \bar "|:" \grace s16 d4 } >>
+@end lilypond
 
 Grace sections should only be used within sequential music
 expressions.  Nesting or juxtaposing grace sections is not supported,
@@ -2588,8 +1951,8 @@ notes and rhythms.
 @end menu
 
 
-@node Articulations
-@subsection Articulations
+@anchor{Articulations}
+@unnumberedsubsubsec Articulations
 
 @cindex Articulations
 @cindex scripts
@@ -2637,6 +2000,7 @@ c\fermata c^\fermata c_\fermata
 @cindex organ pedal marks
 @cindex turn
 @cindex open
+@cindex stopped
 @cindex flageolet
 @cindex reverseturn
 @cindex trill
@@ -2646,7 +2010,6 @@ c\fermata c^\fermata c_\fermata
 @cindex prallmordent
 @cindex prall, up
 @cindex prall, down
-@cindex mordent
 @cindex thumb marking
 @cindex segno
 @cindex coda
@@ -2688,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
@@ -2746,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
@@ -2914,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}
 
@@ -2944,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}.
 
@@ -2969,6 +2332,7 @@ typeset with the command @code{pitchedTrill},
 f\stopTrillSpan
 @end lilypond
 
+@noindent
 The first argument is the main note.  The pitch of the second
 is printed as a stemless note head in parentheses.
 
@@ -2986,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
@@ -3003,6 +2367,19 @@ c2\glissando c,
 @end lilypond
 
 
+@commonprop
+
+@lilypond[quote,ragged-right,verbatim]
+I = \once \override NoteColumn #'ignore-collision = ##t
+
+\relative <<
+  { \oneVoice \stemDown f2 \glissando \stemNeutral a } \\
+  { \oneVoice \I c2 \glissando \I d, }
+>>
+@end lilypond
+
+
+
 @seealso
 
 Program reference: @internalsref{Glissando}.
@@ -3011,14 +2388,13 @@ Example files:
 @lsr{expressive,glissando.ly}, @lsr{expressive,line-styles.ly}
 
 
-
 @refbugs
 
 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
@@ -3066,6 +2442,8 @@ in both staves and set
 >>
 @end lilypond
 
+@c TODO: cross-voice arpeggio example?
+@c such an example is already in LSR -J.Mandereau
 
 @refcommands
 
@@ -3093,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,
@@ -3123,11 +2501,10 @@ for repetitions.
 @end menu
 
 
-@node Repeat types
-@subsection Repeat types
+@anchor{Repeat types}
+@unnumberedsubsubsec Repeat types
 
 @cindex repeats
-@funindex \repeat
 
 The following types of repetition are supported
 
@@ -3155,12 +2532,13 @@ 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
 @cindex seconda volta
+@funindex \repeat
 
 LilyPond has one syntactic construct for specifying different types of
 repeats.  The syntax is
@@ -3211,6 +2589,19 @@ Repeats with upbeats may be created.
 }
 @end lilypond
 
+@noindent
+or
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+\new Staff {
+  \partial 4 
+  \repeat volta 4 { e | c2 d2 | e2 f2 | }
+  \alternative { { \partial 4*3 g4 g g } { a a a a | b2. } }
+}
+@end lilypond
+
+
+
 @funindex \repeatTie
 
 Ties may be added to a second ending,
@@ -3229,21 +2620,34 @@ 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)
-  \repeat "volta" 5 { d d d }
+  \set Score.voltaSpannerDuration = #(ly:make-moment 3 4)
+  \repeat volta 5 { d d d }
   \alternative { { e e e f f f }
   { g g g } }
 }
 @end lilypond
 
+If you want to start a repeat at the beginning of a line and have a
+double bar at the end of the previous line, use
+@example
+@dots{} \bar "||:" \break 
+\repeat volta 2 @{ @dots{} 
+@end example
+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
-staff.  This can be adjusted by setting the @code{voltaOnThisStaff}
-property; see
+staff.  This can be adjusted by moving @code{Volta_engraver} to the
+Staff context where you want the brackets to appear;
+see @ref{Modifying context plug-ins} and
 
 @lsr{repeats,volta@/-multi@/-staff@/.ly}.
 
@@ -3271,11 +2675,9 @@ so after a repeat timing information must be reset by hand; for
 example, by setting @code{Score.measurePosition} or entering
 @code{\partial}.  Similarly, slurs or ties are also not repeated.
 
-Volta brackets are not vertically aligned.
-
 
-@node Repeats and MIDI
-@subsection Repeats and MIDI
+@anchor{Repeats and MIDI}
+@unnumberedsubsubsec Repeats and MIDI
 
 @cindex expanding repeats
 @funindex \unfoldRepeats
@@ -3315,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
 
@@ -3353,13 +2755,12 @@ c4 c4
 
 Program reference: @internalsref{VoltaBracket},
 @internalsref{RepeatedMusic},
-@internalsref{VoltaRepeatedMusic},
-@internalsref{UnfoldedRepeatedMusic}, and
-@internalsref{FoldedRepeatedMusic}.
+@internalsref{VoltaRepeatedMusic}, and
+@internalsref{UnfoldedRepeatedMusic}.
 
 
-@node Tremolo repeats
-@subsection Tremolo repeats
+@anchor{Tremolo repeats}
+@unnumberedsubsubsec Tremolo repeats
 
 @cindex tremolo beams
 
@@ -3367,16 +2768,16 @@ To place tremolo marks between notes, use @code{\repeat} with tremolo
 style
 @lilypond[quote,verbatim,ragged-right]
 \new Voice \relative c' {
-  \repeat "tremolo" 8 { c16 d16 }
-  \repeat "tremolo" 4 { c16 d16 }
-  \repeat "tremolo" 2 { c16 d16 }
+  \repeat tremolo 8 { c16 d16 }
+  \repeat tremolo 4 { c16 d16 }
+  \repeat tremolo 2 { c16 d16 }
 }
 @end lilypond
 
 Tremolo marks can also be put on a single note.  In this case, the
 note should not be surrounded by braces.
 @lilypond[quote,verbatim,ragged-right]
-\repeat "tremolo" 4 c'16
+\repeat tremolo 4 c'16
 @end lilypond
 
 Similar output is obtained using the tremolo subdivision, described in
@@ -3390,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
@@ -3420,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
@@ -3434,8 +2835,8 @@ Percent repeats must be declared within a @code{Voice} context.
 
 @lilypond[quote,verbatim,ragged-right]
 \new Voice \relative c' {
-  \repeat "percent" 4 { c4 }
-  \repeat "percent" 2 { c2 es2 f4 fis4 g4 c4 }
+  \repeat percent 4 { c4 }
+  \repeat percent 2 { c2 es2 f4 fis4 g4 c4 }
 }
 @end lilypond
 
@@ -3445,7 +2846,7 @@ on the @code{countPercentRepeats} property,
 @lilypond[relative=2,fragment,quote,verbatim,ragged-right]
 \new Voice {
 \set countPercentRepeats = ##t
-  \repeat "percent" 4 { c1 }
+  \repeat percent 4 { c1 }
 }
 @end lilypond