OSDN Git Service

Fix sfz envelope
authorStarg <starg@users.osdn.me>
Fri, 21 Dec 2018 21:36:04 +0000 (06:36 +0900)
committerStarg <starg@users.osdn.me>
Fri, 21 Dec 2018 21:36:04 +0000 (06:36 +0900)
timidity/sfz.cpp

index ca42f78..2252352 100644 (file)
@@ -1528,7 +1528,7 @@ private:
                     s.envelope_offset[1] = ToOffset(2);
                     s.envelope_rate[1] = CalcRate(1, 0.0);
                     s.envelope_offset[2] = ToOffset(1);
-                    s.envelope_rate[2] = CalcRate(65534, 0.0);
+                    s.envelope_rate[2] = CalcRate(1, 0.0);
 
                     s.envelope_offset[3] = ToOffset(65535);
                     s.envelope_rate[3] = CalcRate(65535, std::clamp(flatSection.GetAs<double>(OpCodeKind::AmpEG_Attack).value_or(0.0), 0.0, 100.0));
@@ -1575,20 +1575,6 @@ private:
                     s.envelope_rate[4] = s.envelope_rate[3];
                     s.envelope_offset[5] = s.envelope_offset[3];
                     s.envelope_rate[5] = s.envelope_rate[3];
-
-                    s.envelope_offset[0] = 0;
-                    s.envelope_rate[0] = 0;
-                    s.envelope_offset[1] = 0;
-                    s.envelope_rate[1] = 0;
-
-                    s.envelope_offset[2] = 0;
-                    s.envelope_rate[2] = 0;
-                    s.envelope_offset[3] = 0;
-                    s.envelope_rate[3] = CalcRate(65535, releaseTime);
-                    s.envelope_offset[4] = s.envelope_offset[3];
-                    s.envelope_rate[4] = s.envelope_rate[3];
-                    s.envelope_offset[5] = s.envelope_offset[3];
-                    s.envelope_rate[5] = s.envelope_rate[3];
                 }
 
                 if (auto ampVelTrack = flatSection.GetAs<double>(OpCodeKind::AmpVelTrack))