+@funindex measureLength
+@funindex beatLength
+@funindex beatGrouping
+@funindex \time
+@funindex time
+@funindex \set
+@funindex set
+
+There are two types of beaming rules: @emph{beam-grouping}
+rules and @emph{beam-ending} rules. Beam-grouping rules are the
+simplest, but are over-ridden by any beam-ending rules which apply.
+
+The placement of automatic beams is determined by applying the
+following rules in order:
+
+@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 a beam-ending rule applies use it to determine the valid
+places where beams may end, otherwise
+
+@item if a valid (see below) beat-grouping rule applies 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}}
+
+If there are no beam-ending rules defined for the beam duration of a
+particular beam in the time signature in use, its beaming is
+controlled by three context properties: @code{measureLength},
+@code{beatLength} and @code{beatGrouping}. These properties may be
+set in the @code{Score}, @code{Staff} or @code{Voice} contexts to
+delimit their scope. The default values are set while processing
+@code{\time} commands, so any @code{\set} commands to modify their
+value must be placed after all @code{\time} commands.
+
+@warning{These three properties become effective for a particular
+beam @strong{only} if there are no beam-ending rules predefined for
+that beam's duration in the time signature in use, or if these
+beam-ending rules have all been reverted.}
+
+These determine the beaming as follows:
+
+Beams may begin anywhere (unless a beam is already active). Beams
+end at a time determined by the values of @code{beatGrouping} and
+@code{beatLength}, as follows:
+
+@itemize
+
+@item If @code{beatGrouping} and @code{beatLength} are consistent
+with @code{measureLength}, @code{beatGrouping} is used to determine
+the end points of beams.
+
+@item If @code{beatGrouping} and @code{beatLength} are inconsistent
+with @code{measureLength}, @code{beatLength} is used to determine
+the end points of beams.
+
+@end itemize
+
+By default the @code{measureLength} and @code{beatLength} are
+derived from the time signature set by the @code{\time} command.
+The @code{measureLength} is set to be exactly the same length as
+the measure length given by the time signature, and the
+@code{beatLength} is set to be the same as one over the denominator
+of the time signature.
+
+The default value of @code{beatGrouping} is taken from a table in
+@file{scm/@/music@/-functions@/.scm}. To find this, see
+@rlearning{Other sources of information}. It defines the beat
+grouping for 3/8, 4/8, 5/8, 8/8, and all the common compound time
+signatures.
+
+Both @code{measureLength} and @code{beatLength} are @i{moments},
+units 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}.
+
+@code{beatGrouping} is a list of integers giving the number of
+beats in each group.
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{grouping-beats.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{specifying-context-with-beatgrouping.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{using-beatlength-and-beatgrouping.ly}
+
+@funindex subdivideBeams
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{sub-dividing-beams.ly}
+
+@cindex measure groupings
+@cindex beats, grouping
+@cindex grouping beats
+@cindex measure sub-grouping
+
+@funindex autoBeamSettings
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{conducting-signs,-measure-grouping-signs.ly}
+