From: Han-Wen Nienhuys Date: Fri, 12 May 2006 00:08:24 +0000 (+0000) Subject: (LINK_GXX_STATICALLY): python 2.4 req. X-Git-Tag: release/2.9.5~31 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=eb037728bac3a9f6c0a2a5ac0b07316ab2665dbb;p=lilypond.git (LINK_GXX_STATICALLY): python 2.4 req. --- diff --git a/ChangeLog b/ChangeLog index 2390b5e802..3e68ee049c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2006-05-12 Han-Wen Nienhuys + + * configure.in (LINK_GXX_STATICALLY): python 2.4 req. + 2006-05-11 Graham Percival * Documentation/user/programming-interface.itely: first round of @@ -71,7 +75,7 @@ * lily/paper-column-engraver.cc (stop_translation_timestep): set line-break-permission if forbidBreak is not set. - + 2006-05-09 Joe Neeman * scm/define-context-properties.scm: diff --git a/Documentation/topdocs/NEWS.tely b/Documentation/topdocs/NEWS.tely index 890a385865..5e818224e0 100644 --- a/Documentation/topdocs/NEWS.tely +++ b/Documentation/topdocs/NEWS.tely @@ -66,6 +66,11 @@ which scares away people. @end ignore +@item +The MusicXML convertor has been sped up, and has rudimentary support +for percussion notation. It will also condense multi-bar rests to +enable part extraction. + @item The beam printing code has been completely rewritten, and now includes support for feathered beaming, diff --git a/configure.in b/configure.in index 9d831c8d03..1e69994e1c 100644 --- a/configure.in +++ b/configure.in @@ -83,7 +83,7 @@ AC_MSG_RESULT($NCSB_SOURCE_FILES) -STEPMAKE_PYTHON(REQUIRED, 2.3) +STEPMAKE_PYTHON(REQUIRED, 2.4) STEPMAKE_GCC(REQUIRED, 4.0) STEPMAKE_CXX(REQUIRED) STEPMAKE_GXX(REQUIRED, 4.0) diff --git a/lily/beam.cc b/lily/beam.cc index acc4c7a7b3..f6c07a84cb 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -1211,13 +1211,13 @@ Beam::set_beaming (Grob *me, Beaming_info_list const *beaming) if (beaming_prop == SCM_EOL || index_get_cell (beaming_prop, d) == SCM_EOL) { - int b = beaming->infos_.at (i).beams_i_drul_[d]; + int count = beaming->infos_.at (i).beam_count_drul_[d]; if (i > 0 && i < stems.size () -1 && Stem::is_invisible (stem)) - b = min (b, beaming->infos_.at (i).beams_i_drul_[-d]); + count = min (count, beaming->infos_.at (i).beam_count_drul_[-d]); - Stem::set_beaming (stem, b, d); + Stem::set_beaming (stem, count, d); } } while (flip (&d) != LEFT); diff --git a/lily/beaming-info.cc b/lily/beaming-info.cc index fb4b934a9e..417a20372c 100644 --- a/lily/beaming-info.cc +++ b/lily/beaming-info.cc @@ -10,53 +10,56 @@ Beaming_info::Beaming_info () { - start_mom_ = 0; - beams_i_drul_[LEFT] = 0; - beams_i_drul_[RIGHT] = 0; + start_moment_ = 0; + beam_count_drul_[LEFT] = 0; + beam_count_drul_[RIGHT] = 0; } Beaming_info::Beaming_info (Moment m, int i) { - start_mom_ = m; - beams_i_drul_[LEFT] = i; - beams_i_drul_[RIGHT] = i; + start_moment_ = m; + beam_count_drul_[LEFT] = i; + beam_count_drul_[RIGHT] = i; } -const int at_beat = 1 << 15; +const int at_beat = 1 << 15; // WTF is this. int -Beaming_info_list::best_splitpoint_index (Moment &beat_length, bool subdivide) const +Beaming_info_list::best_splitpoint_index (Moment &beat_length, + bool subdivide) const { - int minden = INT_MAX; - int minidx = -1; + int min_denominator = INT_MAX; + int min_index = -1; Moment beat_pos; for (vsize i = 1; i < infos_.size (); i++) { - beat_pos = infos_[i].start_mom_ / beat_length; + beat_pos = infos_[i].start_moment_ / beat_length; int den = beat_pos.den (); - if (infos_[i].beams_i_drul_[LEFT] == infos_[i - 1].beams_i_drul_[RIGHT] && !subdivide) + if (infos_[i].beam_count_drul_[LEFT] == infos_[i - 1].beam_count_drul_[RIGHT] + && !subdivide) den *= 2; - if (den < minden) + + if (den < min_denominator) { - minidx = i; - minden = den; + min_index = i; + min_denominator = den; } } - return minidx | (minden == 1 && subdivide ? at_beat : 0); + return min_index | (min_denominator == 1 && subdivide ? at_beat : 0); } int Beaming_info_list::beam_extend_count (Direction d) const { if (infos_.size () == 1) - return infos_[0].beams_i_drul_[d]; + return infos_[0].beam_count_drul_[d]; Beaming_info thisbeam = boundary (infos_, d, 0); Beaming_info next = boundary (infos_, d, 1); - return min (thisbeam.beams_i_drul_[-d], next.beams_i_drul_[d]); + return min (thisbeam.beam_count_drul_[-d], next.beam_count_drul_[d]); } void @@ -66,17 +69,22 @@ Beaming_info_list::beamify (Moment &beat_length, bool subdivide) return; Drul_array splits; + int m = best_splitpoint_index (beat_length, subdivide); - bool split = subdivide && (m & at_beat); m = m & ~at_beat; + bool split = subdivide && (m & at_beat); + m = m & ~at_beat; + splits[LEFT].infos_ = vector (infos_.begin (), - infos_.begin () + m); + infos_.begin () + m); splits[RIGHT].infos_ = vector (infos_.begin () + m, - infos_.end ()); + infos_.end ()); Direction d = LEFT; do - splits[d].beamify (beat_length, subdivide); + { + splits[d].beamify (beat_length, subdivide); + } while (flip (&d) != LEFT); int middle_beams = (split ? 1 @@ -86,12 +94,14 @@ Beaming_info_list::beamify (Moment &beat_length, bool subdivide) do { if (splits[d].infos_.size () != 1) - boundary (splits[d].infos_, -d, 0).beams_i_drul_[-d] = middle_beams; + boundary (splits[d].infos_, -d, 0).beam_count_drul_[-d] = middle_beams; } while (flip (&d) != LEFT); infos_ = splits[LEFT].infos_; - infos_.insert (infos_.end (), splits[RIGHT].infos_.begin (), splits[RIGHT].infos_.end ()); + infos_.insert (infos_.end (), + splits[RIGHT].infos_.begin (), + splits[RIGHT].infos_.end ()); clip_edges (); } @@ -107,7 +117,7 @@ Beaming_info_list::clip_edges () { if (infos_.size ()) { - infos_[0].beams_i_drul_[LEFT] = 0; - infos_.back ().beams_i_drul_[RIGHT] = 0; + infos_[0].beam_count_drul_[LEFT] = 0; + infos_.back ().beam_count_drul_[RIGHT] = 0; } } diff --git a/lily/include/beaming.hh b/lily/include/beaming.hh index 40603cb478..32a9ed4c82 100644 --- a/lily/include/beaming.hh +++ b/lily/include/beaming.hh @@ -14,8 +14,8 @@ struct Beaming_info { - Moment start_mom_; - Drul_array beams_i_drul_; + Moment start_moment_; + Drul_array beam_count_drul_; Beaming_info (Moment, int); int count (Direction d);