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

Fixed-capacity chroma analysis over caller-owned planar input. More...

#include <analysis_frontends.hpp>

Public Types

using Frame = ChromaFrameT<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

Detailed Description

template<typename SampleType = float, std::size_t MaxFftSize = 4096, std::size_t MaxChannels = 8>
class pulp::signal::ChromaFrontEndT< SampleType, MaxFftSize, MaxChannels >

Fixed-capacity chroma analysis over caller-owned planar input.

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; cross-thread publication of copied frames is the caller's responsibility. Only complete windows are emitted at starts 0, hop, 2*hop... for overlapping, contiguous, or gapped cadence.

Member Typedef Documentation

◆ Frame

template<typename SampleType = float, std::size_t MaxFftSize = 4096, std::size_t MaxChannels = 8>
using pulp::signal::ChromaFrontEndT< SampleType, MaxFftSize, MaxChannels >::Frame = ChromaFrameT<SampleType>

Member Function Documentation

◆ algorithmic_latency_samples()

template<typename SampleType = float, std::size_t MaxFftSize = 4096, std::size_t MaxChannels = 8>
std::uint32_t pulp::signal::ChromaFrontEndT< SampleType, MaxFftSize, MaxChannels >::algorithmic_latency_samples ( ) const
inlinenodiscardnoexcept

◆ current()

template<typename SampleType = float, std::size_t MaxFftSize = 4096, std::size_t MaxChannels = 8>
const Frame & pulp::signal::ChromaFrontEndT< SampleType, MaxFftSize, MaxChannels >::current ( ) const
inlinenodiscardnoexcept

◆ prepare()

template<typename SampleType = float, std::size_t MaxFftSize = 4096, std::size_t MaxChannels = 8>
bool pulp::signal::ChromaFrontEndT< SampleType, MaxFftSize, MaxChannels >::prepare ( const StreamingAnalysisConfig & config)
inlinenodiscard

◆ process()

template<typename SampleType = float, std::size_t MaxFftSize = 4096, std::size_t MaxChannels = 8>
template<typename Sink>
bool pulp::signal::ChromaFrontEndT< SampleType, MaxFftSize, MaxChannels >::process ( const SampleType *const * channels,
std::size_t channel_count,
std::size_t frames,
Sink && sink )
inlinenodiscardnoexcept

◆ reset()

template<typename SampleType = float, std::size_t MaxFftSize = 4096, std::size_t MaxChannels = 8>
void pulp::signal::ChromaFrontEndT< SampleType, MaxFftSize, MaxChannels >::reset ( )
inlinenoexcept

◆ retained_fft_bytes()

template<typename SampleType = float, std::size_t MaxFftSize = 4096, std::size_t MaxChannels = 8>
std::uint64_t pulp::signal::ChromaFrontEndT< SampleType, MaxFftSize, MaxChannels >::retained_fft_bytes ( ) const
inlinenodiscardnoexcept

◆ startup_samples()

template<typename SampleType = float, std::size_t MaxFftSize = 4096, std::size_t MaxChannels = 8>
std::uint32_t pulp::signal::ChromaFrontEndT< SampleType, MaxFftSize, MaxChannels >::startup_samples ( ) const
inlinenodiscardnoexcept

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