Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::signal::LogRampedValueT< SampleType > Class Template Reference

Exponentially-smoothed value for parameters where linear ramping sounds wrong (pitch, frequency, gain in dB). More...

#include <log_ramped_value.hpp>

Public Member Functions

 LogRampedValueT ()=default
 LogRampedValueT (SampleType initial)
void set_ramp_time (SampleType seconds, SampleType sample_rate)
void set_target (SampleType value)
void set_immediate (SampleType value)
SampleType next ()
void skip (int n)
SampleType current_value () const
SampleType target_value () const
bool is_smoothing () const

Detailed Description

template<typename SampleType = float>
class pulp::signal::LogRampedValueT< SampleType >

Exponentially-smoothed value for parameters where linear ramping sounds wrong (pitch, frequency, gain in dB).

Unlike SmoothedValue (linear ramp), LogRampedValue uses a multiplicative approach so that equal time produces equal perceptual change across the range.

RT contract: setters, next(), skip(), and query methods are scalar-only and allocate no memory.

LogRampedValue freq(440.0f);
freq.set_ramp_time(0.05f, 44100.0f);
freq.set_target(880.0f); // smooth glide up one octave
for (int i = 0; i < block_size; ++i) osc.set_freq(freq.next());
Definition blep.hpp:72
LogRampedValueT< float > LogRampedValue
Definition log_ramped_value.hpp:93
@ i
Definition formant_filter_bank.hpp:20

Constructor & Destructor Documentation

◆ LogRampedValueT() [1/2]

template<typename SampleType = float>
pulp::signal::LogRampedValueT< SampleType >::LogRampedValueT ( )
default

◆ LogRampedValueT() [2/2]

template<typename SampleType = float>
pulp::signal::LogRampedValueT< SampleType >::LogRampedValueT ( SampleType initial)
inlineexplicit

Member Function Documentation

◆ current_value()

template<typename SampleType = float>
SampleType pulp::signal::LogRampedValueT< SampleType >::current_value ( ) const
inline

◆ is_smoothing()

template<typename SampleType = float>
bool pulp::signal::LogRampedValueT< SampleType >::is_smoothing ( ) const
inline

◆ next()

template<typename SampleType = float>
SampleType pulp::signal::LogRampedValueT< SampleType >::next ( )
inline

◆ set_immediate()

template<typename SampleType = float>
void pulp::signal::LogRampedValueT< SampleType >::set_immediate ( SampleType value)
inline

◆ set_ramp_time()

template<typename SampleType = float>
void pulp::signal::LogRampedValueT< SampleType >::set_ramp_time ( SampleType seconds,
SampleType sample_rate )
inline

◆ set_target()

template<typename SampleType = float>
void pulp::signal::LogRampedValueT< SampleType >::set_target ( SampleType value)
inline

◆ skip()

template<typename SampleType = float>
void pulp::signal::LogRampedValueT< SampleType >::skip ( int n)
inline

◆ target_value()

template<typename SampleType = float>
SampleType pulp::signal::LogRampedValueT< SampleType >::target_value ( ) const
inline

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