From: Han-Wen Nienhuys Date: Tue, 23 Sep 2003 14:52:45 +0000 (+0000) Subject: * lily/beam.cc (set_stem_lengths): only lengthen stems X-Git-Tag: release/1.9.10~13 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=85eda92e72d32cf47860a28931ba511f8343d898;p=lilypond.git * lily/beam.cc (set_stem_lengths): only lengthen stems for gapped beams. * lily/beam-quanting.cc (score_forbidden_quants): divide demerit by beamcount. * lily/beam-quanting.cc: tune down SECONDARY_BEAM_DEMERIT, so stem length is more important than forbidden quants. --- diff --git a/ChangeLog b/ChangeLog index e3567464bc..ee39a4b098 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2003-09-23 Han-Wen Nienhuys + * lily/beam.cc (set_stem_lengths): only lengthen stems + for gapped beams. + + * lily/beam-quanting.cc (score_forbidden_quants): divide demerit + by beamcount. + * buildscripts/lilypond-profile.sh (Error): more zsh stuff: print a warning that the warning may erroneous. diff --git a/lily/beam-quanting.cc b/lily/beam-quanting.cc index 5993ade1fa..9576f33cce 100644 --- a/lily/beam-quanting.cc +++ b/lily/beam-quanting.cc @@ -21,7 +21,7 @@ #include "align-interface.hh" const int INTER_QUANT_PENALTY = 1000; -const int SECONDARY_BEAM_DEMERIT = 5; +const Real SECONDARY_BEAM_DEMERIT = 10.0; const int STEM_LENGTH_DEMERIT_FACTOR = 5; // possibly ridiculous, but too short stems just won't do @@ -355,6 +355,8 @@ Beam::score_forbidden_quants (Real yl, Real yr, { Real dy = yr - yl; + Real extra_demerit = SECONDARY_BEAM_DEMERIT / beam_count; + Real dem = 0.0; for (int i = 0; i < 2; i++) { @@ -370,14 +372,13 @@ Beam::score_forbidden_quants (Real yl, Real yr, Real sit = (thickness - slt) / 2; Real inter = 0.5; Real hang = 1.0 - (thickness - slt) / 2; - if (fabs (yl - ldir * beam_translation) < radius && fabs (my_modf (yl) - inter) < 1e-3) - dem += SECONDARY_BEAM_DEMERIT; + dem += extra_demerit; if (fabs (yr - rdir * beam_translation) < radius && fabs (my_modf (yr) - inter) < 1e-3) - dem += SECONDARY_BEAM_DEMERIT; + dem += extra_demerit; Real eps = 1e-3; @@ -396,22 +397,22 @@ Beam::score_forbidden_quants (Real yl, Real yr, { if (ldir == UP && dy <= eps && fabs (my_modf (yl) - sit) < eps) - dem += SECONDARY_BEAM_DEMERIT; + dem += extra_demerit; if (ldir == DOWN && dy >= eps && fabs (my_modf (yl) - hang) < eps) - dem += SECONDARY_BEAM_DEMERIT; + dem += extra_demerit; } if (fabs (yr - rdir * beam_translation) < radius + inter) { if (rdir == UP && dy >= eps && fabs (my_modf (yr) - sit) < eps) - dem += SECONDARY_BEAM_DEMERIT; + dem += extra_demerit; if (rdir == DOWN && dy <= eps && fabs (my_modf (yr) - hang) < eps) - dem += SECONDARY_BEAM_DEMERIT; + dem += extra_demerit; } if (beam_count >= 3) @@ -420,22 +421,22 @@ Beam::score_forbidden_quants (Real yl, Real yr, { if (ldir == UP && dy <= eps && fabs (my_modf (yl) - straddle) < eps) - dem += SECONDARY_BEAM_DEMERIT; + dem += extra_demerit; if (ldir == DOWN && dy >= eps && fabs (my_modf (yl) - straddle) < eps) - dem += SECONDARY_BEAM_DEMERIT; + dem += extra_demerit; } if (fabs (yr - 2 * rdir * beam_translation) < radius + inter) { if (rdir == UP && dy >= eps && fabs (my_modf (yr) - straddle) < eps) - dem += SECONDARY_BEAM_DEMERIT; + dem += extra_demerit; if (rdir == DOWN && dy <= eps && fabs (my_modf (yr) - straddle) < eps) - dem += SECONDARY_BEAM_DEMERIT; + dem += extra_demerit; } } } diff --git a/lily/beam.cc b/lily/beam.cc index 3ab8587d7a..3b04092c51 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -1268,8 +1268,8 @@ Beam::set_stem_lengths (Grob *me) bool gap = false; Real thick =0.0; - if (gh_number_p (me->get_grob_property ("gap")) - &&gh_scm2double (me->get_grob_property ("gap"))) + if (gh_number_p (me->get_grob_property ("gap-count")) + &&gh_scm2int (me->get_grob_property ("gap-count"))) { gap = true; thick = get_thickness(me);