LMMS
Loading...
Searching...
No Matches
juce::SmoothedValueBase< SmoothedValueType > Class Template Reference

#include <juce_SmoothedValue.h>

Classes

struct  FloatTypeHelper
struct  FloatTypeHelper< SmoothedValueClass< FloatType > >
struct  FloatTypeHelper< SmoothedValueClass< FloatType, SmoothingType > >

Public Types

using FloatType = typename FloatTypeHelper<SmoothedValueType>::Type

Public Member Functions

 SmoothedValueBase ()=default
bool isSmoothing () const noexcept
FloatType getCurrentValue () const noexcept
FloatType getTargetValue () const noexcept
void setCurrentAndTargetValue (FloatType newValue)
void applyGain (FloatType *samples, int numSamples) noexcept
void applyGain (FloatType *samplesOut, const FloatType *samplesIn, int numSamples) noexcept
void applyGain (AudioBuffer< FloatType > &buffer, int numSamples) noexcept

Protected Attributes

FloatType currentValue = 0
FloatType target = currentValue
int countdown = 0

Private Member Functions

FloatType getNextSmoothedValue () noexcept

Detailed Description

template<typename SmoothedValueType>
class juce::SmoothedValueBase< SmoothedValueType >

A base class for the smoothed value classes.

This class is used to provide common functionality to the SmoothedValue and dsp::LogRampedValue classes.

@tags{Audio}

Member Typedef Documentation

◆ FloatType

template<typename SmoothedValueType>
using juce::SmoothedValueBase< SmoothedValueType >::FloatType = typename FloatTypeHelper<SmoothedValueType>::Type

Constructor & Destructor Documentation

◆ SmoothedValueBase()

template<typename SmoothedValueType>
juce::SmoothedValueBase< SmoothedValueType >::SmoothedValueBase ( )
default

Constructor.

Member Function Documentation

◆ applyGain() [1/3]

template<typename SmoothedValueType>
void juce::SmoothedValueBase< SmoothedValueType >::applyGain ( AudioBuffer< FloatType > & buffer,
int numSamples )
inlinenoexcept

Applies a smoothed gain to a buffer

◆ applyGain() [2/3]

template<typename SmoothedValueType>
void juce::SmoothedValueBase< SmoothedValueType >::applyGain ( FloatType * samples,
int numSamples )
inlinenoexcept

Applies a smoothed gain to a stream of samples S[i] *= gain

Parameters
samplesPointer to a raw array of samples
numSamplesLength of array of samples

◆ applyGain() [3/3]

template<typename SmoothedValueType>
void juce::SmoothedValueBase< SmoothedValueType >::applyGain ( FloatType * samplesOut,
const FloatType * samplesIn,
int numSamples )
inlinenoexcept

Computes output as a smoothed gain applied to a stream of samples. Sout[i] = Sin[i] * gain

Parameters
samplesOutA pointer to a raw array of output samples
samplesInA pointer to a raw array of input samples
numSamplesThe length of the array of samples

◆ getCurrentValue()

template<typename SmoothedValueType>
FloatType juce::SmoothedValueBase< SmoothedValueType >::getCurrentValue ( ) const
inlinenoexcept

Returns the current value of the ramp.

◆ getNextSmoothedValue()

template<typename SmoothedValueType>
FloatType juce::SmoothedValueBase< SmoothedValueType >::getNextSmoothedValue ( )
inlineprivatenoexcept

◆ getTargetValue()

template<typename SmoothedValueType>
FloatType juce::SmoothedValueBase< SmoothedValueType >::getTargetValue ( ) const
inlinenoexcept

Returns the target value towards which the smoothed value is currently moving.

◆ isSmoothing()

template<typename SmoothedValueType>
bool juce::SmoothedValueBase< SmoothedValueType >::isSmoothing ( ) const
inlinenoexcept

Returns true if the current value is currently being interpolated.

◆ setCurrentAndTargetValue()

template<typename SmoothedValueType>
void juce::SmoothedValueBase< SmoothedValueType >::setCurrentAndTargetValue ( FloatType newValue)
inline

Sets the current value and the target value.

Parameters
newValuethe new value to take

Member Data Documentation

◆ countdown

template<typename SmoothedValueType>
int juce::SmoothedValueBase< SmoothedValueType >::countdown = 0
protected

◆ currentValue

template<typename SmoothedValueType>
FloatType juce::SmoothedValueBase< SmoothedValueType >::currentValue = 0
protected

◆ target

template<typename SmoothedValueType>
FloatType juce::SmoothedValueBase< SmoothedValueType >::target = currentValue
protected

The documentation for this class was generated from the following file: