FastLED 3.9.15
Loading...
Searching...
No Matches

◆ filterSpikes()

size fl::audio::SignalConditioner::filterSpikes ( span< const i16 > pcm,
vector< bool > & validMask )
private

Detect and reject spike samples.

Parameters
pcmInput PCM samples
validMaskOutput mask (true = valid, false = spike)
Returns
Count of valid samples

Definition at line 88 of file signal_conditioner.cpp.hpp.

88 {
89 const size count = pcm.size();
90 validMask.clear();
91 validMask.reserve(count);
92
93 size validCount = 0;
94 const i16 threshold = mConfig.spikeThreshold;
95
96 for (size i = 0; i < count; ++i) {
97 const i16 sample = pcm[i];
98 const bool isValid = (sample > -threshold) && (sample < threshold);
99 validMask.push_back(isValid);
100 if (isValid) {
101 validCount++;
102 }
103 }
104
105 // Update spike rejection count
106 const size spikesInSample = count - validCount;
107 mStats.spikesRejected += spikesInSample;
108
109 return validCount;
110}
SignalConditionerConfig mConfig
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.
Definition sample.cpp.hpp:9

References fl::vector< T >::clear(), mConfig, mStats, fl::vector< T >::push_back(), fl::vector< T >::reserve(), fl::sample(), and fl::span< T, Extent >::size().

Referenced by processSample().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: