beams into sub-groups by setting the property @code{subdivideBeams}.
When set, multiple beams will be subdivided at intervals defined by the
current value of @code{baseMoment} by reducing the multiple beams to
-the number of beams that indicates the metric value of the subdivision.
+the number of beams that indicates the metric value of the subdivision.
If the group following the division is shorter than the current metric
value (usually because the beam is incomplete) the number of beams
reflects the longest possible subdivision group. However, if there is
\set baseMoment = #(ly:make-moment 1/16)
\set beatStructure = #'(4 4 4 4)
c32[ c c c c c c c]
-
+
% Shorten beam by 1/32
\set baseMoment = #(ly:make-moment 1/8)
\set beatStructure = #'(2 2 2 2)
c32[ c c c c c c] r32
-
+
% Shorten beam by 3/32
\set baseMoment = #(ly:make-moment 1/8)
\set beatStructure = #'(2 2 2 2)
\version "2.19.32"
\header {
-
+
doctitle = "Beam subdivide over quarter notes"
- texidoc = "Beam count at subdivisions should match the location
+ texidoc = "Beam count at subdivisions should match the location
of the current subdivision. However, if the groups are equal or
longer than quarter notes, one beam should always be left."
\version "2.19.34"
\header {
-
+
doctitle = "Beam subdivide with incomplete remainder"
- texidoc = "Beam count at subdivisions should match the count corresponding
+ texidoc = "Beam count at subdivisions should match the count corresponding
to the location of the current subdivision. However, if the remainder of the
beam is shorter than that the beam count should be adopted accordingly."
\time 1/4
\set subdivideBeams = ##t
\set baseMoment = #(ly:make-moment 1/32)
- c64 ^\markup "Full beam (1/32 division)" [ c c c c c c c c c c c c c c c ]
+ c64 ^\markup "Full beam (1/32 division)" [ c c c c c c c c c c c c c c c ]
c64 ^\markup "Shortened by 1/32" [ c c c c c c c c c c c c c ] r32
c64 ^\markup "Shortened by 3/32" [ c c c c c c c c c ] r16.
\set baseMoment = #(ly:make-moment 1/16)
\version "2.19.34"
\header {
-
+
doctitle = "Beam subdivide over quarter notes"
texidoc = "If in a subdivided beam one single stem follows a subdivision
\header {
- texidoc = "Beam count at subdivisions should match the location
+ texidoc = "Beam count at subdivisions should match the location
of the current subdivision."
}
ragged-right = ##t
}
-{
+{
\set subdivideBeams = ##t
\set baseMoment = #(ly:make-moment 1 4)
c''32[^\markup{"baseMoment 1/4"} c'' c'' c'' c'' c'' c'' c'']
Direction non_flag_dir = -flag_directions[i];
if (non_flag_dir)
{
- int count =
- (infos_[i + 1].rhythmic_importance_ < 0 &&
+ int count =
+ (infos_[i + 1].rhythmic_importance_ < 0 &&
options.subdivide_beams_)
- // we're left of a subdivision
+ // we're left of a subdivision
? (i != infos_.size () - 2)
- // respect the beam count for shortened beams ...
+ // respect the beam count for shortened beams ...
? max (beam_count_for_rhythmic_position (i + 1),
beam_count_for_length (remaining_length (i + 1)))
// ... except if there's only one trailing stem
: beam_count_for_rhythmic_position (i + 1)
-
+
// we're at any other stem
: min (min (infos_[i].count (non_flag_dir),
infos_[i + non_flag_dir].count (-non_flag_dir)),
// Ensure at least one beam is left, even for groups longer than 1/8
count = max (count, 1);
-
+
infos_[i].beam_count_drul_[non_flag_dir] = count;
}
}
return intlog2(infos_[idx].start_moment_.main_part_.den()) - 2;
}
-int
+int
Beaming_pattern::beam_count_for_length (Moment len) const
{
return intlog2(len.main_part_.den()) - 2 - intlog2(len.main_part_.num());