Implements fl::audio::Detector.
Definition at line 54 of file vibe.cpp.hpp.
54 {
55 if (!context) {
56 return;
57 }
58
61
62
63 BandEnergy energy = context->getBandEnergy();
65
66 span<const i16> pcm = context->getPCM();
67
68
69 mImm[0] = energy.bass;
71 mImm[2] = energy.treb;
72
73
74
76 float actualFps = (dt > 0.0f) ? (1.0f / dt) :
mTargetFps;
77
79
80
81 for (int i = 0; i < 3; i++) {
84 }
85 } else {
86
90
91 for (int i = 0; i < 3; i++) {
92
93
94
95 float rate = (
mImm[i] >
mAvg[i]) ? attackRate : decayRate;
97
98
99
100
101
102
104 }
105 }
106
107
108
109
110 for (int i = 0; i < 3; i++) {
114 } else {
117 }
118 }
119
120
121
122
123
124
125
126
127 const bool silent = context->isSilent();
128 for (int i = 0; i < 3; i++) {
131 }
132
133
134
138
142}
static float adjustRateToFPS(float rateAtFps1, float fps1, float actualFps) FL_NO_EXCEPT
SilenceEnvelope mImmRelEnv[3]
SilenceEnvelope mAvgRelEnv[3]
float computeAudioDt(fl::size pcmSize, int sampleRate) FL_NO_EXCEPT
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().