FastLED 3.10.8
Loading...
Searching...
No Matches
audio_batch.cpp.hpp
Go to the documentation of this file.
3#include "fl/stl/noexcept.h"
4
5namespace fl {
6
8 fl::lock_guard<fl::mutex> lock(mMutex);
9 if (mPeaksComputed) {
10 return;
11 }
12 for (const AudioFrame &af : mFrames) {
13 if (af.bass > mPeaks.bass)
14 mPeaks.bass = af.bass;
15 if (af.mid > mPeaks.mid)
16 mPeaks.mid = af.mid;
17 if (af.treble > mPeaks.treble)
18 mPeaks.treble = af.treble;
19 if (af.volume > mPeaks.volume)
20 mPeaks.volume = af.volume;
21 mPeaks.beat = mPeaks.beat || af.beat;
22 }
23 mPeaksComputed = true;
24}
25
27 fl::lock_guard<fl::mutex> lock(mMutex);
28 if (!mVibeComputed) {
29 if (mProc) {
30 mVibe.bass = mProc->getVibeBass();
31 mVibe.mid = mProc->getVibeMid();
32 mVibe.treb = mProc->getVibeTreb();
33 mVibe.vol = mProc->getVibeVol();
34 mVibe.bassSpike = mProc->isVibeBassSpike();
35 mVibe.midSpike = mProc->isVibeMidSpike();
36 mVibe.trebSpike = mProc->isVibeTrebSpike();
37 }
38 mVibeComputed = true;
39 }
40 return mVibe;
41}
42
44 fl::lock_guard<fl::mutex> lock(mMutex);
45 if (!mEqComputed) {
46 if (mProc) {
47 mEq.bass = mProc->getEqBass();
48 mEq.mid = mProc->getEqMid();
49 mEq.treble = mProc->getEqTreble();
50 mEq.volume = mProc->getEqVolume();
51 mEq.dominantFreqHz = mProc->getEqDominantFreqHz();
52 mEq.isSilence = mProc->getEqIsSilence();
53 for (int i = 0; i < EqLevels::kNumBins; ++i) {
54 mEq.bins[i] = mProc->getEqBin(i);
55 }
56 }
57 mEqComputed = true;
58 }
59 return mEq;
60}
61
63 fl::lock_guard<fl::mutex> lock(mMutex);
64 if (!mPercComputed) {
65 if (mProc) {
66 mPerc.kick = mProc->isKick();
67 mPerc.snare = mProc->isSnare();
68 mPerc.hihat = mProc->isHiHat();
69 mPerc.tom = mProc->isTom();
70 }
71 mPercComputed = true;
72 }
73 return mPerc;
74}
75
76} // namespace fl
void ensurePeaks() const FL_NO_EXCEPT
PercussionState mPerc
VibeLevels mVibe
audio::Processor * mProc
const VibeLevels & vibe() const FL_NO_EXCEPT
const EqLevels & equalizer() const FL_NO_EXCEPT
fl::span< const AudioFrame > mFrames
Definition audio_batch.h:99
const PercussionState & percussion() const FL_NO_EXCEPT
AudioFrame mPeaks
fl::mutex mMutex
u8 u8 fract8 blur_amount FL_NO_EXCEPT
Definition blur.h:186
Base definition for an LED controller.
Definition crgb.hpp:179
Snapshot of self-normalizing MilkDrop-style vibe levels.
Definition audio_batch.h:21
Snapshot of percussion detection state.
Definition audio_batch.h:47
Lightweight snapshot of pre-computed audio analysis for one audio sample.
Definition audio_frame.h:10
static constexpr int kNumBins
Definition audio_batch.h:36
Snapshot of 16-bin normalized spectrum.
Definition audio_batch.h:35