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

◆ computeLinearBins()

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

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

1034 {
1035 const int numLinearBins = mTotalBands;
1036
1037 fl::vector<float> &linBins = out->linear_mut();
1038 linBins.resize(numLinearBins);
1039 out->setLinearParams(mFmin, mFmax);
1040
1041 // Integer accumulation using pre-computed LUT
1042 FASTLED_STACK_ARRAY(u32, linBinsI, numLinearBins);
1043 for (int i = 0; i < numLinearBins; ++i) {
1044 linBinsI[i] = 0;
1045 }
1046
1047 for (int k = mLinearKStart; k < mLinearKEnd; ++k) {
1048 linBinsI[mLinearBinLut[k]] += static_cast<u32>(mag[k]);
1049 }
1050
1051 // Convert to float
1052 for (int i = 0; i < numLinearBins; ++i) {
1053 linBins[i] = static_cast<float>(linBinsI[i]);
1054 }
1055 }
#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_NOEXCEPT
Definition vector.h:593

References FASTLED_STACK_ARRAY, fl::audio::fft::Bins::linear_mut(), mFmax, mFmin, mLinearBinLut, mLinearKEnd, mLinearKStart, mTotalBands, fl::vector< T >::resize(), and fl::audio::fft::Bins::setLinearParams().

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

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