@snippets
-@c TODO Send as snippet called "Changing the time signature without affecting the beat length"
-
-The @code{\time} command sets the properties
-@code{timeSignatureFraction}, @code{beatLength}, and
-@code{measureLength} in the @code{Timing} 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:
-
-@lilypond[quote,verbatim,relative=2]
-\time 3/4
-a16 a a a a a a a a a a a
-% Change time signature but keep 3/4 beaming
-% due to unchanged beatLength
-\set Score.timeSignatureFraction = #'(12 . 16)
-a16 a a a a a a a a a a a
-\time 12/16
-% Lose 3/4 beaming now beatLength has changed to 16
-a16 a a a a a a a a a a a
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-the-time-signature-without-affecting-the-beaming.ly}
@cindex compound time signatures
@cindex time signature, compound
to define beaming patterns that differ from the defaults. The
default beaming rules for most common time signatures are defined
in @file{scm/@/auto@/-beam@/.scm}. If there are no beaming rules
-defined for the time signature being used the beaming is controlled
-by the values of three context properties, @code{measureLength},
-@code{beatLength} and @code{beatGrouping}. Both the beaming rules
-and the context properties can be overridden, see
-@ref{Setting automatic beam behavior}.
+defined for a particular beam's duration in the time signature being
+used, its beaming is controlled by the values of three context
+properties, @code{measureLength}, @code{beatLength} and
+@code{beatGrouping}. Both the beaming rules and the context
+properties can be overridden, see @ref{Setting automatic beam behavior}.
@cindex autoBeamOn
@cindex autoBeamOff
defining the beam end points. The second method, modifying the
specification of the beam end points, can be used for any time
signature. This second method @strong{must} be used for those time
-signatures for which beam ending rules are pre-defined, unless
-these have all been reverted. There are predefined rules for time
-signatures of 3/2, 3/4, 4/4, 2/4, 4/8, 4/16, 6/8, 9/8 and 12/8.
+signatures and beam durations combinations for which beam ending
+rules are pre-defined, unless these have all been reverted. There
+are predefined rules for time signatures of 3/2, 3/4, 4/4, 2/4,
+4/8, 4/16, 6/8, 9/8 and 12/8.
@i{@strong{Modifying the grouping of beats}}
-If there are no beam-ending rules defined for the time signature
-in use the beaming is controlled by three context properties:
+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.
@end itemize
-@warning{These three properties are effective @strong{only} if
-there are no beam-ending rules defined for the time signature in
-force, or if these beam-ending rules have all been reverted.}
+@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.}
By default the @code{measureLength} and @code{beatLength} are
derived from the time signature set by the @code{\time} command.
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{grouping-beats.ly}
-@c TODO Convert to snippet called "Specifying context with beatGrouping"
-
-By specifying the context, the effect of @code{beatGrouping} can be
-limited to the context specified, and the values set in higher-level
-contexts overridden:
-
-@lilypond[quote,verbatim]
-\score {
- \new Staff <<
- \time 7/8
- \new Voice {
- \relative c'' {
- \set Staff.beatGrouping = #'(2 3 2)
- a8 a a a a a a
- }
- }
- \new Voice {
- \relative c' {
- \voiceTwo
- \set Voice.beatGrouping = #'(1 3 3)
- f8 f f f f f f
- }
- }
- >>
-}
-@end lilypond
-
-
-@c TODO Send as snippet?
-
-The property @code{measureLength} determines where bar lines
-should be inserted and, with @code{beatLength} and
-@code{beatGrouping}, how automatic beams should be generated
-for time signatures for which no beam-ending rules are defined.
-
-@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
-
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{specifying-context-with-beatgrouping.ly}
-@c End of snippet
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{using-beatlength-and-beatgrouping.ly}
@funindex subdivideBeams
<< {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
@end lilypond
-@c TODO Add example using Score for multiple staves?
-@c Hmm. Not sure it works correctly. Needs more investigation.
-
@warning{If any unexpected beam behavior occurs, check the default
automatic beam settings in @file{scm/@/auto@/-beam@/.scm} for
possible interference, because the beam endings defined there will
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{beam-grouping-in-7-8-time.ly}
-@ignore
-
-@c TODO Does this example add anything?
-
-In this
-example, automatic beams can only end on a dotted quarter note
-@example
-#(override-auto-beam-setting '(end * * * *) 3 8)
-#(override-auto-beam-setting '(end * * * *) 1 2)
-#(override-auto-beam-setting '(end * * * *) 7 8)
-@end example
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{reverting-default-beam-endings.ly}
-In 4/4 time signature, this means that automatic beams could end only on
-3/8 and on the fourth beat of the measure (after 3/4, that is 2 times
-3/8, has passed within the measure).
+@c TODO Convert to snippet called "Beam endings in Score context"
+@c Submitted to LSR 3 Nov 08
-@end ignore
+Beam-ending rules specified in the Score context apply to all
+staves, but can be modified at both Staff and Voice levels:
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
-{reverting-default-beam-endings.ly}
+@lilypond[quote,verbatim,relative=2]
+ \time 5/4
+ % Set default beaming for all staves
+ #(override-auto-beam-setting '(end * * 5 4) 3 8 'Score)
+ #(override-auto-beam-setting '(end * * 5 4) 7 8 'Score)
+ <<
+ \new Staff {
+ c8 c c c c c c c c c
+ }
+ \new Staff {
+ % Modify beaming for just this staff
+ #(override-auto-beam-setting '(end * * 5 4) 6 8 'Staff)
+ #(revert-auto-beam-setting '(end * * 5 4) 7 8 'Staff)
+ c8 c c c c c c c c c
+ }
+ \new Staff {
+ % Inherit beaming from Score context
+ c8 c c c c c c c c c
+ }
+ >>
+@end lilypond
@predefined
@snippets
-@c TODO Add snippet "Flat flags and beam nibs" when available
-@c Added to LSR 27 Oct 08
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{flat-flags-and-beam-nibs.ly}
@node Feathered beams
@unnumberedsubsubsec Feathered beams