KIK01 Release
Dependencies: mcp3008 mbed mbed-rtos AverageMCP3008 VoltageMonitor
Diff: EnvelopeAR.h
- 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;