From 76444b472a32fd24d9cca1e25efcb1a86d0f7f76 Mon Sep 17 00:00:00 2001 From: Heikki Tauriainen Date: Sun, 5 Aug 2012 12:46:39 -0700 Subject: [PATCH] Midi: bugfix in computing (de)crescendo changes --- lily/audio-item.cc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lily/audio-item.cc b/lily/audio-item.cc index 8460ee8e5e..201e8fd98e 100644 --- a/lily/audio-item.cc +++ b/lily/audio-item.cc @@ -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 (); -- 2.39.2