]> git.donarmstrong.com Git - lilypond.git/commitdiff
Midi: bugfix in computing (de)crescendo changes
authorHeikki Tauriainen <g034737@welho.com>
Sun, 5 Aug 2012 19:46:39 +0000 (12:46 -0700)
committerKeith OHara <k-ohara5a5a@oco.net>
Fri, 10 Aug 2012 08:28:19 +0000 (01:28 -0700)
lily/audio-item.cc

index 8460ee8e5eeb1b917f30b8c3ed1c335564c7b101..201e8fd98e7cf4939c1de6b4a7e8ca64efc540d6 100644 (file)
@@ -133,13 +133,16 @@ Audio_span_dynamic::render ()
       return;
     }
 
-  Real delta_v = grow_dir_ * 0.1;
-
   Real start_v = dynamics_[0]->volume_;
   if (dynamics_.back ()->volume_ < 0)
-    dynamics_.back ()->volume_ = max (min (start_v + grow_dir_ * 0.25, max_volume_), min_volume_);
+    {
+      // The dynamic spanner does not end with an explicit dynamic script
+      // event.  Adjust the end volume by at most 1/4 of the available
+      // volume range in this case.
+      dynamics_.back ()->volume_ = max (min (start_v + grow_dir_ * (max_volume_ - min_volume_) * 0.25, max_volume_), min_volume_);
+    }
 
-  delta_v = dynamics_.back ()->volume_ - dynamics_[0]->volume_;
+  Real delta_v = dynamics_.back ()->volume_ - dynamics_[0]->volume_;
 
   Moment start = dynamics_[0]->get_column ()->when ();