Implements fl::audio::Detector.
Definition at line 42 of file percussion.cpp.hpp.
42 {
45 u32 timestamp = context->getTimestamp();
46
47
49
50
52
53
54 float totalEnergy = 0.0f;
55 for (fl::size i = 0; i <
fft.raw().size(); ++i) {
56 totalEnergy +=
fft.raw()[i];
57 }
58 const float dt =
computeAudioDt(context->getPCM().size(), context->getSampleRate());
60 float flux =
fl::max(0.0f, totalEnergy - envValue);
62
63
64 static constexpr float kOnsetGate = 0.05f;
74 return;
75 }
76
77
79
80
82
83
92
93
98}
static constexpr u32 SNARE_COOLDOWN_MS
shared_ptr< const fft::Bins > mRetainedFFT
AttackDecayFilter< float > mTotalEnvelope
static constexpr u32 KICK_COOLDOWN_MS
static constexpr u32 HIHAT_COOLDOWN_MS
void computeFeatures(const fft::Bins &fft) FL_NO_EXCEPT
void applyCrossBandRejection() FL_NO_EXCEPT
void computeConfidences() FL_NO_EXCEPT
static constexpr u32 TOM_COOLDOWN_MS
float mZeroCrossingFactor
float computeAudioDt(fl::size pcmSize, int sampleRate) FL_NO_EXCEPT
Compute the time delta (in seconds) for an audio buffer.
constexpr common_type_t< T, U > max(T a, U b) FL_NO_EXCEPT
References Percussion(), applyCrossBandRejection(), fl::audio::computeAudioDt(), computeConfidences(), computeFeatures(), fl::audio::fft::CQ_NAIVE, fl::FL_NO_EXCEPT, HIHAT_COOLDOWN_MS, KICK_COOLDOWN_MS, fl::max(), mHiHatConfidence, mHiHatDetected, mHiHatThreshold, mKickConfidence, mKickDetected, mKickThreshold, mLastHiHatTime, mLastKickTime, mLastSnareTime, mLastTomTime, mOnsetSharpness, mRetainedFFT, mSnareConfidence, mSnareDetected, mSnareThreshold, mTomConfidence, mTomDetected, mTomThreshold, mTotalEnvelope, mZeroCrossingFactor, SNARE_COOLDOWN_MS, TOM_COOLDOWN_MS, and update().
Referenced by ~Percussion(), update(), and update().