void removeDCOffset(span< const i16 > pcm, i32 dcOffset, vector< i16 > &output) FL_NOEXCEPT
Remove DC offset from samples.
bool mNoiseGateOpen
Noise gate state.
i32 calculateDCOffset(span< const i16 > pcm, const vector< bool > &validMask) FL_NOEXCEPT
Calculate DC offset from valid samples only.
~SignalConditioner() FL_NOEXCEPT
vector< bool > mValidMask
Working buffers (reused to avoid allocations)
void applyNoiseGate(span< const i16 > pcm, vector< i16 > &output) FL_NOEXCEPT
Apply noise gate with hysteresis.
Sample processSample(const Sample &sample) FL_NOEXCEPT
Process a raw audio sample through the conditioning pipeline.
vector< i16 > mTempBuffer
size filterSpikes(span< const i16 > pcm, vector< bool > &validMask) FL_NOEXCEPT
Detect and reject spike samples.
void configure(const SignalConditionerConfig &config) FL_NOEXCEPT
Configure the signal conditioner.
SignalConditioner() FL_NOEXCEPT
vector< i16 > mOutputBuffer
void reset() FL_NOEXCEPT
Reset internal state (DC estimate, noise gate state)
const Stats & getStats() const FL_NOEXCEPT
SignalConditionerConfig mConfig
Get current statistics (for debugging/monitoring)
bool enableDCRemoval
Enable DC offset removal (running average high-pass filter)
bool enableNoiseGate
Enable noise gate with hysteresis.
i16 noiseGateCloseThreshold
Noise gate close threshold (signal must fall below to close gate)
bool enableSpikeFilter
Enable spike filtering for I2S glitches.
i16 noiseGateOpenThreshold
Noise gate open threshold (signal must exceed to open gate)
i16 spikeThreshold
Spike detection threshold (absolute value) Samples beyond ±spikeThreshold are rejected as glitches.
Configuration for signal conditioning pipeline.
CRGB sample(const CRGB *grid, const XYMap &xyMap, float x, float y, SampleMode mode)
Sample a pixel from a 2D CRGB grid at floating-point coordinates.
Base definition for an LED controller.