Implements fl::audio::Detector.
Definition at line 45 of file vibe.cpp.hpp.
45 {
46 if (!context) {
47 return;
48 }
49
52
53
54 BandEnergy energy = context->getBandEnergy();
56
57 span<const i16> pcm = context->getPCM();
58
59
60 mImm[0] = energy.bass;
62 mImm[2] = energy.treb;
63
64
65
67 float actualFps = (dt > 0.0f) ? (1.0f / dt) :
mTargetFps;
68
70
71
72 for (int i = 0; i < 3; i++) {
75 }
76 } else {
77
81
82 for (int i = 0; i < 3; i++) {
83
84
85
86 float rate = (
mImm[i] >
mAvg[i]) ? attackRate : decayRate;
88
89
90
91
92
93
95 }
96 }
97
98
99
100
101 for (int i = 0; i < 3; i++) {
105 } else {
108 }
109 }
110
111
112
113
114
115
116
117
118 const bool silent = context->isSilent();
119 for (int i = 0; i < 3; i++) {
122 }
123
124
125
129
133}
SilenceEnvelope mImmRelEnv[3]
static float adjustRateToFPS(float rateAtFps1, float fps1, float actualFps) FL_NOEXCEPT
SilenceEnvelope mAvgRelEnv[3]
float computeAudioDt(fl::size pcmSize, int sampleRate) FL_NOEXCEPT
Compute the time delta (in seconds) for an audio buffer.
References Vibe(), adjustRateToFPS(), fl::audio::BandEnergy::bass, fl::audio::computeAudioDt(), mAvg, mAvgRel, mAvgRelEnv, mBassSpike, mFrameCount, fl::audio::BandEnergy::mid, mImm, mImmRel, mImmRelEnv, mLongAvg, mMidSpike, mPrevBassSpike, mPrevMidSpike, mPrevTrebSpike, mSampleRate, mTargetFps, mTrebSpike, fl::span< T, Extent >::size(), fl::audio::detector::sVibeFFTCount, fl::audio::BandEnergy::treb, and update().
Referenced by ~Vibe(), and update().