]> git.donarmstrong.com Git - lilypond.git/commitdiff
Don't assert for invalid midi dynamics.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 8 Jan 2007 12:34:50 +0000 (13:34 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 8 Jan 2007 12:40:53 +0000 (13:40 +0100)
lily/audio-item.cc

index 3657cbf62ca9a439f48342c938b297ec4ec817cb..5372aacafcd8866f3df68976275e509b07e14932 100644 (file)
@@ -91,16 +91,19 @@ Audio_span_dynamic::render ()
 
   assert (dynamics_[0]->volume_ >= 0);
 
-  if (dynamics_.back ()->volume_ > 0
-      && sign (dynamics_.back ()->volume_ - dynamics_[0]->volume_) != grow_dir_)
+  while  (dynamics_.back ()->volume_ > 0
+         && dynamics_.size () > 1
+         && sign (dynamics_.back ()->volume_ - dynamics_[0]->volume_) != grow_dir_)
     {
       dynamics_.erase (dynamics_.end () - 1);
-      assert (dynamics_.back ()->volume_ < 0);
     }
 
   if (dynamics_.size () <= 1)
-    return ;
-
+    {
+      programming_error ("(de)crescendo on items with specified volume.");
+      return ;
+    }
+  
   Real delta_v = grow_dir_ * 0.1;
   
   Real start_v = dynamics_[0]->volume_;