commit 5b52befadc33b57ed451b0ea629e7cf3d1fc9b12
parent 93c50df3320adabf2d573fa30de09b1dff2db3a6
Author: Matt Demanett <matt@demanett.net>
Date: Wed, 2 May 2018 01:05:22 -0400
FM-OP: decibel response for level.
Diffstat:
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/FMOp.cpp b/src/FMOp.cpp
@@ -132,8 +132,9 @@ void FMOp::step() {
if (_levelEnvelopeOn) {
out *= envelope;
}
- out *= out;
- out *= _decimator.next(_buffer);
+ out = (1.0f - out) * Amplifier::minDecibels;
+ _amplifier.setLevel(out);
+ out = _amplifier.next(_decimator.next(_buffer));
outputs[AUDIO_OUTPUT].value = _feedbackDelayedSample = amplitude * out;
}
diff --git a/src/FMOp.hpp b/src/FMOp.hpp
@@ -76,6 +76,7 @@ struct FMOp : Module {
SlewLimiter _depthSL;
SlewLimiter _levelSL;
SlewLimiter _sustainSL;
+ Amplifier _amplifier;
FMOp()
: Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS)