]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/chord-tremolo-iterator.cc
Run `make grand-replace'.
[lilypond.git] / lily / chord-tremolo-iterator.cc
index 45ddbc443d65121fc4b1b7fcadf009fb67fef568..191e92ac275fe5ed3dd9bfd8a2dfed4f13a630da 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2000--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
                 Erik Sandberg <mandolaerik@gmail.com>
 */
 
@@ -29,7 +29,9 @@ Chord_tremolo_iterator::get_music_list () const
 
   int elt_count = body_is_sequential ? scm_ilength (body->get_property ("elements")) : 1;
 
-  if (body_is_sequential && elt_count != 2)
+  if (body_is_sequential &&
+      (elt_count != 2
+       && elt_count != 1))
     mus->origin ()->warning (_f ("expect 2 elements for chord tremolo, found %d", elt_count));
 
   if (elt_count <= 0)
@@ -39,7 +41,7 @@ Chord_tremolo_iterator::get_music_list () const
   Rational note_dur = total_dur / Rational (elt_count * Repeated_music::repeat_count (mus));
 
   SCM tremolo_type = scm_int2num (note_dur.den ());
-  int expected_beaming_ = max (0, (intlog2 (total_dur.den ()) - 2));
+  int expected_beaming_ = max (0, (intlog2 (total_dur.den ()) - intlog2 (total_dur.num () + 1) - 1));
 
   if (elt_count == 1)
     {