]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/rhythms.itely
Merge master into nested-bookparts
[lilypond.git] / Documentation / user / rhythms.itely
index a6b736c6651c639645a3eab7504a20084be74a18..c97d7140621b097853f48c9e256aa23131f22023 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.38"
+@c \version "2.11.61"
 
 @ignore
 GDP TODO list
@@ -59,7 +59,7 @@ This section discusses rhythms, rests, durations, beaming and bars.
 @end menu
 
 @node Durations
-@subsubsection Durations
+@unnumberedsubsubsec Durations
 
 @cindex durations, of notes
 @cindex note durations
@@ -139,7 +139,7 @@ proportional notation, see @ref{Proportional notation}.
 Dots are normally moved up to avoid staff lines, except in
 polyphonic situations.  Predefined commands are available to
 force a particular direction manually, for details
-see @ref{Controlling direction and placement}.
+see @ref{Direction and placement}.
 
 @predefined
 
@@ -183,7 +183,7 @@ rests from 128th to maxima (8 x whole) may be printed.
 
 
 @node Tuplets
-@subsubsection Tuplets
+@unnumberedsubsubsec Tuplets
 
 @cindex tuplets
 @cindex triplets
@@ -214,7 +214,7 @@ c4 c \times 2/3 { b4 a g }
 
 The automatic placement of the tuplet bracket above or below the
 notes may be overridden manually with predefined commands, for
-details see @ref{Controlling direction and placement}.
+details see @ref{Direction and placement}.
 
 Tuplets may be nested:
 
@@ -267,7 +267,7 @@ Learning Manual: @rlearning{Tweaking methods}.
 Notation Reference:
 @ref{Time administration},
 @ref{Scaling durations},
-@ref{Objects connected to the input},
+@ref{The tweak command},
 @ref{Polymetric notation}.
 
 Snippets:
@@ -287,7 +287,7 @@ placed within tuplet brackets.
 
 
 @node Scaling durations
-@subsubsection Scaling durations
+@unnumberedsubsubsec Scaling durations
 
 @cindex scaling durations
 @cindex durations, scaling
@@ -353,7 +353,7 @@ notation, see @ref{Polymetric notation}.
 
 Notation Reference:
 @ref{Tuplets},
-@ref{Skips},
+@ref{Invisible rests},
 @ref{Polymetric notation}.
 
 Snippets:
@@ -361,7 +361,7 @@ Snippets:
 
 
 @node Ties
-@subsubsection Ties
+@unnumberedsubsubsec Ties
 
 @cindex tie
 @funindex ~
@@ -449,7 +449,7 @@ be entered as follows:
 
 The vertical placement of ties may be controlled, see
 Predefined commands, or for details, see
-@ref{Controlling direction and placement}.
+@ref{Direction and placement}.
 
 @cindex ties, appearance
 @funindex \tieDotted
@@ -516,12 +516,12 @@ Rests are entered as part of the music in music expressions.
 
 @menu
 * Rests::
-* Skips::
+* Invisible rests::
 * Full measure rests::
 @end menu
 
 @node Rests
-@subsubsection Rests
+@unnumberedsubsubsec Rests
 @cindex rest
 @cindex rest, entering durations
 @cindex maxima
@@ -551,7 +551,7 @@ commands shown:
   r\longa
   % Print a breve rest
   r\breve
-  r1 r2 r4 r8 r16 r32 r64
+  r1 r2 r4 r8 r16 r32 r64 r128
 }
 @end lilypond
 
@@ -601,14 +601,15 @@ longest and shortest), but the number of glyphs is limited: there
 are rests from 128th to maxima (8 x whole).
 
 
-@node Skips
-@subsubsection Skips
+@node Invisible rests
+@unnumberedsubsubsec Invisible rests
 
 @cindex skip
 @cindex invisible rest
 @cindex rest, invisible
 @cindex spacer note
 @funindex s
+@funindex \skip
 
 An invisible rest (also called a @q{spacer rest}) can be entered
 like a note with the note name@tie{}@code{s}:
@@ -663,7 +664,7 @@ Internals Reference: @rinternals{SkipMusic}
 
 
 @node Full measure rests
-@subsubsection Full measure rests
+@unnumberedsubsubsec Full measure rests
 
 @cindex multi-measure rests
 @cindex full-measure rests
@@ -676,7 +677,7 @@ Rests for one or more full measures are entered like notes with
 the note name uppercase @code{R}:
 
 @lilypond[quote,fragment,verbatim,relative=2]
-% Rest bars contracted to single bar
+% Rest measures contracted to single measure
 \compressFullBarRests
 R1*4
 R1*24
@@ -773,6 +774,8 @@ R1^"wrong"
 R1^"right"
 @end lilypond
 
+When a multi-measure rest immediately follows a @code{\partial}
+setting, resulting bar-check warnings may not be displayed.
 
 @predefined
 @code{\textLengthOn},
@@ -796,40 +799,13 @@ R1^"right"
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {positioning-multi--measure-rests.ly}
 
-@c TODO -- convert to snippet
-Markups attached to a multi-measure rest will be centered above or
-below it.  Long markups attached to multi-measure rests do not cause
-the measure to expand. To expand a multi-measure rest to fit the markup,
-use a spacer rest with an attached markup before the multi-measure rest:
-
-@c -- music is somewhat compressed vertically.  I thought it
-@c    was good because the emphasis is not on the content
-@c    of the markup, but on the place the markup was attached -cs
-@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
-\compressFullBarRests
-\textLengthOn
-s1*0^\markup { [MAJOR GENERAL] }
-R1*19
-s1*0_\markup { \italic { Cue: ... it is yours } }
-s1*0^\markup { A }
-R1*30^\markup { [MABEL] }
-\textLengthOff
-c4^\markup { CHORUS } d f c
-@end lilypond
-
-@noindent
-Note that the spacer rest causes a bar to be inserted.
-Text attached to a spacer rest in this way is left-aligned to the
-position where the note would be placed in the measure, but if the
-measure length is determined by the length of the text, the text will
-appear to be centered.
-
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{multi--measure-rest-markup.ly}
 
 @seealso
 
 Music Glossary:
-@rglos{multi-measure rest},
-@rglos{church rests}.
+@rglos{multi-measure rest}.
 
 Notation Reference:
 @ref{Durations},
@@ -876,7 +852,7 @@ Multi-measure rests do not take part in rest collisions.
 @end menu
 
 @node Time signature
-@subsubsection Time signature
+@unnumberedsubsubsec Time signature
 
 @cindex time signature
 @cindex meter
@@ -895,7 +871,7 @@ Time signatures are printed at the beginning of a piece
 and whenever the time signature changes.  If a change takes place
 at the end of a line a warning time signature sign is printed
 there.  This default behavior may be changed, see
-@ref{Controlling visibility of objects}.
+@ref{Controlling visibility of objects}.
 
 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
 \time 2/4
@@ -911,8 +887,8 @@ c c c c
 @funindex \defaultTimeSignature
 @cindex time signature style
 
-The symbol that is printed in 2/2 and 4/4 time can be customized
-to use a numeric style:
+The time signature symbol that is used in 2/2 and 4/4 time can be
+changed to a numeric style:
 
 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
 % Default style
@@ -929,8 +905,8 @@ to use a numeric style:
 @end lilypond
 
 
-Ancient time signatures are covered in
-@ref{Ancient time signatures}.
+Mensural time signatures are covered in
+@ref{Mensural time signatures}.
 
 @predefined
 
@@ -947,11 +923,27 @@ context, which is normally aliased to @code{Score}.  Changing the
 value of @code{timeSignatureFraction} causes the new time
 signature symbol to be printed without changing the other
 properties.  The property @code{measureLength} determines where
-bar lines should be inserted and, with @code{beatLength}, how
+bar lines should be inserted and, with @code{beatLength}
+and @code{beatGrouping}, how
 automatic beams should be generated.
 
-TODO Add example of using beatLength.
-@c beatLength is broken - see bug 511
+@lilypond[quote,verbatim,relative=2]
+\time 3/4 % auto beam on 1/4 note groups       
+a16 a a a a a a a a a a a a a a a
+\time 12/16 % no defined auto-beaming for this time sig
+a16 a a a a a a a a a a a a a a a
+\time 3/4
+a16 a a a a a a a a a a a a a a a
+\set Score.timeSignatureFraction = #'(12 16) %keep 3/4 beaming 
+                                             % due to beatLength
+a16 a a a a a a a a a a a a a a a
+\set Score.beatLength = #(ly:make-moment 1 8) %beam on 1/8 notes
+a16 a a a a a a a a a a a a a a a
+\set Score.beatLength = #(ly:make-moment 1 16)
+\set Score.beatGrouping = #'(3 4 2 3) %beam on 3/16, 7/16, 9/16, 12/16
+a16 a a a a a a a a a a a a a a a
+@end lilypond
+
 
 @c End of snippet
 
@@ -1002,7 +994,7 @@ Music Glossary:
 @rglos{time signature}
 
 Notation Reference:
-@ref{Ancient time signatures},
+@ref{Mensural time signatures},
 @ref{Time administration}.
 
 Snippets:
@@ -1013,14 +1005,8 @@ Internals Reference:
 @rinternals{Timing_translator}.
 
 
-@knownissues
-
-Automatic beaming does not use the measure grouping specified with
-@code{set-time-signature}.
-
-
 @node Upbeats
-@subsubsection Upbeats
+@unnumberedsubsubsec Upbeats
 
 @cindex anacrusis
 @cindex upbeat
@@ -1035,11 +1021,11 @@ Partial or pick-up measures, such as an anacrusis or upbeat, are
 entered using the @code{\partial} command, with the syntax
 
 @example
-\partial @var{duration} @emph{notes}
+\partial @var{duration} 
 @end example
 
-where @code{duration} is the rhythmic length of the @emph{notes}
-which are to be placed before the first complete measure:
+where @code{duration} is the rhythmic length of the interval
+before the start of the first complete measure:
 
 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
 \partial 4 e4 |
@@ -1067,37 +1053,26 @@ command: i.e., @code{\partial 4} is internally translated to
 
 @seealso
 
-Music Glossary: @rglos{anacrusis}
+Music Glossary: 
+@rglos{anacrusis}.
 
-Notation Reference: @ref{Grace notes}
+Notation Reference: 
+@ref{Grace notes}.
 
 Snippets:
 @rlsr{Rhythms}.
 
 Internal Reference:
-@rinternals{Timing_translator}
+@rinternals{Timing_translator}.
 
 @knownissues
 
-@cindex grace notes, in anacruses
-
-This command does not take into account grace notes at the start
-of the music.  If the pick-up starts with one or more grace
-notes, then the @code{\partial} should follow the grace note(s):
-
-@lilypond[verbatim,quote,ragged-right,relative,fragment]
-\grace f16
-\partial 4
-g4
-a2 g2
-@end lilypond
-
 The @code{\partial} command is intended to be used only at the
 beginning of a piece.  If you use it after the beginning, some
 odd warnings may occur.
 
 @node Unmetered music
-@subsubsection Unmetered music
+@unnumberedsubsubsec Unmetered music
 
 @funindex \cadenzaOn
 @funindex \cadenzaOff
@@ -1107,10 +1082,10 @@ odd warnings may occur.
 @cindex unmetered music
 
 Bar lines and bar numbers are calculated automatically.  For
-unmetered music (cadenzas, for example), this is not desirable.
-To turn off automatic bar lines and bar numbers, use the command
-@code{\cadenzaOn}, and use @code{\cadenzaOff} to turn them on
-again.
+unmetered music (some cadenzas, for example), this is not desirable.
+To turn off automatic calculation of bar lines and bar numbers,
+use the command @code{\cadenzaOn}, and use @code{\cadenzaOff} 
+to turn them on again.
 
 @lilypond[verbatim,quote,ragged-right,relative=2,fragment]
 c4 d e d
@@ -1143,10 +1118,10 @@ d4 e d c
 @seealso
 
 Music Glossary:
-@rglos{cadenza}
+@rglos{cadenza}.
 
 Notation Reference:
-@ref{Controlling visibility of objects}
+@c ref{Controlling visibility of objects}.
 
 Snippets:
 @rlsr{Rhythms}.
@@ -1166,39 +1141,15 @@ to indicate where breaks can occur.
 
 
 @node Polymetric notation
-@subsubsection Polymetric notation
+@unnumberedsubsubsec Polymetric notation
 
 @cindex double time signatures
 @cindex signatures, polymetric
 @cindex polymetric signatures
 @cindex meter, polymetric
 
-@strong{Alternating time signatures}
-
-Regularly alternating double time signatures are not supported
-explicitly, but they can be faked.  In the next example, the
-double time signature is created with markup text, while the
-real time signature is set in the usual way with @code{\time}.
-
-@lilypond[verbatim,ragged-right]
-% Create 9/8 split into 2/4 + 5/8
-tsMarkup = \markup {
-  \override #'(baseline-skip . 2) \number {
-    \column { "2" "4" }
-    \vcenter "+"
-    \bracket \column { "5" "8" }
-  }
-}
-
-{
-  \override Staff.TimeSignature #'stencil =
-    #ly:text-interface::print
-  \override Staff.TimeSignature #'text = #tsMarkup
-  \time 9/8
-  c'2 \bar ":" c'4 c'4.
-  c'2 \bar ":" c'4 c'4.
-}
-@end lilypond
+Polymetric notation is supported, either explicitly or through
+clever use of markup features.
 
 @strong{Staves with different time signatures, equal measure lengths}
 
@@ -1206,7 +1157,7 @@ This notation can be created by setting a common time signature
 for each staff but replacing the symbol manually by setting
 @code{timeSignatureFraction} to the desired fraction and scaling
 the printed durations in each staff to the common time
-signature.  This done with @code{\scaleDurations}, which
+signature.  This is done with @code{\scaleDurations}, which
 is used in a similar way to @code{\times}, but does not create
 a tuplet bracket, see @ref{Scaling durations}.
 
@@ -1283,6 +1234,11 @@ moving the @code{Timing_translator} to the @code{Staff} context.
 >>
 @end lilypond
 
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{compound-time-signatures.ly}
+
 
 @seealso
 
@@ -1295,29 +1251,30 @@ Notation Reference: @ref{Scaling durations}
 
 Snippets:
 @rlsr{Rhythms}.
-@c Is this still permitted?
-@c @lsr{contemporary,compound-time-signature}
 
 Internals Reference:
 @rinternals{TimeSignature},
-@rinternals{Timing-translator},
+@rinternals{Timing_translator},
 @rinternals{Staff}.
 
 @knownissues
 
-When using different time signatures in parallel, the spacing is
-aligned vertically, but bar lines distort the regular spacing.
-
+When using different time signatures in parallel, notes
+at the same moment will be be placed at the same horizontal
+location.  However, the bar lines in the different staves
+will cause the note spacing to be less regular in each of the
+individual staves than would be normal without the different
+time signatures.
 
 @node Automatic note splitting
-@subsubsection Automatic note splitting
+@unnumberedsubsubsec Automatic note splitting
 
 @cindex notes, splitting
 @cindex splitting notes
 
 Long notes which overrun bar lines can be converted automatically
 to tied notes.  This is done by replacing the
-@code{Note_heads_engraver} by the
+@code{Note_heads_engraver} with the
 @code{Completion_heads_engraver}.  In the following
 example, notes crossing the bar lines are split and tied.
 
@@ -1335,11 +1292,6 @@ inserts ties.  One of its uses is to debug complex scores: if the
 measures are not entirely filled, then the ties show exactly how
 much each measure is off.
 
-To allow line breaking on the bar lines where the
-@code{Completion_heads_engraver} has inserted a split note, remove
-the @code{Forbid_line_break_engraver} too.
-
-
 @seealso
 
 Music Glossary: @rglos{tie}
@@ -1360,28 +1312,130 @@ Internals Reference:
 @knownissues
 
 Not all durations (especially those containing tuplets) can be
-represented exactly with normal notes and dots, but the engraver
-will not insert tuplets.
+represented exactly with normal notes and dots, but the 
+@code{Completion_heads_engraver} will not insert tuplets.
 
 The @code{Completion_heads_engraver} only affects notes; it does not
 split rests.
 
 
 @node Showing melody rhythms
-@subsubsection Showing melody rhythms
+@unnumberedsubsubsec Showing melody rhythms
 
 Sometimes you might want to show only the rhythm of a melody.  This
 can be done with the rhythmic staff.  All pitches of notes on such a
 staff are squashed, and the staff itself has a single line
 
-@c TODO Devise a more realistic example, perhaps with lyrics -td
 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
-\new RhythmicStaff {
-  \time 4/4
-  c4 e8 f g2 | r4 g r2 | g1 | r1 |
-}
+<<
+  \new RhythmicStaff {
+    \new Voice = "myRhythm" {
+      \time 4/4
+      c4 e8 f g2
+      r4 g g f
+      g1
+    }
+  }
+  \new Lyrics {
+    \lyricsto "myRhythm" {
+      This is my song
+      I like to sing
+    }
+  }
+>>
+@end lilypond
+
+Guitar chord charts often show the strumming rhythms.  This can
+be done with the @code{Pitch_squash_engraver} and
+@code{\improvisationOn}.
+
+@lilypond[quote,verbatim]
+<<
+  \new ChordNames {
+    \chordmode {
+      c1 f g c
+    }
+  }
+
+  \new Voice \with {
+    \consists Pitch_squash_engraver
+  } \relative c'' {
+    \improvisationOn
+    c4 c8 c c4 c8 c
+    f4 f8 f f4 f8 f
+    g4 g8 g g4 g8 g
+    c4 c8 c c4 c8 c
+  }
+>>
+@end lilypond
+
+@predefined
+@code{\improvisationOn},
+@code{\improvisationOff}.
+
+@snippets
+@c TODO -- Convert to snippet;
+@c     tag for both Rhythms and Guitar? Move to @seealso?
+
+For guitar music, it is possible to show strum rhythms, along
+with melody notes, chord names, and fret diagrams.
+
+
+@lilypond[quote,verbatim]
+\include "predefined-guitar-fretboards.ly"
+<<
+  \new ChordNames {
+    \chordmode {
+      c1 f g c
+    }
+  }
+
+  \new FretBoards {
+    \chordmode {
+      c1 f g c
+    }
+  }
+
+  
+  \new Voice \with {
+    \consists Pitch_squash_engraver
+  } \relative c'' {
+    \improvisationOn
+    c4 c8 c c4 c8 c
+    f4 f8 f f4 f8 f
+    g4 g8 g g4 g8 g
+    c4 c8 c c4 c8 c
+  }
+
+
+  \new Voice = "melody" {
+    \relative c'' {
+      \improvisationOff
+      c2 e4 e4 
+      f2. r4
+      g2. a4
+      e4 c2.
+    }
+  }
+  \new Lyrics {
+    \lyricsto "melody" {
+      This is my song.
+      I like to sing.
+    }
+  }
+>>
 @end lilypond
 
+@seealso
+
+Snippets:
+@rlsr{Rhythms}.
+
+Internals Reference:
+@rinternals{RhythmicStaff},
+@rinternals{Pitch_squash_engraver}.
 
 @node Beams
 @subsection Beams
@@ -1394,7 +1448,7 @@ staff are squashed, and the staff itself has a single line
 @end menu
 
 @node Automatic beams
-@subsubsection Automatic beams
+@unnumberedsubsubsec Automatic beams
 
 By default, beams are inserted automatically:
 
@@ -1427,9 +1481,13 @@ c4 c8 c8. c16 c8.
 c16 c8
 @end lilypond
 
+@predefined
+@code{\autoBeamOff},
+@code{\autoBeamOn}.
 
 @snippets
 
+@c TODO -- convert to snippet
 Beaming patterns may be altered with the @code{beatGrouping} property,
 
 @lilypond[quote,verbatim,relative=2,fragment,ragged-right]
@@ -1440,6 +1498,7 @@ c8[^"(2+3)" c16 c8]
 c8[^"(3+2)" c16 c8]
 @end lilypond
 
+@c TODO  convert to snippet
 The beams of consecutive 16th (or shorter) notes are, by default,
 not sub-divided.  That is, the three (or more) beams stretch
 unbroken over entire groups of notes.  This behavior can
@@ -1473,6 +1532,7 @@ For more information about @code{make-moment}, see
 @cindex break, line
 @cindex line breaks
 
+@c TODO  convert to snippet
 Line breaks are normally forbidden when beams cross bar lines.
 This behavior can be changed by setting the @code{breakable}
 property: @code{\override Beam #'breakable = ##t}.
@@ -1487,6 +1547,7 @@ c8 \repeat unfold 15 { c[ c] } c
 @cindex kneed beams
 @cindex auto-knee-gap
 
+@c TODO convert to snippet
 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} property.  A kneed beam is
@@ -1504,7 +1565,12 @@ f8 f''8 f8 f''8
 
 @seealso
 
-Notation Reference: @ref{Manual beams}, @ref{Setting automatic beam behavior}.
+Notation Reference: 
+@ref{Manual beams}, 
+@ref{Setting automatic beam behavior}.
+
+Installed Files:
+@file{scm/auto-beam.scm}.
 
 Snippets:
 @rlsr{Rhythms}.
@@ -1521,7 +1587,7 @@ Beams can collide with note heads and accidentals in other voices
 
 
 @node Setting automatic beam behavior
-@subsubsection Setting automatic beam behavior
+@unnumberedsubsubsec Setting automatic beam behavior
 
 @funindex autoBeamSettings
 @funindex (end * * * *)
@@ -1541,24 +1607,32 @@ defined in @file{scm/@/auto@/-beam@/.scm}.
 
 In order to add a rule to the list, use
 @example
-#(override-auto-beam-setting '(be p q n m) a b [context])
+#(override-auto-beam-setting 
+  '(beam-limit beam-numerator  beam-denominator
+     time-signature-numerator time-signature-denominator) 
+  moment-numerator moment-denominator [context])
 @end example
 
 @itemize
 
-@item @code{be} is either @code{begin} or @code{end}.
+@item @code{beam-limit} is the type of automatic beam limit
+defined, either @code{begin} or @code{end}.
 
-@item @code{p/q} is the duration of the note for which you want
-to add a rule.  A beam is considered to have the duration of its
-shortest note.  Set @code{p} and @code{q} to @code{'*'} to
-have this apply to any beam.
+@item @code{beam-numerator/beam-denominator} is the beam duration
+for which you want to add a rule.  A beam is considered to have 
+the duration of its shortest note.  Set @code{beam-numerator} and 
+@code{beam-denominator} to @code{'*'} to
+have this rule apply beams of any duration.
 
-@item @code{n/m} is the time signature to which
-this rule should apply.  Set @code{n} and @code{m} to @code{'*'}
-to have this apply in any time signature.
+@item @code{time-signature-numerator/time-signature-denominator}
+is the time signature to which
+this rule should apply.  Set @code{time-signature-numerator} and 
+@code{time-signature-denominator} to @code{'*'}
+to have this rule apply in any time signature.
 
-@item @code{a/b} is the position in the bar at which the beam should
-begin/end.
+@item @code{monent-numerator/moment-denominator} is the position 
+in the bar at which the beam should
+begin or end.
 
 @item @code{context} is optional, and it specifies the context at which
 the change should be made.  The default is @code{'Voice}.
@@ -1568,6 +1642,7 @@ the change should be made.  The default is @code{'Voice}.
 
 @end itemize
 
+TODO -- convert to music example
 For example, if automatic beams should always end on the first quarter
 note, use
 
@@ -1580,9 +1655,11 @@ note is a certain duration
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \time 2/4
+% end 1/16 beams for all time signatures at the 1/16 moment
 #(override-auto-beam-setting '(end 1 16 * *) 1 16)
 a16 a a a a a a a |
 a32 a a a a16 a a a a a |
+% end 1/32 beams for all time signatures at the 1/16 moment
 #(override-auto-beam-setting '(end 1 32 * *) 1 16)
 a32 a a a a16 a a a a a |
 @end lilypond
@@ -1592,6 +1669,7 @@ signatures
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \time 5/8
+% end beams of all durations in 5/8 time signature at the 2/8 moment
 #(override-auto-beam-setting '(end * * 5 8) 2 8)
 c8 c d d d
 \time 4/4
@@ -1600,21 +1678,27 @@ e8 e f f e e d d
 c8 c d d d
 @end lilypond
 
-You can also remove a previously set beam-ending rule by using
+Existing auto-beam rules are removed by using
 
 @example
-#(revert-auto-beam-setting '(be p q n m) a b [context])
+#(revert-auto-beam-setting 
+  '(beam-limit beam-numerator  beam-denominator
+     time-signature-numerator time-signature-denominator) 
+  moment-numerator moment-denominator [context])
 @end example
 
 @noindent
-@code{be}, @code{p}, @code{q}, @code{n}, @code{m}, @code{a},
-@code{b} and @code{context} are the same as above.  Note that the
-default rules are specified in @file{scm/@/auto@/-beam@/.scm},
+@code{beam-limit}, @code{beam-numerator}, @code{beam-denominator}, 
+@code{time-signature-numerator}, @code{time-signature-denominator},
+@code{moment-numerator}, @code{moment-denominator} and @code{context}
+are the same as above.  Note that the default auto-beaming rules are 
+specified in @file{scm/@/auto@/-beam@/.scm},
 so you can revert rules that you did not explicitly create.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \time 4/4
 a16 a a a a a a a a a a a a a a a
+% undo a rule ending 1/16 beams in 4/4 time at 1/4 moment
 #(revert-auto-beam-setting '(end 1 16 4 4) 1 4)
 a16 a a a a a a a a a a a a a a a
 @end lilypond
@@ -1711,9 +1795,11 @@ Snippets:
 
 
 @node Manual beams
-@subsubsection Manual beams
+@unnumberedsubsubsec Manual beams
 
 @cindex beams, manual
+@funindex ]
+@funindex [
 
 In some cases it may be necessary to override the automatic
 beaming algorithm.  For example, the autobeamer will not put beams
@@ -1736,9 +1822,6 @@ from being beamed:
 \time 2/4 c8 c\noBeam c c
 @end lilypond
 
-@funindex ]
-@funindex [
-
 @funindex stemLeftBeamCount
 @funindex stemRightBeamCount
 
@@ -1751,6 +1834,7 @@ then it is erased.  In this example, the last @code{f} is printed
 with only one beam on the left side, i.e., the eighth-note beam of
 the group as a whole.
 
+TODO -- no difference based on stemLeftBeamCount in this example
 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
 {
   f8[ r16 f g a]
@@ -1764,11 +1848,15 @@ the group as a whole.
 @snippets
 
 @node Feathered beams
-@subsubsection Feathered beams
+@unnumberedsubsubsec Feathered beams
 
 @cindex beams, feathered
 @funindex \featherDurations
 
+TODO -- this section relies on overrides.  We need to either add
+a predefined, move this to snippets (whole section), or violate
+policy for this section.
+
 Feathered beams are used to indicate that a small group of notes
 should be played at an increasing (or decreasing) tempo, without
 changing the overall tempo of the piece.  The extent of the
@@ -1789,6 +1877,8 @@ which notes are to have their durations modified.  Normally
 these would delimit the same group of notes, but this is not
 required: the two commands are independent.
 
+@c TODO -- eliminate "Talking through code"
+
 In the following example the eight 16th notes occupy exactly the
 same time as a half note, but the first note is one half as long
 as the last one, with the intermediate notes gradually
@@ -1811,6 +1901,9 @@ the last four 32nd notes are at a constant tempo.
 The spacing in the printed output represents the
 note durations only approximately, but the midi output is exact.
 
+@c TODO -- resolve whether or not midi is capitalized -- policy 
+@c  decision needed
+
 @knownissues
 
 The @code{\featherDurations} command only works with very short
@@ -1835,7 +1928,7 @@ Snippets:
 @end menu
 
 @node Bar lines
-@subsubsection Bar lines
+@unnumberedsubsubsec Bar lines
 
 @cindex bar lines
 @funindex \bar
@@ -1855,9 +1948,14 @@ double bar line is usually placed at the end of a piece:
 e4 d c2 \bar "|."
 @end lilypond
 
+@c TODO -- make this warning more clear.  What does it mean?
 @warning{An incorrect duration can lead to poorly formatted
 music.}
 
+@c TODO -- check this.  I think this behavior no longer happens
+@c with completion_heads_engraver, but it may with note_heads_engraver
+@c Make an example showing the problem
+
 It is not invalid if the final note in a measure does not
 end on the automatically entered bar line: the note is assumed
 to carry over into the next measure.  But if a long sequence
@@ -1892,11 +1990,11 @@ with the end of a measure the specified bar line is inserted at that
 point in the printed output.  Such insertions do not affect
 the calculation and placement of subsequent automatic bar lines.
 
-The simple bar line and four types of double bar line are available
+The simple bar line and five types of double bar line are available
 for manual insertion:
 
 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
-f1 \bar "|" g \bar "||" a \bar ".|" b \bar ".|." c \bar "|." d
+f1 \bar "|" g \bar "||" a \bar ".|" b \bar ".|." c \bar "|.|" d \bar "|." e
 @end lilypond
 
 @noindent
@@ -1907,10 +2005,10 @@ f1 \bar ":" g \bar "dashed" a
 @end lilypond
 
 @noindent
-and three types of repeat bar line:
+and five types of repeat bar line:
 
 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
-f1 \bar "|:" g \bar ":|:" a \bar ":|" b
+f1 \bar "|:" g \bar ":|:" a \bar ":|.|:" b \bar ":|.:" c \bar ":|" d
 @end lilypond
 
 @cindex repeats
@@ -1938,7 +2036,7 @@ c c c c
 In scores with many staves, a @code{\bar} command in one staff is
 automatically applied to all staves.  The resulting bar lines are
 connected between different staves of a @code{StaffGroup},
-@code{PianoStaff}, or @code{GrandStaff}.
+@code{InnerStaffGroup}, @code{PianoStaff}, or @code{GrandStaff}.
 
 @lilypond[quote,ragged-right,fragment,verbatim]
 <<
@@ -1971,9 +2069,10 @@ with @code{\set Timing.defaultBarType = }@var{bartype}.
 
 @seealso
 
-Notation Reference: @ref{Line breaking}, @ref{Repeats},
-@c FIXME: node name changed, but is subject to further changes.
-@c @ref{System start delimiters}.
+Notation Reference: 
+@ref{Line breaking}, 
+@ref{Repeats},
+@ref{Grouping staves}.
 
 Snippets:
 @rlsr{Rhythms}.
@@ -1985,7 +2084,7 @@ properties).
 
 
 @node Bar numbers
-@subsubsection Bar numbers
+@unnumberedsubsubsec Bar numbers
 
 @cindex bar numbers
 @cindex measure numbers
@@ -2021,7 +2120,7 @@ line visible}, @code{beginning of line visible}.  In the following
 example bar numbers are printed at all possible places:
 
 @lilypond[verbatim,ragged-right,quote,fragment,relative]
-\override Score.BarNumber #'break-visibility = ##(#t #t #t)
+\override Score.BarNumber #'break-visibility = #'#(#t #t #t)
 \set Score.currentBarNumber = #11
 \bar ""  % Permit first bar number to be printed
 c1 c c c
@@ -2037,7 +2136,7 @@ and here the bar numbers are printed every two measures
 except at the end of the line:
 
 @lilypond[verbatim,ragged-right,quote,fragment,relative]
-\override Score.BarNumber #'break-visibility = ##(#f #t #t)
+\override Score.BarNumber #'break-visibility = #'#(#f #t #t)
 \set Score.currentBarNumber = #11
 \bar ""  % Permit first bar number to be printed
 % Print a bar number every second measure
@@ -2085,7 +2184,7 @@ bar line:
 
 @lilypond[verbatim,ragged-right,quote,fragment,relative]
 \set Score.currentBarNumber = #111
-\override Score.BarNumber #'break-visibility = ##(#t #t #t)
+\override Score.BarNumber #'break-visibility = #'#(#t #t #t)
 % Increase the size of the bar number by 2
 \override Score.BarNumber #'font-size = #2
 % Print a bar number every second measure
@@ -2147,7 +2246,7 @@ c1 c c c
 
 
 @node Bar and bar number checks
-@subsubsection Bar and bar number checks
+@unnumberedsubsubsec Bar and bar number checks
 
 @cindex bar check
 @funindex barCheckSynchronize
@@ -2180,6 +2279,11 @@ especially if the score is polyphonic, so a good place to start
 correcting input is by scanning for failed bar checks and
 incorrect durations.
 
+If successive bar checks are off by the same musical interval,
+only the first warning message is displayed.  This allows the
+warning to focus on the source of the timing error.
+
+
 @funindex |
 @funindex pipeSymbol
 
@@ -2221,7 +2325,7 @@ Snippets:
 
 
 @node Rehearsal marks
-@subsubsection Rehearsal marks
+@unnumberedsubsubsec Rehearsal marks
 
 @cindex rehearsal marks
 @cindex mark, rehearsal
@@ -2323,20 +2427,22 @@ For common tweaks to the positioning of rehearsal marks, see
 
 @seealso
 
-Snippets:
-@rlsr{Rhythms}.
-
-This manual: @ref{The Feta font}, @ref{Formatting text}.
-
-Internals Reference: @rinternals{RehearsalMark}.
+This manual: 
+@ref{The Feta font}, 
+@ref{Formatting text}.
 
-Init files: @file{scm/@/translation@/-functions@/.scm} contains
+Installed Files: 
+@file{scm/@/translation@/-functions@/.scm} contains
 the definition of @code{format-mark-numbers} and
 @code{format-mark-letters}.  They can be used as inspiration for
 other formatting functions.
 
-Examples: @c @lsr{parts,rehearsal-mark-numbers.ly}
+Snippets:
+@rlsr{Rhythms}.
+
+Internals Reference: @rinternals{RehearsalMark}.
 
+Examples: @c @lsr{parts,rehearsal-mark-numbers.ly}
 
 @node Special rhythmic concerns
 @subsection Special rhythmic concerns
@@ -2349,7 +2455,7 @@ Examples: @c @lsr{parts,rehearsal-mark-numbers.ly}
 @end menu
 
 @node Grace notes
-@subsubsection Grace notes
+@unnumberedsubsubsec Grace notes
 
 @funindex \grace
 @cindex ornaments
@@ -2357,42 +2463,35 @@ Examples: @c @lsr{parts,rehearsal-mark-numbers.ly}
 @cindex appoggiatura
 @cindex acciaccatura
 
-Grace notes are ornaments that are written out. They are made with
-the @code{\grace} command.  By prefixing this keyword to a music
-expression, a new one is formed, which will be printed in a
-smaller font and takes up no logical time in a measure.
+Grace notes are ornaments that are written out. Grace notes
+are printed in a smaller font and take up no logical time 
+in a measure.
 
 @lilypond[quote,ragged-right,relative=2,verbatim,fragment]
 c4 \grace c16 c4
-\grace { c16[ d16] } c2 c4
+\grace { c16[ d16] } c2
 @end lilypond
 
-Two special forms of the @code{\grace} command exist.
-An @emph{acciaccatura}, which should be played as very short,
-is denoted by a slurred small note with a slashed stem.  The
-@emph{appoggiatura}, a grace note that takes a fixed fraction of the
-main note, is denoted as a slurred note in small print without
-a slash.  They are entered with the commands @code{\acciaccatura}
-and @code{\appoggiatura}, as demonstrated in the following
-example:
+Lilypond also supports two special types of grace notes, the 
+@emph{acciaccatura}--an unmeasured grace note indicated by a slurred 
+small note with a slashed stem--and the @emph{appoggiatura}, which 
+takes a fixed fraction of the main note and appears in small print 
+without a slash. 
 
 @lilypond[quote,ragged-right,relative=2,verbatim,fragment]
-b4 \acciaccatura d8 c4
+\grace c8 b4 
+\acciaccatura d8 c4
 \appoggiatura e8 d4
 \acciaccatura { g16[ f] } e4
 @end lilypond
 
-@noindent
-@code{\acciaccatura} and @code{\appoggiatura} start a slur,
-@code{\grace} does not.
-
 The placement of grace notes is synchronized between different
 staves.  In the following example, there are two sixteenth grace
 notes for every eighth grace note
 
 @lilypond[quote,ragged-right,relative=2,verbatim,fragment]
-<< \new Staff { e4 \grace { c16[ d e f] } e4 }
-   \new Staff { c4 \grace { g8[ b] } c4 } >>
+<< \new Staff { e2 \grace { c16[ d e f] } e2 }
+   \new Staff { c2 \grace { g8[ b] } c2 } >>
 @end lilypond
 
 @funindex \afterGrace
@@ -2404,39 +2503,50 @@ command.  It takes two arguments: the main note, and the grace
 notes following the main note.
 
 @lilypond[quote,ragged-right,verbatim,relative=2,fragment]
-c1 \afterGrace d1 { c16[ d] } c4
+c1 \afterGrace d1 { c16[ d] } c1
 @end lilypond
 
-This will put the grace notes after a @q{space} lasting 3/4 of the
-length of the main note.  The fraction 3/4 can be changed by
-setting @code{afterGraceFraction}, i.e.,
+This will put the grace notes after a space lasting 3/4 of the
+length of the main note.  The default fraction 3/4 can be changed by
+setting @code{afterGraceFraction}.  The following example shows
+the results from setting the space at the default,  at 15/16, and 
+finally at 1/2 of the main note.
 
-@example
-#(define afterGraceFraction (cons 7 8))
-@end example
-
-@noindent
-will put the grace note at 7/8 of the main note.
+@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
+<<
+  \new Staff {
+    c1 \afterGrace d1 { c16[ d] } c1
+  }
+  \new Staff {
+    #(define afterGraceFraction (cons 15 16))
+    c1 \afterGrace d1 { c16[ d] } c1
+  }
+  \new Staff {
+    #(define afterGraceFraction (cons 1 2))
+    c1 \afterGrace d1 { c16[ d] } c1
+  }
+>>
+@end lilypond
 
-The same effect can be achieved manually by doing
+The space between the main note and the grace note may also be
+specified using spacers. The following example places the grace
+note after a space lasting 7/8 of the main note.
 
 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
 \new Voice {
   << { d1^\trill_( }
-     { s2 \grace { c16[ d] } } >>
-  c4)
+     { s2 s4. \grace { c16[ d] } } >>
+  c1)
 }
 @end lilypond
 
-@noindent
-By adjusting the duration of the skip note (here it is a
-half-note), the space between the main note and the grace
-may be adjusted.
-
 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 expression, for example,
+set directions.  Hence, when introducing layout tweaks to
+override the special settings, they should be placed inside
+the grace expression. The overrides should also be reverted
+inside the grace expression. Here, the grace note's default stem
+direction is overriden and then reverted.
 
 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
 \new Voice {
@@ -2445,63 +2555,69 @@ should be inside the grace expression, for example,
     f16->
     \stemNeutral
   }
-  g4
+  g4 e c2
 }
 @end lilypond
 
-@noindent
-The overrides should also be reverted inside the grace expression.
+
+@cindex stem, with slash
+
+
+@snippets
+
+The slash through the stem found in @emph{acciaccatura}s can be applied 
+in other situations:
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+\relative c'' {
+  \override Stem #'stroke-style = #"grace"
+  c8( d2) e8( f4)
+}
+@end lilypond
 
 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 @{
-  #(add-grace-property 'Voice 'Stem 'direction '())
-  @dots{}
-@}
-@end example
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+\relative c'' {
+  \new Staff {
+    #(add-grace-property 'Voice 'Stem 'direction ly:stem::calc-direction)
+    #(remove-grace-property 'Voice 'Stem 'direction)
+    \new Voice {
+       \acciaccatura { f16 } g4 
+       \grace { d16[ e] } f4
+       \appoggiatura { a,32[ b c d] } e2
+    }
+  }
+}
+@end lilypond
 
-@noindent
 Another option is to change the variables @code{startGraceMusic},
 @code{stopGraceMusic}, @code{startAcciaccaturaMusic},
 @code{stopAcciaccaturaMusic}, @code{startAppoggiaturaMusic},
 @code{stopAppoggiaturaMusic}.  The default values of these can be
-seen in the file @file{ly/@/grace@/-init@/.ly}.  By redefining
+seen in the file @code{ly/@/grace@/-init@/.ly}.  By redefining
 them other effects may be obtained.
 
-@cindex stem, with slash
-
-@noindent
-The slash through the stem in @emph{acciaccatura}s can be obtained in
-other situations by @code{\override Stem  #'stroke-style =
-#"grace"}.
-
-
-@snippets
-
-Grace notes may be forced to use align with regular notes
-in other staves by setting @code{strict-grace-spacing} to
-##t:
+Grace notes may be forced to align with regular notes
+in other staves:
 
-@lilypond[relative=2,ragged-right]
-<<
-  \override Score.SpacingSpanner #'strict-grace-spacing = ##t
-  \new Staff {
-     c'4
-     \afterGrace
-     c'4
-     { c'16[ c'8 c'16] }
-     c'4
-  }
-  \new Staff {
-     c'16[ c'16 c'16 c'16]
-     c'16[ c'16 c'16 c'16]
-     c'4
-  }
->>
+@lilypond[verbatim,quote,ragged-right]
+\relative c'' {
+  <<
+    \override Score.SpacingSpanner #'strict-grace-spacing = ##t
+    \new Staff {
+      c4
+      \afterGrace c4 { c16[ c8 c16] }
+      c4 r
+    }
+    \new Staff {
+      c16 c c c c c c c c4 r
+    }
+  >>
+}
 @end lilypond
 
 
@@ -2510,10 +2626,11 @@ in other staves by setting @code{strict-grace-spacing} to
 Music Glossary:
 @rglos{grace notes},
 @rglos{acciaccatura},
-@rglos{appoggiatura}
+@rglos{appoggiatura}.
 
-Snippets:
-@rlsr{Rhythms}.
+Installed Files: @file{ly/@/grace@/-init@/.ly}.
+
+Snippets: @rlsr{Rhythms}.
 
 Internals Reference: @rinternals{GraceMusic}.
 
@@ -2531,8 +2648,8 @@ synchronized.  Take care when you mix staves with grace notes and
 staves without, for example,
 
 @lilypond[quote,ragged-right,relative=2,verbatim,fragment]
-<< \new Staff { e4 \bar "|:" \grace c16 d4 }
-   \new Staff { c4 \bar "|:" d4 } >>
+<< \new Staff { e4 \bar "|:" \grace c16 d2. }
+   \new Staff { c4 \bar "|:" d2. } >>
 @end lilypond
 
 @noindent
@@ -2540,8 +2657,8 @@ This can be remedied by inserting grace skips of the corresponding
 durations in the other staves.  For the above example
 
 @lilypond[quote,ragged-right,relative=2,verbatim,fragment]
-<< \new Staff { e4 \bar "|:" \grace c16 d4 }
-   \new Staff { c4 \bar "|:" \grace s16 d4 } >>
+<< \new Staff { e4 \bar "|:" \grace c16 d2. }
+   \new Staff { c4 \bar "|:" \grace s16 d2. } >>
 @end lilypond
 
 Grace sections should only be used within sequential music
@@ -2549,46 +2666,53 @@ expressions.  Nesting or juxtaposing grace sections is not
 supported, and might produce crashes or other errors.
 
 @node Aligning to cadenzas
-@subsubsection Aligning to cadenzas
+@unnumberedsubsubsec Aligning to cadenzas
 
 @cindex cadenza
 @cindex cadenza, aligning to
 @cindex aligning to cadenza
 
 In an orchestral context, cadenzas present a special problem: when
-constructing a score that includes a cadenza, all other
-instruments should skip just as many notes as the length of the
-cadenza, otherwise they will start too soon or too late.
+constructing a score that includes a measured cadenza or other solo
+passage, all other instruments should skip just as many notes as the 
+length of the cadenza, otherwise they will start too soon or too late. 
 
-A solution to this problem is to use the functions
+One solution to this problem is to use the functions
 @code{mmrest-of-length} and @code{skip-of-length}.  These Scheme
-functions take a piece of music as argument, and generate a multi-measure
-rest or @code{\skip}, exactly as long as the piece.  The use of
-@code{mmrest-of-length} is demonstrated in the following example.
+functions take a defined piece of music as an argument and generate a 
+multi-measure rest or @code{\skip} exactly as long as the piece.  
 
 @lilypond[verbatim,ragged-right,quote]
-cadenza = \relative c' {
-  c4 d8 << { e f g } \\ { d4. } >>
-  g4 f2 g4 g
+MyCadenza = \relative c' {
+  c4 d8 e f g g4 
+  f2 g4 g
 }
 
 \new GrandStaff <<
-  \new Staff { \cadenza c'4 }
+  \new Staff { 
+    \MyCadenza c'1 
+    \MyCadenza c'1
+  }
   \new Staff {
-    #(ly:export (mmrest-of-length cadenza))
-    c'4
+    #(ly:export (mmrest-of-length MyCadenza))
+    c'1
+    #(ly:export (skip-of-length MyCadenza))
+    c'1
   }
 >>
 @end lilypond
 
 @seealso
 
+Music Glossary:
+@rglos{cadenza}.
+
 Snippets:
 @rlsr{Rhythms}.
 
 
 @node Time administration
-@subsubsection Time administration
+@unnumberedsubsubsec Time administration
 
 @cindex time administration
 @cindex timing (within the score)
@@ -2668,3 +2792,4 @@ Snippets:
 
 Internals Reference: @rinternals{Timing_translator},
 @rinternals{Score}
+