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

Continuous spectral-tilt noise source built from NoiseSourceT's canonical seeded white stream and a fixed cascade of canonical BiquadT shelves. More...

#include <noise_tilt.hpp>

Public Member Functions

bool prepare (double sample_rate)
bool set_tilt_db_per_octave (double tilt)
bool set_level (SampleType level) noexcept
void set_seed (std::uint32_t seed) noexcept
void reset () noexcept
SampleType process () noexcept
void process (SampleType *output, std::size_t frames) noexcept
double sample_rate () const noexcept
double tilt_db_per_octave () const noexcept
SampleType level () const noexcept
std::uint32_t seed () const noexcept
std::uint64_t fault_count () const noexcept

Static Public Member Functions

static constexpr int latency_samples () noexcept
static constexpr int tail_samples () noexcept

Static Public Attributes

static constexpr double kMinSampleRate = 8000.0
static constexpr double kMaxSampleRate = 384000.0
static constexpr double kMinTiltDbPerOctave = -6.0
static constexpr double kMaxTiltDbPerOctave = 6.0
static constexpr double kReferenceHz = 1000.0
static constexpr double kBandLowHz = 31.25
static constexpr double kBandHighHz = 16000.0
static constexpr std::size_t kShelfCount = 9
static constexpr std::uint32_t kDefaultSeed = NoiseSourceT<SampleType>::default_seed

Detailed Description

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

Continuous spectral-tilt noise source built from NoiseSourceT's canonical seeded white stream and a fixed cascade of canonical BiquadT shelves.

tilt_db_per_octave is a power-spectral-density slope in dB/octave over the audio design band (31.25 Hz to min(16 kHz, 0.4 * sample_rate)). Its legal range is [-6, +6] dB/octave; zero is bit-identical to NoiseSourceT::white(). Gain is normalized to unity at the 1 kHz reference, and level is a dimensionless multiplier on [0, 1]. The filtered distribution remains zero-mean but is no longer uniform except at zero tilt.

prepare() and set_tilt_db_per_octave() are bounded control-side calls that design coefficients and clear filter history. process(), reset(), seed access, and the block overload are allocation-free and lock-free. BiquadT snaps recursive denormals; a non-finite output clears all filter state and emits zero while incrementing fault_count().

The public seed selects the complete initial random condition. Resetting rewinds both that stream and all filters, so output is invariant to block partition. Latency and tail are zero samples.

Member Function Documentation

◆ fault_count()

template<typename SampleType = float>
std::uint64_t pulp::signal::NoiseTiltT< SampleType >::fault_count ( ) const
inlinenoexcept

◆ latency_samples()

template<typename SampleType = float>
constexpr int pulp::signal::NoiseTiltT< SampleType >::latency_samples ( )
inlinestaticconstexprnoexcept

◆ level()

template<typename SampleType = float>
SampleType pulp::signal::NoiseTiltT< SampleType >::level ( ) const
inlinenoexcept

◆ prepare()

template<typename SampleType = float>
bool pulp::signal::NoiseTiltT< SampleType >::prepare ( double sample_rate)
inline

◆ process() [1/2]

template<typename SampleType = float>
SampleType pulp::signal::NoiseTiltT< SampleType >::process ( )
inlinenoexcept

◆ process() [2/2]

template<typename SampleType = float>
void pulp::signal::NoiseTiltT< SampleType >::process ( SampleType * output,
std::size_t frames )
inlinenoexcept

◆ reset()

template<typename SampleType = float>
void pulp::signal::NoiseTiltT< SampleType >::reset ( )
inlinenoexcept

◆ sample_rate()

template<typename SampleType = float>
double pulp::signal::NoiseTiltT< SampleType >::sample_rate ( ) const
inlinenoexcept

◆ seed()

template<typename SampleType = float>
std::uint32_t pulp::signal::NoiseTiltT< SampleType >::seed ( ) const
inlinenoexcept

◆ set_level()

template<typename SampleType = float>
bool pulp::signal::NoiseTiltT< SampleType >::set_level ( SampleType level)
inlinenoexcept

◆ set_seed()

template<typename SampleType = float>
void pulp::signal::NoiseTiltT< SampleType >::set_seed ( std::uint32_t seed)
inlinenoexcept

◆ set_tilt_db_per_octave()

template<typename SampleType = float>
bool pulp::signal::NoiseTiltT< SampleType >::set_tilt_db_per_octave ( double tilt)
inline

◆ tail_samples()

template<typename SampleType = float>
constexpr int pulp::signal::NoiseTiltT< SampleType >::tail_samples ( )
inlinestaticconstexprnoexcept

◆ tilt_db_per_octave()

template<typename SampleType = float>
double pulp::signal::NoiseTiltT< SampleType >::tilt_db_per_octave ( ) const
inlinenoexcept

Member Data Documentation

◆ kBandHighHz

template<typename SampleType = float>
double pulp::signal::NoiseTiltT< SampleType >::kBandHighHz = 16000.0
staticconstexpr

◆ kBandLowHz

template<typename SampleType = float>
double pulp::signal::NoiseTiltT< SampleType >::kBandLowHz = 31.25
staticconstexpr

◆ kDefaultSeed

template<typename SampleType = float>
std::uint32_t pulp::signal::NoiseTiltT< SampleType >::kDefaultSeed = NoiseSourceT<SampleType>::default_seed
staticconstexpr

◆ kMaxSampleRate

template<typename SampleType = float>
double pulp::signal::NoiseTiltT< SampleType >::kMaxSampleRate = 384000.0
staticconstexpr

◆ kMaxTiltDbPerOctave

template<typename SampleType = float>
double pulp::signal::NoiseTiltT< SampleType >::kMaxTiltDbPerOctave = 6.0
staticconstexpr

◆ kMinSampleRate

template<typename SampleType = float>
double pulp::signal::NoiseTiltT< SampleType >::kMinSampleRate = 8000.0
staticconstexpr

◆ kMinTiltDbPerOctave

template<typename SampleType = float>
double pulp::signal::NoiseTiltT< SampleType >::kMinTiltDbPerOctave = -6.0
staticconstexpr

◆ kReferenceHz

template<typename SampleType = float>
double pulp::signal::NoiseTiltT< SampleType >::kReferenceHz = 1000.0
staticconstexpr

◆ kShelfCount

template<typename SampleType = float>
std::size_t pulp::signal::NoiseTiltT< SampleType >::kShelfCount = 9
staticconstexpr

The documentation for this class was generated from the following file:
  • /home/runner/work/pulp/pulp/core/signal/include/pulp/signal/noise_tilt.hpp