Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::signal::SpectralFrameEngineConfig Struct Reference

Configuration for a SpectralFrameEngine. More...

#include <spectral_frame_engine.hpp>

Public Attributes

int fft_size = 2048
int analysis_hop = 512
int channels = 1
int max_block = 4096
int max_synthesis_hop = 0
WindowFunction::Type window = WindowFunction::Type::hann
bool full_overlap_stream_start = true
 true: analysis frames start before the stream so the first sample after prepare()/reset() gets full overlap (exact reconstruction from sample 0, at the same reported latency).
bool defer_synthesis = true
 process() only: run each channel's inverse transform and overlap-add at its own point in the hop after the frame (the latency already leaves a hop of slack) instead of all in the callback that completed the frame.
bool guarded_split = false
 Prepare transactional inverse/OLA scratch for the guarded split API.

Detailed Description

Configuration for a SpectralFrameEngine.

Member Data Documentation

◆ analysis_hop

int pulp::signal::SpectralFrameEngineConfig::analysis_hop = 512

◆ channels

int pulp::signal::SpectralFrameEngineConfig::channels = 1

◆ defer_synthesis

bool pulp::signal::SpectralFrameEngineConfig::defer_synthesis = true

process() only: run each channel's inverse transform and overlap-add at its own point in the hop after the frame (the latency already leaves a hop of slack) instead of all in the callback that completed the frame.

Bit-identical output; false restores the single burst.

◆ fft_size

int pulp::signal::SpectralFrameEngineConfig::fft_size = 2048

◆ full_overlap_stream_start

bool pulp::signal::SpectralFrameEngineConfig::full_overlap_stream_start = true

true: analysis frames start before the stream so the first sample after prepare()/reset() gets full overlap (exact reconstruction from sample 0, at the same reported latency).

false: the first frame ends at input sample fft_size - 1, and samples in the first fft_size - analysis_hop are covered by fewer windows and tapered toward zero at the start. Keep false only for split-API callers that map frame ordinals to stream time themselves and rely on frame k analysing input [k * hop, k * hop + fft).

◆ guarded_split

bool pulp::signal::SpectralFrameEngineConfig::guarded_split = false

Prepare transactional inverse/OLA scratch for the guarded split API.

Guarded and legacy synthesis must not be mixed on one stream.

◆ max_block

int pulp::signal::SpectralFrameEngineConfig::max_block = 4096

◆ max_synthesis_hop

int pulp::signal::SpectralFrameEngineConfig::max_synthesis_hop = 0

◆ window

WindowFunction::Type pulp::signal::SpectralFrameEngineConfig::window = WindowFunction::Type::hann

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