]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/notation/rhythms.itely
[doc] Handle leading dash in @code.
[lilypond.git] / Documentation / notation / rhythms.itely
index 96a8f6e071d6078c3802e2379e6c1d0e7a52bd15..625d7db4a8abdcbfb1d775236516469c24e35085 100644 (file)
@@ -7,7 +7,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.12.0"
+@c \version "2.14.0"
 
 @node Rhythms
 @section Rhythms
@@ -140,6 +140,15 @@ the staff; see @ref{Direction and placement}.
 @endpredefined
 
 
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{alternative-breve-note.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-the-number-of-augmentation-dots-per-note.ly}
+
+
 @seealso
 Music Glossary:
 @rglos{breve},
@@ -191,7 +200,7 @@ durations with a fraction:
 @end example
 
 @noindent
-The duration of @var{music} will be multiplied by the
+The duration of @code{@var{music}} will be multiplied by the
 fraction.  The fraction's denominator will be printed over or
 under the notes, optionally with a bracket.  The most common
 tuplet is the triplet in which 3 notes have the duration of 2, so
@@ -218,7 +227,7 @@ Tuplets may be nested:
 
 @lilypond[quote,verbatim,relative=2]
 \autoBeamOff
-c4 \times 4/5 { f8 e f \times 2/3 { e[ f g] } } f4 |
+c4 \times 4/5 { f8 e f \times 2/3 { e[ f g] } } f4
 @end lilypond
 
 Modifying nested tuplets which begin at the same musical moment
@@ -256,6 +265,9 @@ see @ref{Scaling durations}.
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {non-default-tuplet-numbers.ly}
 
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{controlling-tuplet-bracket-visibility.ly}
+
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {permitting-line-breaks-within-beamed-tuplets.ly}
 
@@ -287,10 +299,16 @@ Internals Reference:
 @cindex grace notes within tuplet brackets
 
 @knownissues
-When the first note on a staff is a grace note followed by a
-tuplet the grace note must be placed before the @code{\times}
-command to avoid errors.  Anywhere else, grace notes may be
-placed within tuplet brackets.
+Grace notes may be placed within tuplet brackets, @emph{except}
+when a staff begins with a grace note followed by a tuplet.  In this
+particular case, the grace note must be placed before the @code{\times}
+command to avoid errors.
+
+@cindex tempo marks within tuplet brackets
+
+When using a tuplet at the beginning of a piece with a @code{\tempo}
+mark, the music must be explicitly entered in a @code{\new Voice}
+block, as discussed in @rlearning{Voices contain music}.
 
 
 @node Scaling durations
@@ -552,11 +570,10 @@ Internals Reference:
 
 
 @knownissues
-
 Switching staves when a tie is active will not produce a slanted
 tie.
 
-Changing clefs or octavations during a tie is not really
+Changing clefs or ottavations during a tie is not really
 well-defined.  In these cases, a slur may be preferable.
 
 
@@ -592,12 +609,12 @@ Rests are entered as part of the music in music expressions.
 @funindex breve
 
 Rests are entered like notes with the note name @code{r}.
-Durations longer than a whole rest use the predefined
-commands shown:
+Durations longer than a whole rest use the following predefined
+commands:
 
 @c \time 16/1 is used to avoid spurious bar lines
 @c and long tracts of empty measures
-@lilypond[fragment,quote,verbatim]
+@lilypond[quote,verbatim,relative=2]
 \new Staff {
   % These two lines are just to prettify this example
   \time 16/1
@@ -617,8 +634,8 @@ commands shown:
 
 Whole measure rests, centered in the middle of the measure, must be
 entered as multi-measure rests.  They can be used for a single
-measure as well as many measures and are discussed in @ref{Full
-measure rests}.
+measure as well as many measures and are discussed in
+@ref{Full measure rests}.
 
 @cindex rest, specifying vertical position
 
@@ -688,7 +705,9 @@ s2 c
 Spacer rests are available only in note mode and chord mode.  In
 other situations, for example, when entering lyrics, the
 command @code{\skip} is used to skip a musical moment.
-@code{\skip} requires an explicit duration.
+@code{\skip} requires an explicit duration, but this is ignored if
+the lyrics derive their durations from the notes in an associated
+melody through @code{\addlyrics} or @code{\lyricsto}.
 
 @lilypond[quote,verbatim,relative=2]
 <<
@@ -709,7 +728,7 @@ durations of following notes, unlike@tie{}@code{s}.
 @lilypond[quote,verbatim,relative=2]
 <<
   {
-    \repeat unfold 8 {a4}
+    \repeat unfold 8 { a4 }
   }
   {
     a4 \skip 2 a |
@@ -723,14 +742,14 @@ A spacer rest implicitly causes @code{Staff} and @code{Voice}
 contexts to be created if none exist, just like notes and rests
 do:
 
-@lilypond[quote,verbatim,fragment]
+@lilypond[quote,verbatim,relative=2]
 s1 s s
 @end lilypond
 
 @code{\skip} simply skips musical time; it creates no output of
 any kind.
 
-@lilypond[quote,verbatim,fragment]
+@lilypond[quote,verbatim,relative=2]
 % This is valid input, but does nothing
 \skip 1 \skip1 \skip 1
 @end lilypond
@@ -780,7 +799,7 @@ notation used for notes.  The duration in a multi-measure rest must
 always be an integral number of measure-lengths, so augmentation dots
 or fractions must often be used:
 
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,verbatim,relative=2]
 \compressFullBarRests
 \time 2/4
 R1 | R2 |
@@ -795,7 +814,7 @@ R4*5*4 |
 A full-measure rest is printed as either a whole or breve rest,
 centered in the measure, depending on the time signature.
 
-@lilypond[quote,verbatim,fragment]
+@lilypond[quote,verbatim,relative=2]
 \time 4/4
 R1 |
 \time 6/4
@@ -817,7 +836,7 @@ show all the rest measures explicitly.  Alternatively, a multi-measure
 rest can be shown as a single measure containing a multi-measure rest
 symbol, with the number of measures of rest printed above the measure:
 
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,verbatim,relative=2]
 % Default behavior
 \time 3/4 r2. | R2.*2 |
 \time 2/4 R2 |
@@ -849,25 +868,23 @@ Markups can be added to multi-measure rests.
 The predefined command @code{\fermataMarkup}
 is provided for adding fermatas.
 
-@lilypond[quote,verbatim,fragment]
+@lilypond[quote,verbatim,relative=2]
 \compressFullBarRests
 \time 3/4
 R2.*10^\markup { \italic "ad lib." }
 R2.^\fermataMarkup
 @end lilypond
 
-@warning{
-Markups attached to a multi-measure rest are
-objects of type @code{MultiMeasureRestText}, not
-@code{TextScript}.  Overrides must be directed to the correct
-object, or they will be ignored.  See the following example.
-}
+@warning{Markups attached to a multi-measure rest are objects of type
+@code{MultiMeasureRestText}, not @code{TextScript}.  Overrides must
+be directed to the correct object, or they will be ignored.  See the
+following example:}
 
-@lilypond[quote,verbatim,fragment]
+@lilypond[quote,verbatim,relative=2]
 % This fails, as the wrong object name is specified
 \override TextScript #'padding = #5
 R1^"wrong"
-% This is correct and works
+% This is the correct object name to be specified
 \override MultiMeasureRestText #'padding = #5
 R1^"right"
 @end lilypond
@@ -879,7 +896,7 @@ setting, resulting bar-check warnings may not be displayed.
 @funindex \textLengthOn
 @funindex textLengthOn
 @funindex \textLengthOff
-@funindex textLenthOff
+@funindex textLengthOff
 @funindex \fermataMarkup
 @funindex fermataMarkup
 @funindex \compressFullBarRests
@@ -938,11 +955,9 @@ Internals Reference:
 @cindex multi-measure rests and fingerings
 
 @knownissues
-
-If an attempt is made to use fingerings (e.g.,
-@code{R1*10-4}) to put numbers over multi-measure rests, the
-fingering numeral (4) may collide with the bar counter
-numeral (10).
+Fingerings over multi-measure rests (e.g. @code{R1*10-4}) may result
+in the fingering numeral colliding with the bar counter
+numeral.
 
 @cindex condensing rests
 @cindex rest, condensing ordinary
@@ -959,6 +974,7 @@ Multi-measure rests do not take part in rest collisions.
 
 @menu
 * Time signature::
+* Metronome marks::
 * Upbeats::
 * Unmetered music::
 * Polymetric notation::
@@ -1029,6 +1045,154 @@ changed to a numeric style:
 Mensural time signatures are covered in
 @ref{Mensural time signatures}.
 
+@cindex time signature default settings
+@cindex autobeaming properties for time signatures
+@cindex beaming, time signature default properties
+@funindex \overrideTimeSignatureSettings
+
+In addition to setting the printed time signature, the @code{\time}
+command also sets time-signature-based default values for the properties
+@code{baseMoment}, @code{beatStructure}, and @code{beamExceptions}.  The
+predefined default values for these properties can be found in
+@file{scm/time-signature-settings.scm}.  The existing default values can
+be changed, or new default values can be added:
+
+@lilypond[quote,verbatim]
+\score {
+  \new Staff {
+    \relative c' {
+      \overrideTimeSignatureSettings
+        #'(4 . 4)  % timeSignatureFraction
+        #'(1 . 4)  % baseMomentFraction
+        #'(3 1)    % beatStructure
+        #'()       % beamExceptions
+      \time 4/4
+      \repeat unfold 8 { c8 } |
+    }
+  }
+}
+@end lilypond
+
+@code{\overrideTimeSignatureSettings} takes four arguments:
+
+@enumerate
+
+@item
+@code{@var{timeSignatureFraction}}, a Scheme pair describing the
+time signature.
+
+@item
+@code{@var{baseMomentFraction}}, a Scheme pair containing the numerator
+and denominator of the basic timing unit for the time signature.
+
+@item
+@code{@var{beatStructure}}, a Scheme list indicating the structure
+of the beats in the measure, in units of the base moment.
+
+@item
+@code{@var{beamExceptions}}, an alist containing any beaming rules
+for the time signature that go beyond ending at every beat, as
+described in @ref{Setting automatic beam behavior}.
+@end enumerate
+
+The context containing @code{\overrideTimeSignatureSettings} must
+be instantiated before the @code{\overrideTimeSignatureSettings}
+call is executed.  That means it must either be explicitly
+instantiated or there must be music in the context before the
+@code{\overrideTimeSignatureSettings} call:
+
+@lilypond[quote,verbatim]
+\score {
+  \relative c' {
+    % This call will fail because the context isn't yet instantiated
+    \overrideTimeSignatureSettings
+      #'(4 . 4)  % timeSignatureFraction
+      #'(1 . 4)  % baseMomentFraction
+      #'(3 1)    % beatStructure
+      #'()       % beamExceptions
+    \time 4/4
+    c8^\markup {"Beamed (2 2)"}
+    \repeat unfold 7 { c8 } |
+    % This call will succeed
+    \overrideTimeSignatureSettings
+      #'(4 . 4)  % timeSignatureFraction
+      #'(1 . 4)  % baseMomentFraction
+      #'(3 1)    % beatStructure
+      #'()       % beamExceptions
+    \time 4/4
+    c8^\markup {"Beamed (3 1)"}
+    \repeat unfold 7 { c8 } |
+  }
+}
+@end lilypond
+
+
+@cindex time signature properties, restoring default values
+@cindex restoring default properties for time signatures
+@funindex \revertTimeSignatureSettings
+
+Changed values of default time signature properties can be restored
+to the original values:
+
+@lilypond[quote,verbatim]
+\score{
+  \relative c' {
+    \repeat unfold 8 { c8 } |
+    \overrideTimeSignatureSettings
+      #'(4 . 4)  % timeSignatureFraction
+      #'(1 . 4)  % baseMomentFraction
+      #'(3 1)    % beatStructure
+      #'()       % beamExceptions
+    \time 4/4
+    \repeat unfold 8 { c8 } |
+    \revertTimeSignatureSettings #'(4 . 4)
+    \time 4/4
+    \repeat unfold 8 { c8 } |
+  }
+}
+@end lilypond
+
+Different values of default time signature properties can be established
+for different staves by moving the @code{Timing_translator} and the
+@code{Default_bar_line_engraver} from the @code{Score} context to the
+@code{Staff} context.
+
+@lilypond[quote, verbatim]
+\score {
+  \new StaffGroup <<
+     \new Staff {
+        \overrideTimeSignatureSettings
+          #'(4 . 4)  % timeSignatureFraction
+          #'(1 . 4)  % baseMomentFraction
+          #'(3 1)    % beatStructure
+          #'()       % beamExceptions
+        \time 4/4
+        \repeat unfold 8 {c''8}
+     }
+     \new Staff {
+        \overrideTimeSignatureSettings
+          #'(4 . 4)  % timeSignatureFraction
+          #'(1 . 4)  % baseMomentFraction
+          #'(1 3)    % beatStructure
+          #'()       % beamExceptions
+        \time 4/4
+        \repeat unfold 8 {c''8}
+     }
+  >>
+  \layout {
+    \context {
+      \Score
+      \remove "Timing_translator"
+      \remove "Default_bar_line_engraver"
+    }
+    \context {
+      \Staff
+      \consists "Timing_translator"
+      \consists "Default_bar_line_engraver"
+    }
+  }
+}
+@end lilypond
 
 @predefined
 @code{\numericTimeSignature},
@@ -1066,6 +1230,99 @@ Internals Reference:
 @rinternals{TimeSignature},
 @rinternals{Timing_translator}.
 
+@node Metronome marks
+@unnumberedsubsubsec Metronome marks
+
+@cindex tempo
+@cindex beats per minute
+@cindex metronome mark
+@cindex metronome marking with text
+
+@funindex \tempo
+@funindex tempo
+
+A basic metronome mark is simple to write:
+
+@lilypond[verbatim,quote,relative=1]
+\tempo 4 = 120
+c2 d
+e4. d8 c2
+@end lilypond
+
+Metronome marks may also be printed as a range of two numbers:
+
+@lilypond[verbatim,quote,relative=1]
+\tempo 4 = 40 ~ 46
+c4. e8 a4 g
+b,2 d4 r
+@end lilypond
+
+Tempo indications with text can be used instead:
+
+@lilypond[verbatim,quote,relative=2]
+\tempo "Allegretto"
+c4 e d c
+b4. a16 b c4 r4
+@end lilypond
+
+Combining a metronome mark and text will automatically place the
+metronome mark within parentheses:
+
+@lilypond[verbatim,quote,relative=2]
+\tempo "Allegro" 4 = 160
+g4 c d e
+d4 b g2
+@end lilypond
+
+In general, the text can be any markup object:
+
+@lilypond[verbatim,quote,relative=2]
+\tempo \markup { \italic Faster } 4 = 132
+a8-. r8 b-. r gis-. r a-. r
+@end lilypond
+
+A parenthesized metronome mark with no textual indication may be
+written by including an empty string in the input:
+
+@lilypond[verbatim,quote,relative=2]
+\tempo "" 8 = 96
+d4 g e c
+@end lilypond
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{printing-metronome-and-rehearsal-marks-below-the-staff.ly}
+
+@c perhaps also an example of how to move it horizontally?
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{changing-the-tempo-without-a-metronome-mark.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{creating-metronome-marks-in-markup-mode.ly}
+
+For more details, see @ref{Formatting text}.
+
+
+@seealso
+Music Glossary:
+@rglos{metronome},
+@rglos{metronomic indication},
+@rglos{tempo indication},
+@rglos{metronome mark}.
+
+Notation Reference:
+@ref{Formatting text},
+@ref{MIDI output}.
+
+Snippets:
+@rlsr{Staff notation}.
+
+Internals Reference:
+@rinternals{MetronomeMark}.
+
 
 @node Upbeats
 @unnumberedsubsubsec Upbeats
@@ -1089,34 +1346,39 @@ entered using the @code{\partial} command, with the syntax
 @end example
 
 @noindent
-where @code{duration} is the rhythmic length of the interval
-before the start of the first complete measure:
+where @code{@var{duration}} is the rhythmic length of the
+remaining interval of the current measure before the start of the
+next.
 
 @lilypond[quote,verbatim,relative=2]
 \partial 4 e4 |
 a2. c,4 |
 @end lilypond
 
-The partial measure can be any duration less than a full measure:
+The partial measure can be any duration less than the full measure:
 
 @lilypond[quote,verbatim,relative=2]
 \partial 8*3 c8 d e |
 a2. c,4 |
 @end lilypond
 
-Internally, @code{\partial} is translated into
+Internally, @code{\partial @var{duration}} is translated into:
 
 @example
-\set Timing.measurePosition = -@var{duration}
+\set Timing.measurePosition -@var{duration}
+@end example
+
+For example, @code{\partial 8*3} becomes:
+
+@example
+\set Timing.measurePosition = #(ly:make-moment -3 8)
 @end example
 
-@noindent
 The property @code{measurePosition} contains a rational number
 indicating how much of the measure has passed at this point.  Note
-that this is set to a negative number by the @code{\partial}
-command: i.e., @code{\partial 4} is internally translated to
-@code{-4}, meaning @qq{there is a quarter note left in the measure.}
-
+that this is set to a negative number by the @code{\partial} command:
+i.e., @code{\partial 4} is internally translated to @w{@code{-4}}, meaning
+@qq{there is a quarter note left in the measure.}
 
 @seealso
 Music Glossary:
@@ -1131,12 +1393,12 @@ Snippets:
 Internal Reference:
 @rinternals{Timing_translator}.
 
-
 @knownissues
 
 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.
+odd warnings or effects may occur, in this case use
+@code{\set Timing.measurePosition} instead.
 
 @node Unmetered music
 @unnumberedsubsubsec Unmetered music
@@ -1157,10 +1419,10 @@ 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,relative=2,fragment]
+@lilypond[verbatim,relative=2,quote]
 c4 d e d
 \cadenzaOn
-c4 c d8 d d f4 g4.
+c4 c d8[ d d] f4 g4.
 \cadenzaOff
 \bar "|"
 d4 e d c
@@ -1169,17 +1431,35 @@ d4 e d c
 Bar numbering is resumed at the end of the cadenza as if the
 cadenza were not there:
 
-@lilypond[verbatim,relative=2,fragment]
+@lilypond[verbatim,relative=2,quote]
 % Show all bar numbers
 \override Score.BarNumber #'break-visibility = #all-visible
 c4 d e d
 \cadenzaOn
-c4 c d8 d d f4 g4.
+c4 c d8[ d d] f4 g4.
 \cadenzaOff
 \bar "|"
 d4 e d c
 @end lilypond
 
+@cindex beams, in cadenzas
+@cindex beams, in unmetered music
+@cindex cadenza, with beams
+@cindex unmetered music, with beams
+
+Automatic beaming is disabled by @code{\cadenzaOn} and enabled
+by @code{\cadenzaOff}.  Therefore, all beaming in cadenzas
+must be entered manually (@ref{Manual beams}).
+
+@lilypond[verbatim,relative=2,quote]
+\repeat unfold 8 { c8 }
+\cadenzaOn
+\repeat unfold 5 { c8 }
+\bar"|"
+\cadenzaOff
+\repeat unfold 8 { c8 }
+@end lilypond
+
 Note that these predefined commands affect all staves in the
 score, even when they are placed in just one @code{Voice}
 context.  To change this, move the @code{Timing_translator}
@@ -1198,7 +1478,8 @@ Music Glossary:
 
 Notation Reference:
 @ref{Visibility of objects},
-@ref{Polymetric notation}.
+@ref{Polymetric notation},
+@ref{Manual beams}.
 
 Snippets:
 @rlsr{Rhythms}.
@@ -1227,16 +1508,19 @@ staff line, you will need to insert invisible bar lines with
 @noindent
 to indicate where breaks can occur.
 
-You must explicitly create a @code{Voice} context when starting a
+You should explicitly create a @code{Voice} context when starting a
 piece with @code{\cadenzaOn}, otherwise strange errors may occur.
 
-@lilypond[verbatim,relative=2,fragment]
-\new Voice \relative c'{
-  \cadenzaOn
-  c16^"Solo Free Time" d e f g2. \bar "||"
-  \cadenzaOff
-}
-@end lilypond
+@example
+\new Voice @{
+  \relative c' @{
+    \cadenzaOn
+    c16[^"Solo Free Time" d e f] g2.
+    \bar "||"
+    \cadenzaOff
+  @}
+@}
+@end example
 
 
 @node Polymetric notation
@@ -1272,8 +1556,8 @@ signature; see @ref{Time signature}.  The scaling is done with
 @code{\times}, but does not create a tuplet bracket; see
 @ref{Scaling durations}.
 
-@cindex beaming in polymetric music
-@cindex beaming in polymetric meter
+@cindex beams, with polymetric meters
+@cindex polymetric meters, with beams
 
 In this example, music with the time signatures of 3/4, 9/8, and
 10/8 are used in parallel.  In the second staff, shown durations
@@ -1282,7 +1566,7 @@ staff, shown durations are multiplied by 3/5, as 3/5 * 10/8 = 3/4.
 It will often be necessary to insert beams manually, as the
 duration scaling affects the autobeaming rules.
 
-@lilypond[quote,verbatim,fragment]
+@lilypond[quote,verbatim]
 \relative c' <<
   \new Staff {
     \time 3/4
@@ -1293,7 +1577,7 @@ duration scaling affects the autobeaming rules.
     \time 3/4
     \set Staff.timeSignatureFraction = #'(9 . 8)
     \scaleDurations #'(2 . 3)
-    \repeat unfold 6 { c8[ c c] }
+      \repeat unfold 6 { c8[ c c] }
   }
   \new Staff {
     \time 3/4
@@ -1391,28 +1675,35 @@ time signatures.
 
 @cindex notes, splitting
 @cindex splitting notes
+@cindex rests, splitting
+@cindex splitting rests
 
 @funindex Note_heads_engraver
 @funindex Completion_heads_engraver
+@funindex Completion_rest_engraver
 
-Long notes which overrun bar lines can be converted automatically
-to tied notes.  This is done by replacing the
-@code{Note_heads_engraver} with the
-@code{Completion_heads_engraver}.  In the following
-example, notes crossing the bar lines are split and tied.
+Long notes which overrun bar lines can be converted automatically to
+tied notes.  This is done by replacing the @code{Note_heads_engraver}
+with the @code{Completion_heads_engraver}.  Similarly, long rests which
+overrun bar lines are split automatically by replacing the
+@code{Rest_engraver} with the @code{Completion_rest_engraver}.  In the
+following example, notes and rests crossing the bar lines are split,
+notes are also tied.
 
 @lilypond[quote,verbatim,relative=1]
 \new Voice \with {
   \remove "Note_heads_engraver"
   \consists "Completion_heads_engraver"
+  \remove "Rest_engraver"
+  \consists "Completion_rest_engraver"
 }
 
-{ c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2 }
+{ c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2 r1*2 }
 @end lilypond
 
-This engraver splits all running notes at the bar line, and
-inserts ties.  One of its uses is to debug complex scores: if the
-measures are not entirely filled, then the ties show exactly how
+These engravers split all running notes and rests at the bar line, and
+inserts ties for notes.  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.
 
 
@@ -1430,6 +1721,8 @@ Snippets:
 Internals Reference:
 @rinternals{Note_heads_engraver},
 @rinternals{Completion_heads_engraver},
+@rinternals{Rest_engraver},
+@rinternals{Completion_rest_engraver},
 @rinternals{Forbid_line_break_engraver}.
 
 
@@ -1494,7 +1787,6 @@ be done with the @code{Pitch_squash_engraver} and
       c1 f g c
     }
   }
-
   \new Voice \with {
     \consists Pitch_squash_engraver
   } \relative c'' {
@@ -1546,8 +1838,7 @@ By default, beams are inserted automatically:
 
 @cindex beams, manual
 @cindex manual beams
-@cindex beams, setting rules for
-@cindex beams, custom rules for
+@cindex beams, customizing rules
 
 @funindex \autoBeamOn
 @funindex autoBeamOn
@@ -1556,7 +1847,7 @@ By default, beams are inserted automatically:
 
 @lilypond[quote,verbatim,relative=2]
 \time 2/4 c8 c c c
-\time 6/8 c c c c8. c16 c8
+\time 6/8 c8 c c c8. c16 c8
 @end lilypond
 
 If these automatic decisions are not satisfactory, beaming can be
@@ -1574,36 +1865,42 @@ c4 c8 c8. c16 c8.
 c16 c8
 @end lilypond
 
-@cindex melismata, beams
-@cindex beams and melismata
+@cindex melismata, with beams
+@cindex beams, with melismata
 
 @warning{If beams are used to indicate melismata in songs, then
 automatic beaming should be switched off with @code{\autoBeamOff}
 and the beams indicated manually.}
 
+@warning{Using @code{@bs{}partcombine} with @code{@bs{}autoBeamOff} can
+produce unintended results.  See the snippet below for more information.}
+
 Beaming patterns that differ from the automatic defaults can be
 created; see @ref{Setting automatic beam behavior}.
 
-
 @predefined
 @code{\autoBeamOff},
 @code{\autoBeamOn}.
 @endpredefined
 
-
-@snippets
-
-@cindex line breaks and beams
-@cindex beams and line breaks
-
+@cindex beams, line breaks
+@cindex line breaks, beams
+@cindex beams, with knee gap
+@cindex knee gap, with beams
 @funindex breakable
 
+@snippets
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {beams-across-line-breaks.ly}
 
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {changing-beam-knee-gap.ly}
 
+@cindex beams, \partcombine with \autoBeamOff
+@cindex voices, \partcombine with \autoBeamOff
+
+@lilypondfile [verbatim, lilyquote, ragged-right, texidoc, doctitle]
+{partcombine-and-autobeamoff.ly}
 
 @seealso
 Notation Reference:
@@ -1611,7 +1908,7 @@ Notation Reference:
 @ref{Setting automatic beam behavior}.
 
 Installed Files:
-@file{scm/@/auto@/-beam@/.scm}.
+@file{scm/auto-beam.scm}.
 
 Snippets:
 @rlsr{Rhythms}.
@@ -1625,128 +1922,37 @@ Internals Reference:
 @rinternals{beam-interface},
 @rinternals{unbreakable-spanner-interface}.
 
-
-@knownissues
-
-Beams can collide with note heads and accidentals in other voices.
-
-
 @node Setting automatic beam behavior
 @unnumberedsubsubsec Setting automatic beam behavior
 
-
-@cindex automatic beams, tuning
-@cindex tuning automatic beaming
-@cindex automatic beam generation
-@cindex autobeam
-@cindex lyrics and beaming
+@cindex beams, with lyrics
+@cindex lyrics, with beams
 
 @funindex autoBeaming
-@funindex beamSettings
+@funindex baseMoment
+@funindex beamExceptions
+@funindex beatStructure
 @funindex measureLength
-@funindex beatLength
 @funindex \time
 @funindex time
 @funindex \set
 @funindex set
 
-The placement of automatic beams is determined by the time signature.
-Three types of rules are used for determining the end of automatic
-beams: @emph{default} rules
-for the time signature, @emph{explicit} rules for the beam in the time
-signature, and the @emph{beatLength} for the time signature.
-
-The following rules, in order of priority, apply when determining
-the appearance of beams:
-
-@itemize
-@item
-If a manual beam is specified with @code{[..]} set the beam
-as specified, otherwise
-
-@item
-if @code{\autoBeamOff} is in force do not beam, otherwise
-
-@item
-if an explicit beam-ending rule is defined for the beam type
-in the time signature, use it to determine the valid
-places where beams may end, otherwise
-
-@item
-if a default beam-ending rule is defined in the time signature,
-use it to group notes with beams, otherwise
-
-@item
-use the value of @code{beatLength} to group notes with beams
-
-@end itemize
-
-@i{@strong{Modifying the grouping of beats}}
-
-By default @code{beatLength} is
-derived from the time signature set by the @code{\time} command.
-The @code{beatLength} is set to be one over the denominator
-of the time signature.
-
-@code{beatLength} is a @i{moment},
-a unit of musical duration.  A quantity of type @i{moment} is
-created by the scheme function @code{ly:make-moment}.  For more
-information about this function, see @ref{Time administration}.
-
-Autobeam and beam subdivide settings are stored in the
-@code{beamSettings} property.  Default values of @code{beamSettings}
-are determined in @file{scm/@/beam@/-settings@/.scm}.  Entries in
-@code{beamSettings} are indexed by time signature and
-rule type.
-
-Time signature should be a scheme pair , e.g. @code{#'(4 . 4)}.
-
-Rule type should be @code{#'end} for beam ending and @code{#'subdivide} for
-beam subdivision.
-
-The ending and subdivision rules consist of a scheme alist
-(or list of pairs) that
-indicates the beam type and the grouping to be applied to that
-beam type.
-
-@example
-#'((beam-type1 . grouping-1)
-   (beam-type2 . grouping-2)
-   (beam-type3 . grouping-3))
-@end example
-
-Beam type is either a scheme pair indicating the duration
-of the beam, e.g. @code{(1 . 16)}, or @code{*} to indicate a
-default rule, which applies to all beams if no explicit rule is
-defined.
-
-Grouping is a scheme list indicating the grouping to be applied to
-the beam.  For default rules (where beam type is
-@code{*}, the grouping is in units of @code{beatLength}.
-For explicit rules, the grouping is in units of the beam type.
-
-For reference, the default beaming rules are found in
-@file{scm/beam-settings.scm}.
-
-Beam settings are changed with
-@code{\overrideBeamSettings} and @code{\revertBeamSettings}.
-
-@warning{
-The ending and subdivision settings must be
-@emph{complete} rules.  That is, every rule that should apply to
-the current time signature must be included in the setting.
-It is not possible to change the grouping of only one beam type
-for a given time signature.  While this may seem cumbersome,
-it means that the current beaming settings need not be known
-in order to specify a new beaming pattern.}
+In most instances, automatic beams will end at the end of a beat.
+The ending points for beats are determined by the context properties
+@code{baseMoment} and @code{beatStructure}.  @code{beatStructure}
+is a scheme list that defines the length of each beat in the measure
+in units of @code{baseMoment}.  By default, @code{baseMoment} is
+the one over numerator of the time signature.  By default,
+each unit of length @code{baseMoment} is a single beat.
 
 @lilypond[quote,relative=2,verbatim]
 \time 5/16
-c8^"beats" c16 c8 |
-\overrideBeamSettings #'Score #'(5 . 16) #'end #'((* . (2 3)))
-c8^"(2+3)" c16 c8
-\overrideBeamSettings #'Score #'(5 . 16) #'end #'((* . (3 2)))
-c8^"(3+2)" c16 c8
+c16^"default" c c c c |
+\set Timing.beatStructure = #'(2 3)
+c16^"(2+3)" c c c c |
+\set Timing.beatStructure = #'(3 2)
+c16^"(3+2)" c c c c |
 @end lilypond
 
 Beam setting changes can be limited to specific contexts.  If no
@@ -1754,22 +1960,24 @@ setting is included in a lower-level context, the setting of the
 enclosing context will apply.
 
 @lilypond[quote, verbatim,relative=1]
-\new Staff <<
+\new Staff {
   \time 7/8
-  \new Voice = one {
-    \relative c'' {
-      \overrideBeamSettings #'Staff #'(7 . 8) #'end #'((* . (2 3 2)))
+  \set Staff.beatStructure = #'(2 3 2)
+  <<
+    \new Voice = one {
+      \relative c'' {
         a8 a a a a a a
+      }
     }
-  }
-  \new Voice  = two {
-    \relative c' {
-      \voiceTwo
-      \overrideBeamSettings #'Voice #'(7 . 8) #'end #'((* . (1 3 3)))
-      f8 f f f f f f
+    \new Voice = two {
+      \relative c' {
+        \voiceTwo
+        \set Voice.beatStructure = #'(1 3 3)
+        f8 f f f f f f
+      }
     }
-  }
->>
+  >>
+}
 @end lilypond
 
 When multiple voices are used the @code{Staff} context must be
@@ -1779,53 +1987,178 @@ staff:
 @lilypond[quote,verbatim,relative=2]
 \time 7/8
 % rhythm 3-1-1-2
-% Context Voice specified --  does not work correctly
+% Change applied to Voice by default --  does not work correctly
 % Because of autogenerated voices, all beating will
-% be at beatLength (1 . 8)
-\overrideBeamSettings #'Voice #'(7 . 8) #'end #'((* . (3 1 1 2)))
+% be at baseMoment (1 . 8)
+\set beatStructure = #'(3 1 1 2)
 << {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
 
 % Works correctly with context Staff specified
-\overrideBeamSettings #'Staff #'(7 . 8) #'end #'((* . (3 1 1 2)))
+\set Staff.beatStructure = #'(3 1 1 2)
 << {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
 @end lilypond
 
-@funindex revertBeamSettings
+The value of @code{baseMoment} can be adjusted to change
+the beaming behavior, if desired. When this is done,
+the value of @code{beatStructure} must be set to be
+compatible with the new value of @code{baseMoment}.
 
-Beam settings can be reverted to get back to default behavior.  This
-is accomplished by using @code{\revertBeamSettings}.  The arguments
-are the same as for @code{\overrideBeamSettings}, except no value
-for @var{grouping} is given:
+@lilypond[quote,verbatim,relative=2]
+\time 5/8
+\set Timing.baseMoment = #(ly:make-moment 1 16)
+\set Timing.beatStructure = #'(7 3)
+\repeat unfold 10 { a16 }
+@end lilypond
+
+@code{baseMoment} is a @i{moment}; a unit of musical duration.  A
+quantity of type @i{moment} is created by the scheme function
+@code{ly:make-moment}.  For more information about this function,
+see @ref{Time administration}.
+
+By default @code{baseMoment} is set to one over the denominator of
+the time signature. Any exceptions to this default can be found in
+@file{scm/time-signature-settings.scm}.
+
+Special autobeaming rules (other than ending a beam on a beat)
+are defined in the @code{beamExceptions} property.
+
+@lilypond[quote,relative=2,verbatim]
+\time 3/16
+\set Timing.beatStructure = #'(2 1)
+\set Timing.beamExceptions =
+  #'(                         ;start of alist
+     (end .                   ;entry for end of beams
+      (                       ;start of alist of end points
+       ((1 . 32) . (2 2 2))   ;rule for 1/32 beams -- end each 1/16
+      )))                     %close all entries
+c16 c c |
+\repeat unfold 6 { c32 } |
+@end lilypond
+
+@code{beamExceptions} is an alist with a key of rule-type and a value
+of beaming-rules.
+
+At this time the only available value of rule-type is
+@code{#'end} for beam ending.
+
+Beaming-rules is a scheme alist (or list of pairs) that indicates the
+beam type and the grouping to be applied to beams containing notes with
+a shortest duration of that beam type.
 
 @example
-\revertBeamSettings context time-signature rule-type
+#'((beam-type1 . grouping-1)
+   (beam-type2 . grouping-2)
+   (beam-type3 . grouping-3))
 @end example
 
+Beam type is a scheme pair indicating the duration of the beam,
+e.g., @code{(1 . 16)}.
+
+Grouping is a scheme list indicating the grouping to be applied to
+the beam.  The grouping is in units of the beam type.
+
+@warning{ A @code{beamExceptions} value must be @emph{complete}
+exceptions list.  That is, every exception that should be applied
+must be included in the setting.  It is not possible to add, remove,
+or change only one of the exceptions. While this may seem cumbersome,
+it means that the current beaming settings need not be known in order
+to specify a new beaming pattern.}
+
+When the time signature is changed, default values of
+@code{Timing.baseMoment}, @code{Timing.beatStructure},
+and @code{Timing.beamExceptions} are set.  Setting the time signature
+will reset the automatic beaming settings for the @code{Timing}
+context to the default behavior.
+
+@lilypond[quote,verbatim,relative=2]
+\time 6/8
+\repeat unfold 6 { a8 }
+% group (4 + 2)
+\set Timing.beatStructure = #'(4 2)
+\repeat unfold 6 { a8 }
+% go back to default behavior
+\time 6/8
+\repeat unfold 6 { a8 }
+@end lilypond
+
+The default automatic beaming settings for a time signature
+are determined in @file{scm/time-signature-settings.scm}.
+Changing the default automatic beaming settings
+for a time signature is described in @ref{Time signature}.
+
+Many automatic beaming settings for a time signature contain an
+entry for @code{beamExceptions}.  For example, 4/4 time tries to
+beam the measure in two if there are only eighth notes.  The
+@code{beamExceptions} rule can override the @code{beatStructure} setting
+if @code{beamExceptions} is not reset.
 
 @lilypond[quote,verbatim,relative=2]
 \time 4/4
-\repeat unfold 8 {a8}
-% set default rule for (1 1 1 1) grouping
-\overrideBeamSettings #'Score #'(4 . 4) #'end #'((* . (1 1 1 1)))
-\repeat unfold 8 {a8}
-% revert the new rule
-\revertBeamSettings #'Score #'(4 . 4) #'end
-\repeat unfold 8 {a8}
+\set Timing.baseMoment = #(ly:make-moment 1 8)
+\set Timing.beatStructure = #'(3 3 2)
+% This won't beam (3 3 2) because of beamExceptions
+\repeat unfold 8 {c8} |
+% This will beam (3 3 2) because we clear beamExceptions
+\set Timing.beamExceptions = #'()
+\repeat unfold 8 {c8}
 @end lilypond
 
+In a similar fashion, eighth notes in 3/4 time are beamed as a full
+measure by default.  To beam eighth notes in 3/4 time on the beat,
+reset @code{beamExceptions}.
 
-@predefined
-@code{\overrideBeamSettings},
-@code{\revertBeamSettings}.
-@endpredefined
+@lilypond[quote,verbatim,relative=2]
+\time 3/4
+% by default we beam in (3) due to beamExceptions
+\repeat unfold 6 {a8} |
+% This will beam (1 1 1) due to beatLength
+\set Timing.beamExceptions = #'()
+\repeat unfold 6 {a8}
+@end lilypond
+
+@i{@strong{How automatic beaming works}}
 
+When automatic beaming is enabled, the placement of automatic beams
+is determined by the context properties
+@code{baseMoment}, @code{beatStructure}, and @code{beamExceptions}.
+
+The following rules, in order of priority, apply when determining
+the appearance of beams:
+
+@itemize
+@item
+If a manual beam is specified with @code{[..]} set the beam
+as specified, otherwise
+
+@item
+if a beam-ending rule is defined in @code{beamExceptions}
+for the beam-type, use it to determine the valid places where
+beams may end, otherwise
+
+@item
+if a beam-ending rule is defined in @code{beamExceptions}
+for a longer beam-type, use it to determined the valid places
+where beams may end, otherwise
+
+@item
+use the values of @code{baseMoment} and @code{beatStructure} to
+determine the ends of the beats in the measure, and
+end beams at the end of beats.
+
+@end itemize
+
+In the rules above, the @emph{beam-type} is the duration of the
+shortest note in the beamed group.
+
+The default beaming rules can be found in
+@file{scm/time-signature-settings.scm}.
 
 @snippets
 
 @cindex beams, subdividing
 
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
-{sub-dividing-beams.ly}
+{subdividing-beams.ly}
 
 @cindex measure groupings
 @cindex beats, grouping
@@ -1835,15 +2168,15 @@ for @var{grouping} is given:
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {conducting-signs,-measure-grouping-signs.ly}
 
-@cindex beam, last in score
-@cindex beam, last in polyphonic voice
+@cindex beam, endings in a score
+@cindex beam, endings with multiple voices
 
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {beam-endings-in-score-context.ly}
 
 
 @seealso
-Installed files:
+Installed Files:
 @file{scm/beam-settings.scm}.
 
 Snippets:
@@ -1857,13 +2190,58 @@ Internals Reference:
 
 
 @knownissues
-
 If a score ends while an automatic beam has not been ended and is
 still accepting notes, this last beam will not be typeset at all.
-The same holds for polyphonic voices, entered with @code{<<
-@dots{} \\ @dots{} >>}.  If a polyphonic voice ends while an
+The same holds for polyphonic voices, entered with
+@code{<< @dots{} \\ @dots{} >>}.  If a polyphonic voice ends while an
 automatic beam is still accepting notes, it is not typeset.
+The workaround for these problems is to manually beam the last
+beam in the voice or score.
+
+By default, the @code{Timing} translator is aliased to the
+@code{Score} context.  This means that setting the time signature
+in one staff will affect the beaming of the other staves as well.
+Thus, a time signature setting in a later staff will reset custom
+beaming that was set in an earlier staff.
+One way to avoid this problem is to set the time signature
+in only one staff.
+
+@lilypond[quote,verbatim,relative=2]
+<<
+  \new Staff {
+    \time 3/4
+    \set Timing.baseMoment = #(ly:make-moment 1 8)
+    \set Timing.beatStructure = #'(1 5)
+    \repeat unfold 6 { a8 }
+  }
+  \new Staff {
+    \repeat unfold 6 { a8 }
+  }
+>>
+@end lilypond
+
+The default beam settings for the time signature can also be changed, so
+that the desired beaming will always be used.  Changes in automatic
+beaming settings for a time signature are described in
+@ref{Time signature}.
 
+@lilypond[quote,verbatim,relative=2]
+<<
+  \new Staff {
+    \overrideTimeSignatureSettings
+      #'(3 . 4)         % timeSignatureFraction
+      #'(1 . 8)         % baseMomentFraction
+      #'(1 5)           % beatStructure
+      #'()             % beamExceptions
+    \time 3/4
+    \repeat unfold 6 { a8 }
+  }
+  \new Staff {
+    \time 3/4
+    \repeat unfold 6 { a8 }
+  }
+>>
+@end lilypond
 
 @node Manual beams
 @unnumberedsubsubsec Manual beams
@@ -1882,10 +2260,11 @@ notes.  Such beams can be specified manually by
 marking the begin and end point with @code{[} and @code{]}.
 
 @lilypond[quote,relative=1,verbatim]
-r4 r8[ g' a r8] r8 g[ | a] r8
+r4 r8[ g' a r] r g[ | a] r
 @end lilypond
 
 @cindex manual beams, direction shorthand for
+@cindex manual beams, grace notes
 
 Beaming direction can be set manually using direction indicators:
 
@@ -1904,6 +2283,17 @@ from being beamed:
 c8 c\noBeam c c
 @end lilypond
 
+Grace note beams and normal note beams can occur simultaneously.
+Unbeamed grace notes are not put into normal note beams.
+
+@lilypond[quote,verbatim,relative=2]
+c4 d8[
+\grace { e32[ d c d] }
+e8] e[ e
+\grace { f16 }
+e8 e]
+@end lilypond
+
 @funindex stemLeftBeamCount
 @funindex stemRightBeamCount
 
@@ -1940,7 +2330,8 @@ g16 a]
 
 @seealso
 Notation Reference:
-@ref{Direction and placement}.
+@ref{Direction and placement},
+@ref{Grace notes}.
 
 Snippets:
 @rlsr{Rhythms}.
@@ -1971,9 +2362,9 @@ feathered beam must be indicated manually using @code{[} and
 direction to the @code{Beam} property @code{grow-direction}.
 
 If the placement of the notes and the sound in the MIDI output is to
-reflect the ritardando or accelerando indicated by the feathered beam
-the notes must be grouped as a music expression delimited by braces
-and preceded by a @code{featherDurations} command which specifies
+reflect the @emph{ritardando} or @emph{accelerando} indicated by the
+feathered beam the notes must be grouped as a music expression delimited
+by braces and preceded by a @code{featherDurations} command which specifies
 the ratio between the durations of the first and last notes in the
 group.
 
@@ -2139,7 +2530,7 @@ g1 \bar ":|:"
 a1 \bar ":|.|:"
 b1 \bar ":|.:"
 c1 \bar ":|"
-d1
+e1
 @end lilypond
 
 Additionally, a bar line can be printed as a simple tick:
@@ -2150,6 +2541,26 @@ However, as such ticks are typically used in Gregorian chant, it is
 preferable to use @code{\divisioMinima} there instead, described in
 the section @ref{Divisiones} in Gregorian chant.
 
+@cindex segno
+
+For in-line segno signs, there are three types of bar lines which
+differ in their behavior at line breaks:
+
+@lilypond[quote,relative=2,verbatim]
+c4 c c c
+\bar "S"
+c4 c c c \break
+\bar "S"
+c4 c c c
+\bar "|S"
+c4 c c c \break
+\bar "|S"
+c4 c c c
+\bar "S|"
+c4 c c c \break
+\bar "S|"
+c1
+@end lilypond
 
 @cindex repeats
 
@@ -2172,6 +2583,38 @@ c4 c c c \break
 c4 c c c
 @end lilypond
 
+For combinations of repeats with the segno sign, there are six different
+variations:
+
+@lilypond[quote,relative=2,verbatim]
+c4 c c c
+\bar ":|S"
+c4 c c c \break
+\bar ":|S"
+c4 c c c
+\bar ":|S."
+c4 c c c \break
+\bar ":|S."
+c4 c c c
+\bar "S|:"
+c4 c c c \break
+\bar "S|:"
+c4 c c c
+\bar ".S|:"
+c4 c c c \break
+\bar ".S|:"
+c4 c c c
+\bar ":|S|:"
+c4 c c c \break
+\bar ":|S|:"
+c4 c c c
+\bar ":|S.|:"
+c4 c c c \break
+\bar ":|S.|:"
+c1
+@end lilypond
+
+
 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},
@@ -2203,13 +2646,13 @@ connected between different staves of a @code{StaffGroup},
 @funindex bar
 @funindex bartype
 
-The command @code{\bar }@var{bartype} is a shortcut for
-@code{\set Timing.whichBar = }@var{bartype}.  A bar line is
+The command @samp{\bar @var{bartype}} is a shortcut for
+@samp{\set Timing.whichBar = @var{bartype}}.  A bar line is
 created whenever the @code{whichBar} property is set.
 
 The default bar type used for automatically inserted bar lines is
-@code{"|"}.  This may be changed at any time
-with @code{\set Timing.defaultBarType = }@var{bartype}.
+@code{"|"}.  This may be changed at any time with
+@samp{\set Timing.defaultBarType = @var{bartype}}.
 
 
 @seealso
@@ -2312,7 +2755,6 @@ Internals Reference:
 @cindex collision, bar number
 
 @knownissues
-
 Bar numbers may collide with the top of the @code{StaffGroup} bracket,
 if there is one.  To solve this, the @code{padding} property of
 @code{BarNumber} can be used to position the number correctly.  See
@@ -2374,10 +2816,10 @@ for end of bar.
 @lilypond[quote,verbatim]
 pipeSymbol = \bar "||"
 {
-  c'2 c'2 |
-  c'2 c'2
-  c'2 | c'2
-  c'2 c'2
+  c'2 c' |
+  c'2 c'
+  c'2 | c'
+  c'2 c'
 }
 @end lilypond
 
@@ -2414,6 +2856,19 @@ Snippets:
 
 To print a rehearsal mark, use the @code{\mark} command.
 
+@lilypond[quote,verbatim,relative=2]
+c1 \mark \default
+c1 \mark \default
+c1 \mark \default
+c1 \mark \default
+@end lilypond
+
+@noindent
+The mark is incremented automatically if you use @code{\mark
+\default}, but you can also use an integer argument to set the
+mark manually.  The value to use is stored in the property
+@code{rehearsalMark}.
+
 @lilypond[quote,verbatim,relative=2]
 c1 \mark \default
 c1 \mark \default
@@ -2424,16 +2879,25 @@ c1 \mark \default
 
 @noindent
 The letter@tie{}@q{I} is skipped in accordance with engraving
-traditions.  If you wish to include the letter @q{I}, then use
+traditions.  If you wish to include the letter @q{I}, then use one
+of the following commands, depending on which style of rehearsal mark
+you want (letters only, letters in a hollow box, or letters in a
+hollow circle).
 
 @example
 \set Score.markFormatter = #format-mark-alphabet
+\set Score.markFormatter = #format-mark-box-alphabet
+\set Score.markFormatter = #format-mark-circle-alphabet
 @end example
 
-The mark is incremented automatically if you use @code{\mark
-\default}, but you can also use an integer argument to set the
-mark manually.  The value to use is stored in the property
-@code{rehearsalMark}.
+@lilypond[quote,verbatim,relative=2]
+\set Score.markFormatter = #format-mark-box-alphabet
+c1 \mark \default
+c1 \mark \default
+c1 \mark #8
+c1 \mark \default
+c1 \mark \default
+@end lilypond
 
 @cindex rehearsal mark format
 @cindex rehearsal mark style
@@ -2465,7 +2929,7 @@ c1 \mark \default
 c1
 @end lilypond
 
-The file @file{scm/@/translation@/-functions@/.scm} contains the
+The file @file{scm/translation-functions.scm} contains the
 definitions of @code{format-mark-numbers} (the default format),
 @code{format-mark-box-numbers}, @code{format-mark-letters} and
 @code{format-mark-box-letters}.  These can be used as inspiration
@@ -2527,7 +2991,7 @@ Notation Reference:
 @ref{Aligning objects}.
 
 Installed Files:
-@file{scm/@/translation@/-functions@/.scm} contains
+@file{scm/translation-functions.scm} contains
 the definitions of @code{format-mark-numbers} and
 @code{format-mark-letters}.  They can be used as inspiration for
 other formatting functions.
@@ -2562,7 +3026,7 @@ Internals Reference:
 @funindex \grace
 @funindex grace
 
-Grace notes are ornaments that are written out. Grace notes
+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.
 
@@ -2631,7 +3095,7 @@ finally at 1/2 of the main note.
 @end lilypond
 
 The space between the main note and the grace note may also be
-specified using spacers. The following example places the grace
+specified using spacers.  The following example places the grace
 note after a space lasting 7/8 of the main note.
 
 @lilypond[quote,verbatim,relative=2]
@@ -2692,8 +3156,11 @@ Music Glossary:
 @rglos{acciaccatura},
 @rglos{appoggiatura}.
 
+Notation Reference:
+@ref{Manual beams}.
+
 Installed Files:
-@file{ly/@/grace@/-init@/.ly}.
+@file{ly/grace-init.ly}.
 
 Snippets:
 @rlsr{Rhythms}.
@@ -2740,9 +3207,61 @@ durations in the other staves.  For the above example
 >>
 @end lilypond
 
-Grace sections should only be used within sequential music
-expressions.  Nesting or juxtaposing grace sections is not
-supported, and might produce crashes or other errors.
+The use of grace notes within voice contexts confuses the way the voice
+is typeset. This can be overcome by inserting a rest or note between the
+voice command and the grace note.
+
+@lilypond[quote,verbatim]
+accMusic = {
+  \acciaccatura { f8 } e8 r8 \acciaccatura { f8 } e8 r4
+}
+
+\new Staff {
+  <<
+    \new Voice {
+      \relative c'' {
+        r8 r8 \voiceOne \accMusic \oneVoice r8 |
+        r8 \voiceOne r8 \accMusic \oneVoice r8 |
+      }
+    }
+    \new Voice {
+      \relative c' {
+        s8 s8 \voiceTwo \accMusic \oneVoice s8 |
+        s8 \voiceTwo r8 \accMusic \oneVoice s8 |
+      }
+    }
+  >>
+}
+@end lilypond
+
+Grace sections should only be used within sequential music expressions.
+Nesting or juxtaposing grace sections is not supported, and might
+produce crashes or other errors.
+
+Each grace note in MIDI output has a length of 1/4 of its actual
+duration.  If the combined length of the grace notes is greater than the
+length of the preceding note a @qq{@code{Going back in MIDI time}}
+error will be generated.  Either make the grace notes shorter in
+duration, for example:
+
+@example
+\acciaccatura @{ c'8[ d' e' f' g'] @}
+@end example
+
+becomes:
+
+@example
+\acciaccatura @{ c'16[ d' e' f' g'] @}
+@end example
+
+Or explicitly change the musical duration:
+
+@example
+\acciaccatura @{ \scaleDurations #' (1 . 2) @{ c'8[ d' e' f' g'] @} @}
+@end example
+
+See @ref{Scaling durations}.
+
 
 @node Aligning to cadenzas
 @unnumberedsubsubsec Aligning to cadenzas
@@ -2805,7 +3324,10 @@ Snippets:
 Time is administered by the @code{Timing_translator}, which by
 default is to be found in the @code{Score} context.  An alias,
 @code{Timing}, is added to the context in which the
-@code{Timing_translator} is placed.
+@code{Timing_translator} is placed.  To ensure that the
+@code{Timing} alias is available, you may need to explicitly
+instantiate the containing context (such as @code{Voice} or
+@code{Staff}).
 
 The following properties of @code{Timing} are used
 to keep track of timing within the score.
@@ -2844,14 +3366,16 @@ At 4/8 through the third measure, the @code{measurePosition} is
 advanced by 1/8 to 5/8, shortening that bar by 1/8.
 The next bar line then falls at 9/8 rather than 5/4.
 
-@lilypond[quote,verbatim,relative=1]
-\set Score.measureLength = #(ly:make-moment 5 4)
-c1 c4
-c1 c4
-c4 c4
-\set Score.measurePosition = #(ly:make-moment 5 8)
-b4 b4 b8
-c4 c1
+@lilypond[quote,verbatim]
+\new Voice \relative c' {
+  \set Timing.measureLength = #(ly:make-moment 5 4)
+  c1 c4 |
+  c1 c4 |
+  c4 c
+  \set Timing.measurePosition = #(ly:make-moment 5 8)
+  b4 b b8 |
+  c4 c1 |
+}
 @end lilypond
 
 @noindent