From 593d611c5f63f3fedadf299e124a83ca4a709fe6 Mon Sep 17 00:00:00 2001 From: Trevor Daniels Date: Sat, 4 Aug 2012 19:33:33 +0100 Subject: [PATCH] Doc: Clarify automatic beam setting (2701) --- Documentation/notation/rhythms.itely | 45 +++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/Documentation/notation/rhythms.itely b/Documentation/notation/rhythms.itely index d46674a12a..7fdce8a958 100644 --- a/Documentation/notation/rhythms.itely +++ b/Documentation/notation/rhythms.itely @@ -1984,6 +1984,28 @@ new beam starts. @funindex \set @funindex set +When automatic beaming is enabled, the placement of automatic beams +is determined by three context properties: +@code{baseMoment}, @code{beatStructure}, and @code{beamExceptions}. +If a @code{beamExceptions} rule is defined for the time signature in +force, that rule is used to determine the beam placement. If no +@code{beamExceptions} rule is defined for the time signature in force, +the beam placement is determined by the settings of @code{baseMoment} +and @code{beatStructure}. + +By default, @code{beamExceptions} rules are defined for most common +time signatures, so the @code{beamException} rules must be disabled +if automatic beaming is to be based on @code{baseMoment} and +@code{beatStructure}. The @code{beamExceptions} rules are disabled +by + +@example +\set Timing.beamExceptions = #'() +@end example + + +@unnumberedsubsubsec @i{@strong{Beaming based on @code{baseMoment} and @code{beatStructure}}} + 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} @@ -2001,6 +2023,25 @@ c16^"(2+3)" c c c c | c16^"(3+2)" c c c c | @end lilypond +If a common time signature is being used, @code{beamExceptions} +@emph{must} be disabled to enable @code{beatStructure} to work. +The @code{\set Timing.beamExceptions = #'()} command can always +be included if beaming is being determined by @code{beatStructure}. + +@lilypond[quote,relative=2,verbatim] +\time 4/4 +a8^"default" a a a a a a a + +\set Timing.baseMoment = #(ly:make-moment 1 4) +\set Timing.beatStructure = #'(1 1 1 1) +a8^"no change" a a a a a a a + +\set Timing.beamExceptions = #'() +\set Timing.baseMoment = #(ly:make-moment 1 4) +\set Timing.beatStructure = #'(1 1 1 1) +a8^"changed" a a a a a a a +@end lilypond + Beam setting changes can be limited to specific contexts. If no setting is included in a lower-level context, the setting of the enclosing context will apply. @@ -2065,6 +2106,8 @@ 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}. +@unnumberedsubsubsec @i{@strong{Beaming based on @code{beamExceptions}}} + Special autobeaming rules (other than ending a beam on a beat) are defined in the @code{beamExceptions} property. @@ -2176,7 +2219,7 @@ r4. a8 a a | r4. a8 a a | @end lilypond -@i{@strong{How automatic beaming works}} +@unnumberedsubsubsec @i{@strong{How automatic beaming works}} When automatic beaming is enabled, the placement of automatic beams is determined by the context properties -- 2.39.2