|
FastLED 3.9.15
|
SignalConditioner performs low-level audio preprocessing to clean raw PCM samples before FFT analysis or beat detection.
Pipeline stages:
Usage:
Definition at line 54 of file signal_conditioner.h.
#include <signal_conditioner.h>
Collaboration diagram for fl::audio::SignalConditioner:Classes | |
| struct | Stats |
| Get current statistics (for debugging/monitoring) More... | |
Public Member Functions | |
| SignalConditioner () FL_NOEXCEPT | |
| SignalConditioner (const SignalConditionerConfig &config) FL_NOEXCEPT | |
| ~SignalConditioner () FL_NOEXCEPT | |
| void | configure (const SignalConditionerConfig &config) FL_NOEXCEPT |
| Configure the signal conditioner. | |
| const Stats & | getStats () const FL_NOEXCEPT |
| Sample | processSample (const Sample &sample) FL_NOEXCEPT |
| Process a raw audio sample through the conditioning pipeline. | |
| void | reset () FL_NOEXCEPT |
| Reset internal state (DC estimate, noise gate state) | |
Private Member Functions | |
| void | applyNoiseGate (span< const i16 > pcm, vector< i16 > &output) FL_NOEXCEPT |
| Apply noise gate with hysteresis. | |
| i32 | calculateDCOffset (span< const i16 > pcm, const vector< bool > &validMask) FL_NOEXCEPT |
| Calculate DC offset from valid samples only. | |
| size | filterSpikes (span< const i16 > pcm, vector< bool > &validMask) FL_NOEXCEPT |
| Detect and reject spike samples. | |
| void | removeDCOffset (span< const i16 > pcm, i32 dcOffset, vector< i16 > &output) FL_NOEXCEPT |
| Remove DC offset from samples. | |
Private Attributes | |
| SignalConditionerConfig | mConfig |
| bool | mNoiseGateOpen = false |
| Noise gate state. | |
| vector< i16 > | mOutputBuffer |
| Stats | mStats |
| vector< i16 > | mTempBuffer |
| vector< bool > | mValidMask |
| Working buffers (reused to avoid allocations) | |