Next: Manual beams, Previous: Automatic beams, Up: Beams
The placement of automatic beams is determined by the rules described in Automatic beams. There are two mutually exclusive ways in which these rules may be modified. The first, modifying the grouping of beats, applies to uncommon time signatures, i.e. those for which there are no predefined rules 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 must be used for those time 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.
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:
measureLength
, beatLength
and beatGrouping
.
These properties may be set in the Score
, Staff
or
Voice
contexts to delimit their scope. The default values
are set while processing \time
commands, so the \set
commands must be placed after all \time
commands.
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 beatGrouping
and
beatLength
, as follows:
beatGrouping
and beatLength
are consistent
with measureLength
, beatGrouping
is used to determine
the end points of beams.
beatGrouping
and beatLength
are inconsistent
with measureLength
, beatLength
is used to determine
the end points of beams.
Note: These three properties become effective for a particular beam 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 measureLength
and beatLength
are
derived from the time signature set by the \time
command.
The measureLength
is set to be exactly the same length as
the measure length given by the time signature, and the
beatLength
is set to be the same as one over the denominator
of the time signature.
The default value of beatGrouping
is taken from a table in
scm/music-functions.scm. To find this, see
Other sources of information. It defines the beat
grouping for 5/8, 6/8, 8/8, 9/8 and 12/8 time signatures.
Both measureLength
and beatLength
are moments,
units of musical duration. A quantity of type moment is
created by the scheme function ly:make-moment
. For more
information about this function, see Time administration.
beatGrouping
is a list of integers giving the number of
beats in each group.
Grouping beats
Beaming patterns may be altered with the beatGrouping
property:
\relative c'' { \time 5/16 \set beatGrouping = #'(2 3) c8[^"(2+3)" c16 c8] \set beatGrouping = #'(3 2) c8[^"(3+2)" c16 c8] }
Specifying context with beatGrouping
By specifying the context, the effect of beatGrouping
can be
limited to the context specified, and the values which may have
been set in higher-level contexts can be overridden. The
\set
commands must be placed after all ime
commands:
\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 } } >> }
Using beatLength and beatGrouping
The property measureLength
determines where bar lines
should be inserted and, with beatLength
and
beatGrouping
, how automatic beams should be generated
for beam durations and time signatures for which no beam-ending
rules are defined. This example shows several ways of controlling
beaming by setting these properties. The explanations are shown
as comments in the code.
\relative c'' { \time 3/4 % The default in 3/4 time is to beam in three groups % each of a quarter note length a16 a a a a a a a a a a a \time 12/16 % No auto-beaming is defined for 12/16 a16 a a a a a a a a a a a \time 3/4 % Change time signature symbol, but retain underlying 3/4 beaming \set Score.timeSignatureFraction = #'(12 . 16) a16 a a a a a a a a a a a % The 3/4 time default grouping of (1 1 1) and beatLength of 1/8 % are not consistent with a measureLength of 3/4, so the beams % are grouped at beatLength intervals \set Score.beatLength = #(ly:make-moment 1 8) a16 a a a a a a a a a a a % Specify beams in groups of (3 3 2 3) 1/16th notes % 3+3+2+3=11, and 11*1/16<>3/4, so beatGrouping does not apply, % and beams are grouped at beatLength (1/16) intervals \set Score.beatLength = #(ly:make-moment 1 16) \set Score.beatGrouping = #'(3 3 2 3) a16 a a a a a a a a a a a % Specify beams in groups of (3 4 2 3) 1/16th notes % 3+4+2+3=12, and 12*1/16=3/4, so beatGrouping applies \set Score.beatLength = #(ly:make-moment 1 16) \set Score.beatGrouping = #'(3 4 2 3) a16 a a a a a a a a a a a }
Sub-dividing beams
The beams of consecutive 16th (or shorter) notes are, by default, not
sub-divided. That is, the three (or more) beams stretch unbroken over
entire groups of notes. This behavior can be modified to sub-divide
the beams into sub-groups by setting the property
subdivideBeams
. When set, multiple beams will be sub-divided at
intervals defined by the current value of beatLength
by reducing
the multiple beams to just one beam between the sub-groups. Note that
beatLength
defaults to one over the denominator of the current
time signature if not set explicitly. It must be set to a fraction
giving the duration of the beam sub-group using the make-moment
function, as shown here:
\relative c'' { c32[ c c c c c c c] \set subdivideBeams = ##t c32[ c c c c c c c] % Set beam sub-group length to an eighth note \set beatLength = #(ly:make-moment 1 8) c32[ c c c c c c c] % Set beam sub-group length to a sixteenth note \set beatLength = #(ly:make-moment 1 16) c32[ c c c c c c c] }
Conducting signs, measure grouping signs
Options to group beats within a bar are available through the Scheme
function set-time-signature
, which takes three arguments: the
number of beats, the beat length, and the internal grouping of beats in
the measure. If the Measure_grouping_engraver
is included, the
function will also create MeasureGrouping
signs. Such signs
ease reading rhythmically complex modern music. In the example, the
9/8 measure is subdivided in 2, 2, 2 and 3. This is passed to
set-time-signature
as the third argument: '(2 2 2 3)
:
\score { \relative c'' { #(set-time-signature 9 8 '(2 2 2 3)) #(revert-auto-beam-setting '(end * * 9 8) 3 8) #(override-auto-beam-setting '(end 1 8 9 8) 1 4) #(override-auto-beam-setting '(end 1 8 9 8) 2 4) #(override-auto-beam-setting '(end 1 8 9 8) 3 4) g8 g d d g g a( bes g) | #(set-time-signature 5 8 '(3 2)) a4. g4 } \layout { \context { \Staff \consists "Measure_grouping_engraver" } } }
Modifying the beam end points
In common time signatures, automatic beams can start on any note
but can end at only a few positions within the measure, namely at
durations specified by the properties in autoBeamSettings
.
These properties consist of a list of rules defining where beams can
end. The default autoBeamSettings
rules are defined in
scm/auto-beam.scm. To find this, see
Other sources of information.
This method must be used for the time signatures for which beam-ending rules are defined by default, unless these have all been reverted. It is also particularly suitable for many other time signatures if the time signature of the measures changes frequently, or if the beaming should be different for different beam durations.
In order to add a rule to the list, use
#(override-auto-beam-setting '(beam-limit beam-numerator beam-denominator time-signature-numerator time-signature-denominator) moment-numerator moment-denominator [context])
where
beam-limit
is the type of automatic beam limit
defined. This can be either begin
or end
but
only end
is effective.
beam-numerator/beam-denominator
is the beam duration
to which the rule is to apply. A beam is considered to have
the duration of its shortest note. Set beam-numerator
and beam-denominator
to '*'
to have this rule apply
to beams of any duration.
time-signature-numerator/time-signature-denominator
specifies the time signature to which this rule should apply.
If time-signature-numerator
and
time-signature-denominator
are set to '*'
this rule
will apply in any time signature.
monent-numerator/moment-denominator
is the position
in the bar at which the beam should end.
context
is optional, and it specifies the context at which
the change should be made. The default is 'Voice
.
#(score-override-auto-beam-setting '(A B C D) E F)
is equivalent to
#(override-auto-beam-setting '(A B C D) E F 'Score)
.
For example, if automatic beams should always end on the first quarter note, whatever the time signature or beam duration, use
a8 a a a a a a a #(override-auto-beam-setting '(end * * * *) 1 4) a8 a a a a a a a
You can force the beam settings to take effect only on beams whose shortest note is a certain duration
\time 2/4 % end 1/16 beams for all time signatures at the 1/16 moment #(override-auto-beam-setting '(end 1 16 * *) 1 16) a16 a a a a a a a | a32 a a a a16 a a a a a | % end 1/32 beams for all time signatures at the 1/16 moment #(override-auto-beam-setting '(end 1 32 * *) 1 16) a32 a a a a16 a a a a a |
You can force the beam settings to take effect only in certain time signatures
\time 5/8 % end beams of all durations in 5/8 time signature at the 2/8 moment #(override-auto-beam-setting '(end * * 5 8) 2 8) c8 c d d d \time 4/4 e8 e f f e e d d \time 5/8 c8 c d d d
When multiple voices are used the Staff
context must be
specified if the beaming is to be applied to all voices in the
staff:
\time 7/8 % rhythm 3-1-1-2 % Context not specified - does not work correctly #(override-auto-beam-setting '(end * * 7 8) 3 8) #(override-auto-beam-setting '(end * * 7 8) 4 8) #(override-auto-beam-setting '(end * * 7 8) 5 8) << {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >> % Works correctly with context specified #(override-auto-beam-setting '(end * * 7 8) 3 8 'Staff) #(override-auto-beam-setting '(end * * 7 8) 4 8 'Staff) #(override-auto-beam-setting '(end * * 7 8) 5 8 'Staff) << {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
Note: If any unexpected beam behavior occurs, check the default automatic beam settings in scm/auto-beam.scm for possible interference, because the beam endings defined there will still apply in addition to your own. |
Any unwanted or conflicting default endings must be reverted for your time signature(s). Existing auto-beam rules are removed by using
#(revert-auto-beam-setting '(beam-limit beam-numerator beam-denominator time-signature-numerator time-signature-denominator) moment-numerator moment-denominator [context])
beam-limit
, beam-numerator
, beam-denominator
,
time-signature-numerator
, time-signature-denominator
,
moment-numerator
, moment-denominator
and context
are the same as above.
\time 4/4 a16 a a a a a a a a a a a a a a a % undo a rule ending 1/16 beams in 4/4 time at 1/4 moment #(revert-auto-beam-setting '(end 1 16 4 4) 1 4) a16 a a a a a a a a a a a a a a a
The rule in a revert-auto-beam-setting
statement must exactly
match the original rule. That is, no wildcard expansion is taken into
account.
\time 1/4 #(override-auto-beam-setting '(end 1 16 1 4) 1 8) a16 a a a #(revert-auto-beam-setting '(end 1 16 * *) 1 8) % this won't revert it! a a a a #(revert-auto-beam-setting '(end 1 16 1 4) 1 8) % this will a a a a
Beam grouping in 7/8 time
There are no default automatic beam groupings specified for 7/8 time, so if automatic beams are required the grouping must be specified. For example, to group all beams 2-3-2 in 7/8 time, specify beam endings at 2/8 and 5/8:
\relative c'' { \time 7/8 % rhythm 2-3-2 a8 a a a a a a #(override-auto-beam-setting '(end * * 7 8) 2 8) #(override-auto-beam-setting '(end * * 7 8) 5 8) a8 a a a a a a }
Reverting default beam endings
To typeset beams grouped 3-4-3-2
in 12/8 it is necessary first
to override the default beam endings in 12/8, and then to set up the
new beaming endings:
\relative c'' { \time 12/8 % Default beaming a8 a a a a a a a a a a a % Revert default values in scm/auto-beam.scm for 12/8 time #(revert-auto-beam-setting '(end * * 12 8) 3 8) #(revert-auto-beam-setting '(end * * 12 8) 3 4) #(revert-auto-beam-setting '(end * * 12 8) 9 8) a8 a a a a a a a a a a a % Set new values for beam endings #(override-auto-beam-setting '(end * * 12 8) 3 8) #(override-auto-beam-setting '(end * * 12 8) 7 8) #(override-auto-beam-setting '(end * * 12 8) 10 8) a8 a a a a a a a a a a a }
Beam endings in Score context
Beam-ending rules specified in the Score
context apply to all
staves, but can be modified at both Staff
and Voice
levels:
\relative c'' { \time 5/4 % Set default beaming for all staves #(score-override-auto-beam-setting '(end * * 5 4) 3 8) #(score-override-auto-beam-setting '(end * * 5 4) 7 8) << \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 << { \voiceOne c8 c c c c c c c c c } % Modify beaming for this voice only \new Voice { \voiceTwo #(override-auto-beam-setting '(end * * 5 4) 6 8) #(revert-auto-beam-setting '(end * * 5 4) 7 8) a8 a a a a a a a a a } >> } >> }
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 <<
... \\ ... >>
. If a polyphonic voice ends while an
automatic beam is still accepting notes, it is not typeset.
Snippets: Rhythms.