KIK01 Proto 08

Dependencies:   AverageMCP3008 VoltageMonitor mbed-rtos mbed mcp3008

Fork of KIK01_Proto07 by Ryo Od

Revision:
24:e9fbadd15e90
Parent:
22:a3bb7594f9bb
Child:
25:b4977c7e0db7
--- a/EnvelopeAR.h	Sun Sep 17 23:24:49 2017 +0000
+++ b/EnvelopeAR.h	Thu Sep 28 01:21:04 2017 +0000
@@ -16,7 +16,6 @@
         v0(_v0),
         v1(_v1),
         v2(_v2),
-        vLast(_v0),
         attackTauRatio(_attackTauRatio),
         releaseTauRatio(_releaseTauRatio) {
         setAttack(_attack);
@@ -86,14 +85,15 @@
     float getAmplitude() {
         return amplitude;
     }
+    
     float getAmplitude(int tick) {
-        if (tick < attack) {
+        if (tick <= attack) {
             // attackの処理
             amplitude = v0 + (v1 - v0) * (1 - expf(-(float)tick / tau0));
-            vLast = amplitude;
         } else {
             // releaseの処理
-            amplitude = (vLast - v2) * (expf(-(float)(tick - attack) / tau1)) + v2;
+            float vAttack = v0 + (v1 - v0) * (1 - expf(-attack / tau0));
+            amplitude = (vAttack - v2) * (expf(-(float)(tick - attack) / tau1)) + v2;
         }
         return amplitude;
     }
@@ -105,7 +105,6 @@
     float v0;
     float v1;
     float v2;
-    float vLast;
     float tau0;
     float tau1;
     float attackTauRatio;