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

RT contract: prepare() allocates internal phase/magnitude storage and must run off the audio thread. More...

#include <multichannel_phase_coordinator.hpp>

Public Member Functions

 MultichannelPhaseCoordinatorT ()=default
void prepare (int fft_size, int channels)
void reset ()
const SampleType * reference_magnitudes () const
 Sum of reference magnitudes from the last processed frame — cheap energy proxy callers (transient detectors) can reuse.
int num_bins () const
void process_group (std::complex< SampleType > *const *frames, int num_bins, int analysis_hop, int synthesis_hop, SampleType reset_amount=SampleType{0})
 Propagate phases for one frame group and rotate every channel's bins in place.

Static Public Member Functions

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

Detailed Description

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

RT contract: prepare() allocates internal phase/magnitude storage and must run off the audio thread.

After preparation, reset(), queries, and process_group() allocate no memory for the prepared bin/channel counts.

Constructor & Destructor Documentation

◆ MultichannelPhaseCoordinatorT()

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

Member Function Documentation

◆ checked_retained_bytes()

template<typename SampleType = float>
bool pulp::signal::MultichannelPhaseCoordinatorT< 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::MultichannelPhaseCoordinatorT< SampleType >::num_bins ( ) const
inline

◆ prepare()

template<typename SampleType = float>
void pulp::signal::MultichannelPhaseCoordinatorT< SampleType >::prepare ( int fft_size,
int channels )
inline

◆ process_group()

template<typename SampleType = float>
void pulp::signal::MultichannelPhaseCoordinatorT< SampleType >::process_group ( std::complex< SampleType > *const * frames,
int num_bins,
int analysis_hop,
int synthesis_hop,
SampleType reset_amount = SampleType{0} )
inline

Propagate phases for one frame group and rotate every channel's bins in place.

analysis_hop and synthesis_hop are the actual integer hops used for this frame; reset in [0, 1] blends the synthesis phases toward the analysis phases (1 = full transient reset). At unity hop ratio with reset 0 the rotation vanishes to double-precision rounding error, preserving transparency.

◆ reference_magnitudes()

template<typename SampleType = float>
const SampleType * pulp::signal::MultichannelPhaseCoordinatorT< SampleType >::reference_magnitudes ( ) const
inline

Sum of reference magnitudes from the last processed frame — cheap energy proxy callers (transient detectors) can reuse.

◆ reset()

template<typename SampleType = float>
void pulp::signal::MultichannelPhaseCoordinatorT< SampleType >::reset ( )
inline

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