Fixed-capacity streaming centroid, flatness, rolloff, and flux analysis. More...
#include <spectral_feature_frontends.hpp>
Public Types | |
| using | Frame = SpectralFeatureFrameT<SampleType> |
Public Member Functions | |
| bool | prepare (const StreamingAnalysisConfig &config) |
| void | reset () noexcept |
| template<typename Sink> | |
| bool | process (const SampleType *const *channels, std::size_t channel_count, std::size_t frames, Sink &&sink) noexcept |
| const Frame & | current () const noexcept |
| std::uint32_t | algorithmic_latency_samples () const noexcept |
| std::uint32_t | startup_samples () const noexcept |
| std::uint64_t | retained_fft_bytes () const noexcept |
Fixed-capacity streaming centroid, flatness, rolloff, and flux analysis.
This reuses the shared StreamingAnalysisWindowT FFT owner with its symmetric Hann window. prepare() is control-thread work and may allocate only inside FftT. After a successful prepare, reset() and process() allocate nothing. The instance and its nothrow sink have one processing-thread owner; callers publish copied frames across threads. Rolloff is the first bin containing 85% of spectral power. Flux is the Euclidean distance between consecutive unit-sum magnitude spectra, divided by sqrt(2), so gain-only changes do not become modulation.
| using pulp::signal::SpectralFeatureFrontEndT< SampleType, MaxFftSize, MaxChannels >::Frame = SpectralFeatureFrameT<SampleType> |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscard |
|
inlinenodiscardnoexcept |
|
inlinenoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |