|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Stateful STFT processor for chunked real-time analysis. More...
#include <fft.H>
Private Member Functions | |
| void | require_configured (const char *ctx) const |
| void | initialize_pending () |
| void | append_samples (const Array< Real > &block) |
| Array< Array< Complex > > | emit_ready_frames (ThreadPool *pool, const size_t chunk_size, const bool allow_partial_frames) |
Private Attributes | |
| Array< Real > | window_ |
| STFTOptions | options_ |
| size_t | fft_size_ = 0 |
| size_t | center_pad_ = 0 |
| Plan | plan_ |
| Array< Real > | pending_ |
| bool | configured_ = false |
| bool | has_seen_input_ = false |
| bool | finalized_ = false |
Stateful STFT processor for chunked real-time analysis.
|
default |
Default constructor for an unconfigured processor.
|
inlineexplicit |
Construct an STFT processor with a fixed analysis window.
| window | Analysis window (e.g. Hann, Hamming). |
| options | STFT parameters (hop size, centered, etc.). |
Definition at line 10306 of file fft.H.
References Aleph::FFT< Real >::STFTProcessor::initialize_pending().
|
inlineexplicit |
|
inlineexplicit |
|
inlineprivate |
Definition at line 10265 of file fft.H.
References ah_invalid_argument_if, Aleph::FFT< Real >::append_all(), Aleph::FFT< Real >::STFTProcessor::pending_, and Aleph::Array< T >::size().
Referenced by Aleph::FFT< Real >::STFTProcessor::flush(), Aleph::FFT< Real >::STFTProcessor::pflush(), Aleph::FFT< Real >::STFTProcessor::pprocess_block(), and Aleph::FFT< Real >::STFTProcessor::process_block().
|
inlinenoexcept |
Definition at line 10363 of file fft.H.
References Aleph::FFT< Real >::STFTOptions::centered, and Aleph::FFT< Real >::STFTProcessor::options_.
|
inlinenoexcept |
Definition at line 10348 of file fft.H.
References Aleph::FFT< Real >::STFTProcessor::configured_.
|
inlineprivate |
Definition at line 10274 of file fft.H.
References Aleph::and, Aleph::Array< T >::append(), Aleph::FFT< Real >::build_padded_frame_from_prefix(), Aleph::divide_and_conquer_partition_dp(), Aleph::FFT< Real >::drop_prefix(), Aleph::FFT< Real >::STFTProcessor::fft_size_, Aleph::FFT< Real >::STFTOptions::hop_size, Aleph::Array< T >::is_empty(), Aleph::FFT< Real >::STFTProcessor::options_, Aleph::FFT< Real >::STFTProcessor::pending_, Aleph::FFT< Real >::STFTProcessor::plan_, Aleph::Array< T >::size(), Aleph::FFT< Real >::transform_stft_frames(), and Aleph::FFT< Real >::STFTProcessor::window_.
Referenced by Aleph::FFT< Real >::STFTProcessor::flush(), Aleph::FFT< Real >::STFTProcessor::pflush(), Aleph::FFT< Real >::STFTProcessor::pprocess_block(), and Aleph::FFT< Real >::STFTProcessor::process_block().
|
inlinenoexcept |
Definition at line 10358 of file fft.H.
References Aleph::FFT< Real >::STFTProcessor::fft_size_.
|
inlinenoexcept |
Definition at line 10373 of file fft.H.
References Aleph::FFT< Real >::STFTProcessor::finalized_.
|
inline |
Definition at line 10424 of file fft.H.
References Aleph::FFT< Real >::STFTProcessor::append_samples(), Aleph::FFT< Real >::STFTProcessor::center_pad_, Aleph::Array< T >::create(), Aleph::divide_and_conquer_partition_dp(), Aleph::FFT< Real >::STFTProcessor::emit_ready_frames(), Aleph::Array< T >::empty(), Aleph::FFT< Real >::STFTProcessor::finalized_, Aleph::FFT< Real >::STFTProcessor::has_seen_input_, Aleph::FFT< Real >::STFTProcessor::options_, Aleph::FFT< Real >::STFTOptions::pad_end, Aleph::FFT< Real >::STFTProcessor::pending_, and Aleph::FFT< Real >::STFTProcessor::require_configured().
|
inlinenoexcept |
Definition at line 10343 of file fft.H.
References Aleph::Array< T >::size(), and Aleph::FFT< Real >::STFTProcessor::window_.
|
inlinenoexcept |
Definition at line 10353 of file fft.H.
References Aleph::FFT< Real >::STFTOptions::hop_size, and Aleph::FFT< Real >::STFTProcessor::options_.
|
inlineprivate |
Definition at line 10256 of file fft.H.
References Aleph::Array< T >::append(), Aleph::FFT< Real >::STFTProcessor::center_pad_, Aleph::divide_and_conquer_partition_dp(), Aleph::Array< T >::empty(), Aleph::FFT< Real >::STFTProcessor::pending_, and Aleph::Array< T >::reserve().
Referenced by Aleph::FFT< Real >::STFTProcessor::STFTProcessor(), and Aleph::FFT< Real >::STFTProcessor::reset().
|
inlinenoexcept |
Definition at line 10368 of file fft.H.
References Aleph::FFT< Real >::STFTProcessor::options_, and Aleph::FFT< Real >::STFTOptions::pad_end.
|
inline |
Definition at line 10452 of file fft.H.
References Aleph::FFT< Real >::STFTProcessor::append_samples(), Aleph::FFT< Real >::STFTProcessor::center_pad_, Aleph::Array< T >::create(), Aleph::divide_and_conquer_partition_dp(), Aleph::FFT< Real >::STFTProcessor::emit_ready_frames(), Aleph::Array< T >::empty(), Aleph::FFT< Real >::STFTProcessor::finalized_, Aleph::FFT< Real >::STFTProcessor::has_seen_input_, Aleph::FFT< Real >::STFTProcessor::options_, Aleph::FFT< Real >::STFTOptions::pad_end, Aleph::FFT< Real >::STFTProcessor::pending_, and Aleph::FFT< Real >::STFTProcessor::require_configured().
|
inline |
Definition at line 10407 of file fft.H.
References ah_runtime_error_if, Aleph::FFT< Real >::STFTProcessor::append_samples(), Aleph::FFT< Real >::STFTProcessor::emit_ready_frames(), Aleph::FFT< Real >::STFTProcessor::finalized_, Aleph::FFT< Real >::STFTProcessor::has_seen_input_, Aleph::Array< T >::is_empty(), and Aleph::FFT< Real >::STFTProcessor::require_configured().
Referenced by Aleph::FFT< Real >::STFTProcessor::pprocess_block().
|
inline |
Definition at line 10490 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::STFTProcessor::pprocess_block().
|
inline |
Definition at line 10392 of file fft.H.
References ah_runtime_error_if, Aleph::FFT< Real >::STFTProcessor::append_samples(), Aleph::FFT< Real >::STFTProcessor::emit_ready_frames(), Aleph::FFT< Real >::STFTProcessor::finalized_, Aleph::FFT< Real >::STFTProcessor::has_seen_input_, Aleph::Array< T >::is_empty(), and Aleph::FFT< Real >::STFTProcessor::require_configured().
Referenced by Aleph::FFT< Real >::STFTProcessor::process_block().
|
inline |
Definition at line 10482 of file fft.H.
References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::STFTProcessor::process_block().
|
inlineprivate |
Definition at line 10250 of file fft.H.
References ah_runtime_error_if, Aleph::FFT< Real >::STFTProcessor::configured_, and Aleph::divide_and_conquer_partition_dp().
Referenced by Aleph::FFT< Real >::STFTProcessor::flush(), Aleph::FFT< Real >::STFTProcessor::pflush(), Aleph::FFT< Real >::STFTProcessor::pprocess_block(), Aleph::FFT< Real >::STFTProcessor::process_block(), and Aleph::FFT< Real >::STFTProcessor::reset().
|
inline |
|
inlinenoexcept |
Definition at line 10378 of file fft.H.
References Aleph::FFT< Real >::STFTProcessor::window_.
|
private |
Definition at line 10242 of file fft.H.
Referenced by Aleph::FFT< Real >::STFTProcessor::flush(), Aleph::FFT< Real >::STFTProcessor::initialize_pending(), and Aleph::FFT< Real >::STFTProcessor::pflush().
|
private |
Definition at line 10245 of file fft.H.
Referenced by Aleph::FFT< Real >::STFTProcessor::configured(), and Aleph::FFT< Real >::STFTProcessor::require_configured().
|
private |
Definition at line 10241 of file fft.H.
Referenced by Aleph::FFT< Real >::STFTProcessor::emit_ready_frames(), and Aleph::FFT< Real >::STFTProcessor::fft_size().
|
private |
Definition at line 10247 of file fft.H.
Referenced by Aleph::FFT< Real >::STFTProcessor::finalized(), Aleph::FFT< Real >::STFTProcessor::flush(), Aleph::FFT< Real >::STFTProcessor::pflush(), Aleph::FFT< Real >::STFTProcessor::pprocess_block(), Aleph::FFT< Real >::STFTProcessor::process_block(), and Aleph::FFT< Real >::STFTProcessor::reset().
|
private |
|
private |
Definition at line 10240 of file fft.H.
Referenced by Aleph::FFT< Real >::STFTProcessor::centered(), Aleph::FFT< Real >::STFTProcessor::emit_ready_frames(), Aleph::FFT< Real >::STFTProcessor::flush(), Aleph::FFT< Real >::STFTProcessor::hop_size(), Aleph::FFT< Real >::STFTProcessor::pad_end(), and Aleph::FFT< Real >::STFTProcessor::pflush().
|
private |
Definition at line 10244 of file fft.H.
Referenced by Aleph::FFT< Real >::STFTProcessor::append_samples(), Aleph::FFT< Real >::STFTProcessor::emit_ready_frames(), Aleph::FFT< Real >::STFTProcessor::flush(), Aleph::FFT< Real >::STFTProcessor::initialize_pending(), and Aleph::FFT< Real >::STFTProcessor::pflush().
|
private |
Definition at line 10243 of file fft.H.
Referenced by Aleph::FFT< Real >::STFTProcessor::emit_ready_frames().
|
private |
Definition at line 10239 of file fft.H.
Referenced by Aleph::FFT< Real >::STFTProcessor::emit_ready_frames(), Aleph::FFT< Real >::STFTProcessor::frame_size(), and Aleph::FFT< Real >::STFTProcessor::window().