MCPcopy Create free account
hub / github.com/FastLED/FastLED / filterSpikes

Method filterSpikes

src/fl/audio/signal_conditioner.cpp.hpp:88–110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

86}
87
88size SignalConditioner::filterSpikes(span<const i16> pcm, vector<bool>& validMask) {
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}
111
112i32 SignalConditioner::calculateDCOffset(span<const i16> pcm, const vector<bool>& validMask) {
113 const size count = pcm.size();

Callers

nothing calls this directly

Calls 4

sizeMethod · 0.45
clearMethod · 0.45
reserveMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected