Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::FFT< Real >::BatchedISTFTProcessor Class Reference

Stateful multichannel ISTFT processor with one synthesizer per channel. More...

#include <fft.H>

Collaboration diagram for Aleph::FFT< Real >::BatchedISTFTProcessor:
[legend]

Public Member Functions

 BatchedISTFTProcessor (const size_t num_channels, const size_t fft_size, const Array< Real > &analysis_window, const Array< Real > &synthesis_window, const ISTFTOptions &options)
 
 BatchedISTFTProcessor (const size_t num_channels, const size_t fft_size, const Array< Real > &analysis_window, const Array< Real > &synthesis_window, const ISTFTOptions &options, const Array< size_t > &signal_lengths)
 
 BatchedISTFTProcessor (const size_t num_channels, const size_t fft_size, const Array< Real > &window, const ISTFTOptions &options)
 
 BatchedISTFTProcessor (const size_t num_channels, const size_t fft_size, const Array< Real > &window, const ISTFTOptions &options, const Array< size_t > &signal_lengths)
 
 BatchedISTFTProcessor (const size_t num_channels, const size_t fft_size, const size_t frame_size, const ISTFTOptions &options)
 
 BatchedISTFTProcessor (const size_t num_channels, const size_t fft_size, const size_t frame_size, const ISTFTOptions &options, const Array< size_t > &signal_lengths)
 
template<typename AnalysisContainer , typename SynthesisContainer >
requires Is_Real_Container<AnalysisContainer>
and Is_Real_Container< SynthesisContainerBatchedISTFTProcessor (const size_t num_channels, const size_t fft_size, const AnalysisContainer &analysis_window, const SynthesisContainer &synthesis_window, const ISTFTOptions &options)
 
template<typename AnalysisContainer , typename SynthesisContainer >
requires Is_Real_Container<AnalysisContainer>
and Is_Real_Container< SynthesisContainerBatchedISTFTProcessor (const size_t num_channels, const size_t fft_size, const AnalysisContainer &analysis_window, const SynthesisContainer &synthesis_window, const ISTFTOptions &options, const Array< size_t > &signal_lengths)
 
size_t num_channels () const noexcept
 
ISTFTProcessorchannel (const size_t index)
 
const ISTFTProcessorchannel (const size_t index) const
 
void reset ()
 
Array< Array< Real > > process_block (const Array< Array< Array< Complex > > > &block)
 
Array< Array< Real > > pprocess_block (ThreadPool &pool, const Array< Array< Array< Complex > > > &block, const size_t chunk_size=0)
 
Array< Array< Real > > flush ()
 
Array< Array< Real > > pflush (ThreadPool &pool, const size_t chunk_size=0)
 

Private Member Functions

void validate_batch_size (const size_t size, const char *ctx) const
 

Static Private Member Functions

static ISTFTOptions channel_options (const ISTFTOptions &options, const Array< size_t > &signal_lengths, const size_t index)
 

Private Attributes

Array< ISTFTProcessorprocessors_
 

Detailed Description

template<std::floating_point Real = double>
class Aleph::FFT< Real >::BatchedISTFTProcessor

Stateful multichannel ISTFT processor with one synthesizer per channel.

Definition at line 11014 of file fft.H.

Constructor & Destructor Documentation

◆ BatchedISTFTProcessor() [1/8]

template<std::floating_point Real = double>
Aleph::FFT< Real >::BatchedISTFTProcessor::BatchedISTFTProcessor ( const size_t  num_channels,
const size_t  fft_size,
const Array< Real > &  analysis_window,
const Array< Real > &  synthesis_window,
const ISTFTOptions options 
)
inlineexplicit

Definition at line 11038 of file fft.H.

◆ BatchedISTFTProcessor() [2/8]

template<std::floating_point Real = double>
Aleph::FFT< Real >::BatchedISTFTProcessor::BatchedISTFTProcessor ( const size_t  num_channels,
const size_t  fft_size,
const Array< Real > &  analysis_window,
const Array< Real > &  synthesis_window,
const ISTFTOptions options,
const Array< size_t > &  signal_lengths 
)
inlineexplicit

◆ BatchedISTFTProcessor() [3/8]

template<std::floating_point Real = double>
Aleph::FFT< Real >::BatchedISTFTProcessor::BatchedISTFTProcessor ( const size_t  num_channels,
const size_t  fft_size,
const Array< Real > &  window,
const ISTFTOptions options 
)
inlineexplicit

Definition at line 11075 of file fft.H.

◆ BatchedISTFTProcessor() [4/8]

template<std::floating_point Real = double>
Aleph::FFT< Real >::BatchedISTFTProcessor::BatchedISTFTProcessor ( const size_t  num_channels,
const size_t  fft_size,
const Array< Real > &  window,
const ISTFTOptions options,
const Array< size_t > &  signal_lengths 
)
inlineexplicit

Definition at line 11087 of file fft.H.

◆ BatchedISTFTProcessor() [5/8]

template<std::floating_point Real = double>
Aleph::FFT< Real >::BatchedISTFTProcessor::BatchedISTFTProcessor ( const size_t  num_channels,
const size_t  fft_size,
const size_t  frame_size,
const ISTFTOptions options 
)
inlineexplicit

Definition at line 11100 of file fft.H.

◆ BatchedISTFTProcessor() [6/8]

template<std::floating_point Real = double>
Aleph::FFT< Real >::BatchedISTFTProcessor::BatchedISTFTProcessor ( const size_t  num_channels,
const size_t  fft_size,
const size_t  frame_size,
const ISTFTOptions options,
const Array< size_t > &  signal_lengths 
)
inlineexplicit

Definition at line 11112 of file fft.H.

◆ BatchedISTFTProcessor() [7/8]

template<std::floating_point Real = double>
and Is_Real_Container< SynthesisContainer > Aleph::FFT< Real >::BatchedISTFTProcessor::BatchedISTFTProcessor ( const size_t  num_channels,
const size_t  fft_size,
const AnalysisContainer analysis_window,
const SynthesisContainer synthesis_window,
const ISTFTOptions options 
)
inlineexplicit

Definition at line 11128 of file fft.H.

◆ BatchedISTFTProcessor() [8/8]

template<std::floating_point Real = double>
and Is_Real_Container< SynthesisContainer > Aleph::FFT< Real >::BatchedISTFTProcessor::BatchedISTFTProcessor ( const size_t  num_channels,
const size_t  fft_size,
const AnalysisContainer analysis_window,
const SynthesisContainer synthesis_window,
const ISTFTOptions options,
const Array< size_t > &  signal_lengths 
)
inlineexplicit

Definition at line 11144 of file fft.H.

Member Function Documentation

◆ channel() [1/2]

template<std::floating_point Real = double>
ISTFTProcessor & Aleph::FFT< Real >::BatchedISTFTProcessor::channel ( const size_t  index)
inline

◆ channel() [2/2]

template<std::floating_point Real = double>
const ISTFTProcessor & Aleph::FFT< Real >::BatchedISTFTProcessor::channel ( const size_t  index) const
inline

◆ channel_options()

template<std::floating_point Real = double>
static ISTFTOptions Aleph::FFT< Real >::BatchedISTFTProcessor::channel_options ( const ISTFTOptions options,
const Array< size_t > &  signal_lengths,
const size_t  index 
)
inlinestaticprivate

◆ flush()

template<std::floating_point Real = double>
Array< Array< Real > > Aleph::FFT< Real >::BatchedISTFTProcessor::flush ( )
inline

Definition at line 11221 of file fft.H.

References output, and Aleph::FFT< Real >::BatchedISTFTProcessor::processors_.

◆ num_channels()

template<std::floating_point Real = double>
size_t Aleph::FFT< Real >::BatchedISTFTProcessor::num_channels ( ) const
inlinenoexcept

◆ pflush()

template<std::floating_point Real = double>
Array< Array< Real > > Aleph::FFT< Real >::BatchedISTFTProcessor::pflush ( ThreadPool pool,
const size_t  chunk_size = 0 
)
inline

◆ pprocess_block()

template<std::floating_point Real = double>
Array< Array< Real > > Aleph::FFT< Real >::BatchedISTFTProcessor::pprocess_block ( ThreadPool pool,
const Array< Array< Array< Complex > > > &  block,
const size_t  chunk_size = 0 
)
inline

◆ process_block()

template<std::floating_point Real = double>
Array< Array< Real > > Aleph::FFT< Real >::BatchedISTFTProcessor::process_block ( const Array< Array< Array< Complex > > > &  block)
inline

◆ reset()

template<std::floating_point Real = double>
void Aleph::FFT< Real >::BatchedISTFTProcessor::reset ( )
inline

Definition at line 11181 of file fft.H.

References Aleph::FFT< Real >::BatchedISTFTProcessor::processors_.

◆ validate_batch_size()

template<std::floating_point Real = double>
void Aleph::FFT< Real >::BatchedISTFTProcessor::validate_batch_size ( const size_t  size,
const char ctx 
) const
inlineprivate

Member Data Documentation

◆ processors_


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