[ << Rhythms ] | [Top][Contents][Index] | [ Expressive marks >> ] |
[ < Showing melody rhythms ] | [ Up: Rhythms ] | [ Automatic beams > ] |
2.4 Beams
LilyPond provides two different possibilities for entering beams: automatic and manual input, which can be also mixed.
2.4.1 Automatic beams | ||
2.4.2 Setting automatic beam behavior | ||
2.4.3 Manual beams | ||
2.4.4 Feathered beams | ||
2.4.5 Slashed beams |
[ << Rhythms ] | [Top][Contents][Index] | [ Expressive marks >> ] |
[ < Beams ] | [ Up: Beams ] | [ Setting automatic beam behavior > ] |
2.4.1 Automatic beams
By default, beams are inserted automatically:
\relative c'' { \time 2/4 c8 c c c \time 6/8 c8 c c c8. c16 c8 }![]()
If these automatic decisions are not satisfactory, beaming can be entered explicitly; see Manual beams. Beams must be entered manually if beams are to be extended over rests.
If automatic beaming is not required, it may be turned off with
\autoBeamOff
and on with \autoBeamOn
:
\relative c' { c4 c8 c8. c16 c8. c16 c8 \autoBeamOff c4 c8 c8. c16 c8. \autoBeamOn c16 c8 }![]()
Note: If beams are used to indicate melismata in songs, then
automatic beaming should be switched off with \autoBeamOff
and the beams indicated manually. Using \partCombine
with
\autoBeamOff
can produce unintended results. See the
snippets for more information.
Beaming patterns that differ from the automatic defaults can be created; see Setting automatic beam behavior.
Predefined commands
\autoBeamOff
,
\autoBeamOn
.
Selected Snippets
Beams across line breaks
Normally, LilyPond refuses to automatically break a line at places
where a beam crosses a bar line. This behavior can be changed by
setting the Beam.breakable
property to #t
.
This property does not affect manual breaks inserted with commands like
\break
.
music = { \repeat unfold 8 c8 c8 \repeat unfold 7 { c[ c] } c \repeat unfold 8 c8 } \relative c'' { <>^\markup { \typewriter Beam.breakable set to \typewriter "#t" } \override Beam.breakable = ##t \music } \relative c'' { <>^\markup { \typewriter Beam.breakable not set } \music } \paper { line-width = 100\mm tagline = ##f }![]()
Changing beam knee gap
Kneed beams are inserted automatically when a large gap is detected
between the note heads. This behavior can be tuned through the
auto-knee-gap
property. A kneed beam is drawn if the gap is
larger than the value of auto-knee-gap
plus the width of the
beam object (which depends on the duration of the notes and the slope
of the beam). By default auto-knee-gap
is set to 5.5 staff
spaces.
{ f8 f''8 f8 f''8 \override Beam.auto-knee-gap = 6 f8 f''8 f8 f''8 }![]()
Partcombine and \autoBeamOff
The function of \autoBeamOff
when used with
\partCombine
can be difficult to understand. It may be
preferable to use
\set Staff.autoBeaming = ##f
instead to ensure that auto-beaming is turned off for the entire staff. Use this at a spot in your score where no beam generated by the auto-beamer is still active.
Internally, \partCombine
works with four voices – stem up
single, stem down single, combined, and solo. In order to use
\autoBeamOff
to stop all auto-beaming when used with
\partCombine
, it is necessary to use four calls to
\autoBeamOff
.
{ % \set Staff.autoBeaming = ##f % turns off all auto-beaming \partCombine { \autoBeamOff % applies to split up-stems \repeat unfold 4 a'16 % \autoBeamOff % applies to combined stems \repeat unfold 4 a'8 \repeat unfold 4 a'16 % \autoBeamOff % applies to solo \repeat unfold 4 a'16 r4 } { % \autoBeamOff % applies to split down-stems \repeat unfold 4 f'8 \repeat unfold 8 f'16 | r4 \repeat unfold 4 a'16 } }![]()
See also
Notation Reference: Manual beams, Setting automatic beam behavior.
Installed Files: scm/auto-beam.scm.
Snippets: Rhythms.
Internals Reference: Auto_beam_engraver, Beam_engraver, Beam, BeamEvent, BeamForbidEvent, beam-interface, unbreakable-spanner-interface.
Known issues and warnings
The properties of a beam are determined at the start of its construction and any additional beam property changes that occur before the beam has been completed will not take effect until the next, new beam starts.
[ << Rhythms ] | [Top][Contents][Index] | [ Expressive marks >> ] |
[ < Automatic beams ] | [ Up: Beams ] | [ Manual beams > ] |
2.4.2 Setting automatic beam behavior
When automatic beaming is enabled, the placement of automatic beams
is determined by three context properties:
beatBase
, beatStructure
, and beamExceptions
.
The default values of these variables may be overridden as described
below, or alternatively the default values themselves may be changed
as explained in Time signature.
If a beamExceptions
rule is defined for the time signature in
force, that rule alone is used to determine the beam placement; the
values of beatBase
and beatStructure
are ignored.
If no beamExceptions
rule is defined for the time signature
in force, the beam placement is determined by the values of
beatBase
and beatStructure
.
Beaming based on beatBase
and beatStructure
By default, beamExceptions
rules are defined for most common
time signatures, so the beamExceptions
rules must be disabled
if automatic beaming is to be based on beatBase
and
beatStructure
. The beamExceptions
rules are disabled
by
\set Timing.beamExceptions = #'()
When beamExceptions
is set to #'()
, either due to an
explicit setting or because no beamExceptions
rules are defined
internally for the time signature in force, the ending points for
beams are on beats as specified by the context properties
beatBase
and beatStructure
. beatStructure
is
a Scheme list that defines the length of each beat in the measure in
units of beatBase
. By default, beatBase
is one
over the denominator of the time signature. By default, each unit of
length beatBase
is a single beat.
Note that there are separate beatStructure
and beatBase
values for each time signature. Changes to these variables apply only
to the time signature that is currently in force, hence those changes
must be placed after the \time
command which starts a new time
signature section, not before it. New values given to a particular
time signature are retained and reinstated whenever that time signature
is reestablished.
\relative c'' { \time 5/16 c16^"default" c c c c | % beamExceptions are unlikely to be defined for 5/16 time, % but let's disable them anyway to be sure \set Timing.beamExceptions = #'() \set Timing.beatStructure = 2,3 c16^"(2+3)" c c c c | \set Timing.beatStructure = 3,2 c16^"(3+2)" c c c c | }![]()
\relative { \time 4/4 a'8^"default" a a a a a a a % Disable beamExceptions because they are definitely % defined for 4/4 time \set Timing.beamExceptions = #'() \set Timing.beatBase = #1/4 \set Timing.beatStructure = 1,1,1,1 a8^"changed" a a a a a a a }![]()
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.
\new Staff { \time 7/8 % No need to disable beamExceptions % as they are not defined for 7/8 time \set Staff.beatStructure = 2,3,2 << \new Voice = one { \relative { a'8 a a a a a a } } \new Voice = two { \relative { \voiceTwo \set Voice.beatStructure = 1,3,3 f'8 f f f f f f } } >> }![]()
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 % Change applied to Voice by default -- does not work correctly % Because of auto-generated voices, all beating will % be at beatBase #1/8 \set beatStructure = 3,1,1,2 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >> % Works correctly with context Staff specified \set Staff.beatStructure = 3,1,1,2 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >>![]()
The value of beatBase
can be adjusted to change
the beaming behavior, if desired. When this is done,
the value of beatStructure
must be set to be
compatible with the new value of beatBase
.
\time 5/8 % No need to disable beamExceptions % as they are not defined for 5/8 time \set Timing.beatBase = #1/16 \set Timing.beatStructure = 7,3 \repeat unfold 10 { a'16 }![]()
By default beatBase
is set to one over the denominator of
the time signature. Any exceptions to this default can be found in
scm/time-signature-settings.scm.
Beaming based on beamExceptions
Special auto-beaming rules (other than ending a beam on a beat)
are defined in the beamExceptions
property.
The value for beamExceptions
, a somewhat complex Scheme
data structure, is easiest generated with the
\beamExceptions
function. This function is given one or
more manually beamed measure-long rhythmic patterns (measures
have to be separated by a bar check |
since the
function has no other way to discern the measure length). Here is
a simple example:
\relative c'' { \time 3/16 \set Timing.beatStructure = 2,1 \set Timing.beamExceptions = \beamExceptions { 32[ 32] 32[ 32] 32[ 32] } c16 c c | \repeat unfold 6 { c32 } | }![]()
Note: A beamExceptions
value must be complete
exceptions list. That is, every exception that should be applied
must be included in the setting. It is not possible to add, remove,
or change only one of the exceptions. While this may seem cumbersome,
it means that the current beaming settings need not be known in order
to specify a new beaming pattern.
When the time signature is changed, default values of
Timing.beatBase
, Timing.beatStructure
,
and Timing.beamExceptions
are set. Setting the time signature
will reset the automatic beaming settings for the Timing
context to the default behavior.
\relative a' { \time 6/8 \repeat unfold 6 { a8 } % group (4 + 2) \set Timing.beatStructure = 4,2 \repeat unfold 6 { a8 } % go back to default behavior \time 6/8 \repeat unfold 6 { a8 } }![]()
The default automatic beaming settings for a time signature are determined in scm/time-signature-settings.scm. Changing the default automatic beaming settings for a time signature is described in Time signature.
Many automatic beaming settings for a time signature contain an
entry for beamExceptions
. For example, 4/4 time tries to
beam the measure in two if there are only eighth notes. The
beamExceptions
rule can override the beatStructure
setting
if beamExceptions
is not reset.
\time 4/4 \set Timing.beatBase = #1/8 \set Timing.beatStructure = 3,3,2 % This won't beam (3 3 2) because of beamExceptions \repeat unfold 8 {c''8} | % This will beam (3 3 2) because we clear beamExceptions \set Timing.beamExceptions = #'() \repeat unfold 8 {c''8}![]()
In a similar fashion, eighth notes in 3/4 time are beamed as a full
measure by default. To beam eighth notes in 3/4 time on the beat,
reset beamExceptions
.
\time 3/4 % by default we beam in (6) due to beamExceptions \repeat unfold 6 {a'8} | % This will beam (1 1 1) due to default beatBase and beatStructure \set Timing.beamExceptions = #'() \repeat unfold 6 {a'8}![]()
In engraving from the romantic and classical periods,
beams often begin midway through the measure in 3/4 time,
but modern practice is to avoid the false impression of 6/8 time
(see Gould, p. 153). Similar situations arise in 3/8 time.
This behavior is controlled by the context property beamHalfMeasure
,
which has effect only in time signatures with 3 in the numerator:
\relative a' { \time 3/4 r4. a8 a a | \set Timing.beamHalfMeasure = ##f r4. a8 a a | }![]()
How automatic beaming works
When automatic beaming is enabled, the placement of automatic beams
is determined by the context properties
beatBase
, beatStructure
, and beamExceptions
.
The following rules, in order of priority, apply when determining the appearance of beams:
- If a manual beam is specified with
[…]
set the beam as specified, otherwise - if a beam ending rule is defined in
beamExceptions
for the beam type, use it to determine the valid places where beams may end, otherwise - if a beam ending rule is defined in
beamExceptions
for a longer beam type, use it to determine the valid places where beams may end, otherwise - use the values of
beatBase
andbeatStructure
to determine the ends of the beats in the measure, and end beams at the end of beats.
In the rules above, the beam type is the duration of the shortest note in the beamed group.
The default beaming rules can be found in scm/time-signature-settings.scm.
Selected Snippets
Subdividing beams
The beams of consecutive 16th (or shorter) notes are, by default, not
subdivided. That is, the beams of more than two stems stretch unbroken
over entire groups of notes. This behavior can be modified to subdivide
the beams into sub-groups by setting the property subdivideBeams
to true (#t
). When set, a number of beamlets between two
consecutive stems are removed at intervals multiple beams will be
subdivided at intervals to match the metric value of the subdivision.
Properties beamMinimumSubdivision
and
beamMaximumSubdivision
allow configuring limits of
automatic beam subdivision: the minimum rhythmic interval at which to
subdivide beams and the number of beamlets removed depending on the
interval respectively. If the numerator of
beamMaximumSubdivision
is not a power of 2, the
smaller rhythmic intervals considered for subdivision are
beamMaximumSubdivision
divided by powers of 2 and
stay greater than or equal to beamMinimumSubdivision
. If
beamMaximumSubdivision
< beamMinimumSubdivision
,
then the depths of beam subdivision are limited to
beamMaximumSubdivision
, but not the frequency/intervals,
therefore possibly deviating from the correct expected metric value. If
respectIncompleteBeams
is set to true (##t
), the depth of the
subdivision (number of beams) reflects the longest possible subdivision interval
within the remaining length of the beam from the current stem. However, the
last two stems of the beam are exempt from this rule.
\relative c'' { c32[ c c c c c c c] \set subdivideBeams = ##t c32[ c c c c c c c] % Set minimum beam subdivision interval to 1/8 just for this beam \once \set beamMinimumSubdivision = #1/8 c32[ c c c c c c c] % Set maximum beam subdivision interval to 1/16 just for this beam \once \set beamMaximumSubdivision = #1/16 c32[ c c c c c c c] % Set maximum beam subdivision interval to 3/8 just for this beam \once \set beamMaximumSubdivision = #3/8 [ \repeat unfold 16 c64 ] r2. % Set maximum beam subdivision interval to 1/64 to limit subdivision depth, % despite not being metrically correct \once \set beamMinimumSubdivision = #1/32 \once \set beamMaximumSubdivision = #1/64 [ \repeat unfold 32 c128 ] r2. % Shorten beam by 1/32 c32[ c c c c c c] r32 % Shorten beam by 3/32 c32[ c c c c] r16. % Respect the incomplete beams of the previous two examples \set respectIncompleteBeams = ##t c32[ c c c c c c] r32 % no visual change here as last two stems are exempt from this % special rule c32[ c c c c] r16. }![]()
Strict beat beaming
Beamlets can be set to point in the direction of the beat to which they belong. The first beam avoids sticking out flags (the default); the second beam strictly follows the beat.
\relative c'' { \time 6/8 a8. a16 a a \set strictBeatBeaming = ##t a8. a16 a a }![]()
Conducting signs, measure grouping signs
Context properties control the grouping of beats within a measure:
beatStructure
lists the length of each beat in units of
beatBase
. Default values are established in
scm/time-signature-settings.scm
. These properties may be
changed particularly with \set
.
Alternatively, \time
optionally accepts a beat structure to use
instead of the default. \time
applies to the Timing
context, so it does not reset values of properties that are set in
lower-level contexts such as Voice
.
If the Measure_grouping_engraver
is included in one of the
display contexts, measure grouping signs will be created. Such signs
ease reading rhythmically complex modern music. In the example, the 9/8
measure is grouped in two different patterns using the two different
methods, while the 5/8 measure is grouped according to the default
setting in scm/time-signature-settings.scm
. For the 4/4 measure
you have to explicitly set beatBase
to eighths so that the bar’s
irregular pattern gets displayed.
\score { \new Voice \relative c'' { \time 9/8 g8 g d d g g a( bes g) | \set Timing.beatStructure = 2,2,2,3 g8 g d d g g a( bes g) | \time 4,5 9/8 g8 g d d g g a( bes g) | \time 5/8 a4. g4 | \time 3,3,2 4/4 \set Timing.beatBase = #1/8 f4 d8 f4 d8 g4 } \layout { \context { \Staff \consists "Measure_grouping_engraver" } } }![]()
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 \set Score.beatBase = #1/8 \set Score.beatStructure = 3,4,3 << \new Staff { c8 c c c c c c c c c } \new Staff { % Modify beaming for just this staff \set Staff.beatStructure = 6,4 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 \set Voice.beatStructure = 6,4 a8 a a a a a a a a a } >> } >> }![]()
See also
Notation Reference: Time signature.
Installed Files: scm/time-signature-settings.scm.
Snippets: Rhythms.
Internals Reference: Auto_beam_engraver, Beam, BeamForbidEvent, beam-interface.
Known issues and warnings
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.
The workaround for these problems is to manually beam the last
beam in the voice or score.
By default, the Timing
translator is aliased to the
Score
context. This means that setting the time signature
in one staff will affect the beaming of the other staves as well.
Thus, a time signature setting in a later staff will reset custom
beaming that was set in an earlier staff.
One way to avoid this problem is to set the time signature
in only one staff.
<< \new Staff { \time 3/4 \set Timing.beatBase = #1/8 \set Timing.beatStructure = 1,5 \set Timing.beamExceptions = #'() \repeat unfold 6 { a'8 } } \new Staff { \repeat unfold 6 { a'8 } } >>![]()
The default beam settings for the time signature can also be changed, so that the desired beaming will always be used. Changes in automatic beaming settings for a time signature are described in Time signature.
<< \new Staff { \overrideTimeSignatureSettings 3/4 % timeSignatureFraction #1/8 % beatBase 1,5 % beatStructure #'() % beamExceptions \time 3/4 \repeat unfold 6 { a'8 } } \new Staff { \time 3/4 \repeat unfold 6 { a'8 } } >>![]()
[ << Rhythms ] | [Top][Contents][Index] | [ Expressive marks >> ] |
[ < Setting automatic beam behavior ] | [ Up: Beams ] | [ Feathered beams > ] |
2.4.3 Manual beams
In some cases it may be necessary to override the automatic
beaming algorithm. For example, the auto-beamer will not put beams
over rests or bar lines, and in choral scores the beaming is
often set to follow the meter of the lyrics rather than the
notes. Such beams can be specified manually by
marking the begin and end point with [
and ]
.
\relative { r4 r8[ g' a r] r g[ | a] r }![]()
Beaming direction can be set manually using direction indicators:
\relative { c''8^[ d e] c,_[ d e f g] }![]()
Individual notes may be marked with \noBeam
to prevent them
from being beamed:
\relative { \time 2/4 c''8 c\noBeam c c }![]()
Grace note beams and normal note beams can occur simultaneously. Unbeamed grace notes are not put into normal note beams.
\relative { c''4 d8[ \grace { e32 d c d } e8] e[ e \grace { f16 } e8 e] }![]()
Even more strict manual control with the beams can be achieved by
setting the properties stemLeftBeamCount
and
stemRightBeamCount
. They specify the number of beams to
draw on the left and right side, respectively, of the next note.
If either property is set, its value will be used only once, and
then it is erased. In this example, the last f
is printed
with only one beam on the left side, i.e., the eighth-note beam of
the group as a whole.
\relative a' { a8[ r16 f g a] a8[ r16 \set stemLeftBeamCount = 2 \set stemRightBeamCount = 1 f16 \set stemLeftBeamCount = 1 g16 a] }![]()
Predefined commands
\noBeam
.
Selected Snippets
Beam nibs
Beam nibs at the start and end of beams together with beams attached to
solitary notes that look like flat flags are possible with a
combination of stemLeftBeamCount
, stemRightBeamCount
, and
paired []
beam indicators.
For imitating right-pointing flat flags on lone notes, use paired
[]
beam indicators and set stemLeftBeamCount
to
zero. For imitating left-pointing flat flags on lone notes, set
stemRightBeamCount
to zero instead (line one).
For right-pointing nibs at the end of a run of beamed notes, set
stemRightBeamCount
to a positive value. For left-pointing nibs
at the start of a run of beamed notes, set stemLeftBeamCount
instead (line two).
Sometimes it may make sense for a lone note surrounded by rests to
carry both a left- and right-pointing nib. Do this with paired
[]
beam indicators alone (line three).
Note that \set stemLeftBeamCount
is always equivalent to
\once \set
. In other words, the beam count settings are not
“sticky”, so the pair of nibs attached to the lone 16th note in the
last example has nothing to do with the \set
command for the
beam before.
\score { << \new RhythmicStaff { \set stemLeftBeamCount = 0 c16[] r8. r8. \set stemRightBeamCount = 0 16[] } \new RhythmicStaff { 16 16 \set stemRightBeamCount = 2 16 r r \set stemLeftBeamCount = 2 16 16 16 } \new RhythmicStaff { 16 16 \set stemRightBeamCount = 2 16 r16 16[] r16 \set stemLeftBeamCount = 2 16 16 } >> }![]()
Using alternative flag styles
Alternative shapes for flags on eighth and shorter notes can be displayed by
overriding the stencil
property of Flag
. LilyPond provides
the following functions: modern-straight-flag
,
old-straight-flag
, and flat-flag
. Use \revert
to
restore the default shape.
To get stacked (i.e., vertically more compact) flags, call the command
\flagStyleStacked
, which can be reset with
\flagStyleDefault
.
Overriding the Flag
stencil does not change how flag elements are
positioned vertically. This is especially noticeable for flat flags:
LilyPond doesn’t dynamically adjust the vertical gaps between flag elements
in the same way as it does for beams. A possible solution to harmonize the
appearance is to replace flat flags with half beams, as shown in the second
staff; however, this can’t be done automatically. In the code of this
snippet, such half beams are entered with @
as a prefix, for example
@c8
.
Be aware that half beams are not Flag
grobs. This means in
particular that modifying Flag
properties won’t have any effect on
them (you have to use Beam
properties instead), and properties for
their associated Stem
grob will also behave beam-like.
"@" = #(define-music-function (music) (ly:music?) #{ \set stemLeftBeamCount = 0 $music [] #}) testnotes = { \autoBeamOff c8 d16 e''32 f64 \acciaccatura { g,,,8 } a128 b } \relative c' { \override TextScript.staff-padding = 6 \time 1/4 <>^"default" \testnotes \override Flag.stencil = #modern-straight-flag <>_"modern straight" \testnotes \override Flag.stencil = #old-straight-flag <>^"old straight" \testnotes \override Flag.stencil = #flat-flag <>_"flat" \testnotes \revert Flag.stencil \flagStyleStacked <>^"stacked" \testnotes \flagStyleDefault <>_"default" \testnotes } \relative c' { \time 3/4 \override Flag.stencil = #flat-flag <>^"flat" c8 c[ c] d16 d[ d] e''32 e[ e] f64 f[ f] \acciaccatura { g,,,8 } a128 a[ a a a a] <>^"beam-like" @c8 c[ c] @d16 d[ d] @e''32 e[ e] @f64 f[ f] \acciaccatura { g,,,8 } @a128 a[ a a a a] } \layout { indent = 0 \context { \Score \override NonMusicalPaperColumn.line-break-permission = ##f } }
![[image of music]](../d9/lily-33563bf1.png)
See also
Notation Reference: Direction and placement, Grace notes.
Snippets: Rhythms.
Internals Reference: Beam, BeamEvent, Beam_engraver, beam-interface, Stem_engraver.
[ << Rhythms ] | [Top][Contents][Index] | [ Expressive marks >> ] |
[ < Manual beams ] | [ Up: Beams ] | [ Slashed beams > ] |
2.4.4 Feathered beams
Feathered beams are used to indicate that a small group of notes
should be played at an increasing (or decreasing) tempo, without
changing the overall tempo of the piece. The extent of the
feathered beam must be indicated manually using [
and
]
, and the beam feathering is turned on by specifying a
direction to the Beam
property grow-direction
.
If the placement of the notes and the sound in the MIDI output is to
reflect the ritardando or accelerando indicated by the
feathered beam the notes must be grouped as a music expression delimited
by braces and preceded by a \featherDurations
command which specifies
the ratio between the durations of the first and last notes in the
group.
The square brackets show the extent of the beam and the braces show which notes are to have their durations modified. Normally these would delimit the same group of notes, but this is not required: the two commands are independent.
In the following example the eight 16th notes occupy exactly the same time as a half note, but the first note is one half as long as the last one, with the intermediate notes gradually lengthening. The first four 32nd notes gradually speed up, while the last four 32nd notes are at a constant tempo.
\relative c' { \override Beam.grow-direction = #LEFT \featherDurations 2/1 { c16[ c c c c c c c] } \override Beam.grow-direction = #RIGHT \featherDurations 2/3 { c32[ d e f] } % revert to non-feathered beams \override Beam.grow-direction = #'() { g32[ a b c] } }![]()
The spacing in the printed output represents the note durations only approximately, but the MIDI output is exact.
Predefined commands
\featherDurations
.
See also
Snippets: Rhythms.
Known issues and warnings
The \featherDurations
command only works with very short
music snippets, and when numbers in the fraction are small.
[ << Rhythms ] | [Top][Contents][Index] | [ Expressive marks >> ] |
[ < Feathered beams ] | [ Up: Beams ] | [ Bars > ] |
2.4.5 Slashed beams
Slashed beams are printed by using the special stencil procedure
beam::slashed-stencil
. The slash may be printed at the left or right
side of the beam and is further customizable by overrides of the details
subproperties over-beam-height
, slash-slope
, slash-side
,
slash-stem-fraction
, slash-thickness
, and
slash-X-positions
.
Note that those subproperties negotiate with each other to get a pleasing
output, i.e., changing one of them may have impact on others.
mus = \repeat unfold 4 a16 { \override TextScript.rotation = #'(15 1 0) \override Beam.stencil = #beam::slashed-stencil \mus <>^"slash-side" %% default: LEFT \once \override Beam.details.slash-side = #RIGHT \mus <>^"over-beam-height" %% default: 0.75 \once \override Beam.details.over-beam-height = #1.5 \mus <>^"slash-slope" %% default: 2 \once \override Beam.details.slash-slope = #1.0 \mus <>^"slash-stem-fraction" %% default: 0.3 \once \override Beam.details.slash-stem-fraction = #0.6 \mus <>^"slash-thickness" %% default: 0.1 \once \override Beam.details.slash-thickness = #0.2 \mus <>^"slash-X-positions" %% default: (-0.5 . 1) \once \override Beam.details.slash-X-positions = #'(-1 . 2) \mus }![]()
[Top][Contents][Index] |