+@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.