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

#include <spectral_envelope_shifter.hpp>

Public Member Functions

 SpectralEnvelopeShifterT ()=default
SourceFilterAnalysisStatus prepare (const SpectralEnvelopeShifterConfig &config)
 RT contract: prepare() allocates FFT and scratch/envelope storage and is not audio-thread safe.
int num_bins () const
int order () const
void process_group (std::complex< SampleType > *const *frames, int channels, int num_bins, SampleType warp)
 Estimate the group envelope and rescale all channels' bins by E(k * warp) / E(k).

Static Public Member Functions

static bool checked_retained_bytes (int fft_size, std::uint64_t target_max_bytes, std::uint64_t &bytes) noexcept

Constructor & Destructor Documentation

◆ SpectralEnvelopeShifterT()

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

Member Function Documentation

◆ checked_retained_bytes()

template<typename SampleType = float>
bool pulp::signal::SpectralEnvelopeShifterT< SampleType >::checked_retained_bytes ( int fft_size,
std::uint64_t target_max_bytes,
std::uint64_t & bytes )
inlinestaticnoexcept

◆ num_bins()

template<typename SampleType = float>
int pulp::signal::SpectralEnvelopeShifterT< SampleType >::num_bins ( ) const
inline

◆ order()

template<typename SampleType = float>
int pulp::signal::SpectralEnvelopeShifterT< SampleType >::order ( ) const
inline

◆ prepare()

template<typename SampleType = float>
SourceFilterAnalysisStatus pulp::signal::SpectralEnvelopeShifterT< SampleType >::prepare ( const SpectralEnvelopeShifterConfig & config)
inlinenodiscard

RT contract: prepare() allocates FFT and scratch/envelope storage and is not audio-thread safe.

After prepare(), num_bins(), order(), and process_group() are allocation-free for the prepared FFT size; the frame pointers must reference exactly num_bins() bins.

◆ process_group()

template<typename SampleType = float>
void pulp::signal::SpectralEnvelopeShifterT< SampleType >::process_group ( std::complex< SampleType > *const * frames,
int channels,
int num_bins,
SampleType warp )
inline

Estimate the group envelope and rescale all channels' bins by E(k * warp) / E(k).

frames holds channels pointers to num_bins() bins (DC..Nyquist) of the same time index.


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