FastLED 3.10.8
Loading...
Searching...
No Matches

◆ computeLinearBins()

void fl::audio::fft::Context::computeLinearBins ( const u16 * mag,
int ,
Bins * out )
inlineprivate

Definition at line 1129 of file fft_impl.cpp.hpp.

1129 {
1130 const int numLinearBins = mTotalBands;
1131
1132 fl::vector<float> &linBins = out->linear_mut();
1133 linBins.resize(numLinearBins);
1134 out->setLinearParams(mFmin, mFmax);
1135
1136 // Integer accumulation using pre-computed LUT
1137 FASTLED_STACK_ARRAY(u32, linBinsI, numLinearBins);
1138 for (int i = 0; i < numLinearBins; ++i) {
1139 linBinsI[i] = 0;
1140 }
1141
1142 for (int k = mLinearKStart; k < mLinearKEnd; ++k) {
1143 linBinsI[mLinearBinLut[k]] += static_cast<u32>(mag[k]);
1144 }
1145
1146 // Convert to float
1147 for (int i = 0; i < numLinearBins; ++i) {
1148 linBins[i] = static_cast<float>(linBinsI[i]);
1149 }
1150 }
#define FASTLED_STACK_ARRAY(TYPE, NAME, SIZE)
Stack-allocated array with automatic zero-initialization.
Definition alloca.h:32
fl::vector< u8 > mLinearBinLut
void resize(fl::size n) FL_NO_EXCEPT
Definition vector.h:593

References FASTLED_STACK_ARRAY, fl::FL_NO_EXCEPT, mFmax, mFmin, mLinearBinLut, mLinearKEnd, mLinearKStart, mTotalBands, and fl::vector< T >::resize().

Referenced by runHybrid(), runLogRebin(), runNaive(), and runOctaveWise().

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