FastLED 3.10.9
Loading...
Searching...
No Matches

◆ computeLinearBins()

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

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

1126 {
1127 const int numLinearBins = mTotalBands;
1128
1129 fl::vector<float> &linBins = out->linear_mut();
1130 linBins.resize(numLinearBins);
1131 out->setLinearParams(mFmin, mFmax);
1132
1133 // Integer accumulation using pre-computed LUT
1134 FASTLED_STACK_ARRAY(u32, linBinsI, numLinearBins);
1135 for (int i = 0; i < numLinearBins; ++i) {
1136 linBinsI[i] = 0;
1137 }
1138
1139 for (int k = mLinearKStart; k < mLinearKEnd; ++k) {
1140 linBinsI[mLinearBinLut[k]] += static_cast<u32>(mag[k]);
1141 }
1142
1143 // Convert to float
1144 for (int i = 0; i < numLinearBins; ++i) {
1145 linBins[i] = static_cast<float>(linBinsI[i]);
1146 }
1147 }
#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: