X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fbeaming-pattern.cc;h=1dcb791a8d9ca6bc836a10a1276373a4ab47c6ed;hb=8fa2d858;hp=5ffbcfb9d9047ef558213bcc3293b117c9443c37;hpb=7456fb7f523cfd77e628eab0824c530c5b758ccd;p=lilypond.git diff --git a/lily/beaming-pattern.cc b/lily/beaming-pattern.cc index 5ffbcfb9d9..1dcb791a8d 100644 --- a/lily/beaming-pattern.cc +++ b/lily/beaming-pattern.cc @@ -19,6 +19,7 @@ #include "context.hh" #include "beaming-pattern.hh" +#include "misc.hh" /* Represents a stem belonging to a beam. Sometimes (for example, if the stem @@ -166,8 +167,10 @@ Beaming_pattern::beamify (Beaming_options const &options) if (non_flag_dir) { int importance = infos_[i + 1].rhythmic_importance_; - int count = (importance < 0 && options.subdivide_beams_) - ? 1 : min (min (infos_[i].count (non_flag_dir), + int start_dur = intlog2(infos_[i+1].start_moment_.main_part_.den()); + int count = (importance < 0 && options.subdivide_beams_) + ? max(start_dur,3)-2 // 1/8 note has one beam + : min (min (infos_[i].count (non_flag_dir), infos_[i + non_flag_dir].count (-non_flag_dir)), infos_[i - non_flag_dir].count (non_flag_dir));