Utility class for logarithmically smoothed linear values. More...
#include <juce_LogRampedValue.h>
Public Member Functions | |
LogRampedValue ()=default | |
Constructor. | |
LogRampedValue (FloatType initialValue) noexcept | |
Constructor. | |
void | setLogParameters (FloatType midPointAmplitudedB, bool rateOfChangeShouldIncrease) noexcept |
Sets the behaviour of the log ramp. | |
void | reset (double sampleRate, double rampLengthInSeconds) noexcept |
Reset to a new sample rate and ramp length. | |
void | reset (int numSteps) noexcept |
Set a new ramp length directly in samples. | |
void | setTargetValue (FloatType newValue) noexcept |
Set a new target value. | |
FloatType | getNextValue () noexcept |
Compute the next value. | |
FloatType | skip (int numSamples) noexcept |
Skip the next numSamples samples. | |
Public Member Functions inherited from SmoothedValueBase< LogRampedValue< FloatType > > | |
SmoothedValueBase ()=default | |
Constructor. | |
bool | isSmoothing () const noexcept |
Returns true if the current value is currently being interpolated. | |
FloatType | getCurrentValue () const noexcept |
Returns the current value of the ramp. | |
FloatType | getTargetValue () const noexcept |
Returns the target value towards which the smoothed value is currently moving. | |
void | setCurrentAndTargetValue (FloatType newValue) |
Sets the current value and the target value. | |
void | applyGain (FloatType *samples, int numSamples) noexcept |
Applies a smoothed gain to a stream of samples S[i] *= gain. | |
void | applyGain (FloatType *samplesOut, const FloatType *samplesIn, int numSamples) noexcept |
Computes output as a smoothed gain applied to a stream of samples. | |
void | applyGain (AudioBuffer< FloatType > &buffer, int numSamples) noexcept |
Applies a smoothed gain to a buffer. | |
Additional Inherited Members | |
Public Types inherited from SmoothedValueBase< LogRampedValue< FloatType > > | |
using | FloatType |
Protected Attributes inherited from SmoothedValueBase< LogRampedValue< FloatType > > | |
FloatType | currentValue |
FloatType | target |
int | countdown |
Utility class for logarithmically smoothed linear values.
Logarithmically smoothed values can be more relevant than linear ones for specific cases such as algorithm change smoothing, using two of them in opposite directions.
The gradient of the logarithmic/exponential slope can be configured by calling LogRampedValue::setLogParameters.
|
default |
Constructor.
|
noexcept |
Constructor.
References SmoothedValueBase< LogRampedValue< FloatType > >::currentValue, and SmoothedValueBase< LogRampedValue< FloatType > >::target.
|
noexcept |
Sets the behaviour of the log ramp.
midPointAmplitudedB | Sets the amplitude of the mid point in decibels, with the target value at 0 dB and the initial value at -inf dB |
rateOfChangeShouldIncrease | If true then the ramp starts shallow and gets progressively steeper, if false then the ramp is initially steep and flattens out as you approach the target value |
References Decibels::decibelsToGain(), and jassert.
|
noexcept |
Reset to a new sample rate and ramp length.
sampleRate | The sample rate |
rampLengthInSeconds | The duration of the ramp in seconds |
References jassert, and dsp::LogRampedValue< FloatType >::reset().
Referenced by dsp::LogRampedValue< FloatType >::reset().
|
noexcept |
Set a new ramp length directly in samples.
numSteps | The number of samples over which the ramp should be active |
References SmoothedValueBase< LogRampedValue< FloatType > >::setCurrentAndTargetValue(), and SmoothedValueBase< LogRampedValue< FloatType > >::target.
|
noexcept |
Set a new target value.
newValue | The new target value |
References approximatelyEqual(), SmoothedValueBase< LogRampedValue< FloatType > >::countdown, SmoothedValueBase< LogRampedValue< FloatType > >::currentValue, SmoothedValueBase< LogRampedValue< FloatType > >::setCurrentAndTargetValue(), and SmoothedValueBase< LogRampedValue< FloatType > >::target.
|
noexcept |
Compute the next value.
References SmoothedValueBase< LogRampedValue< FloatType > >::countdown, SmoothedValueBase< LogRampedValue< FloatType > >::currentValue, SmoothedValueBase< LogRampedValue< FloatType > >::isSmoothing(), jmap(), and SmoothedValueBase< LogRampedValue< FloatType > >::target.
|
noexcept |
Skip the next numSamples samples.
This is identical to calling getNextValue numSamples times.
References SmoothedValueBase< LogRampedValue< FloatType > >::countdown, SmoothedValueBase< LogRampedValue< FloatType > >::currentValue, jmap(), SmoothedValueBase< LogRampedValue< FloatType > >::setCurrentAndTargetValue(), and SmoothedValueBase< LogRampedValue< FloatType > >::target.