Class thl::dsp::analysis::Follower#

class Follower#

Public Functions

Follower() = default#
~Follower() = default#
inline void prepare(float low, float low_mid, float mid_high)#
inline void process(float sample, float *envelope, float *centroid)#
inline void process_bands(float sample)#

Band-split + detector update only — for callers that read the bands via band() and don’t need the summed envelope or the spectral centroid (whose per-sample smoothing process() always pays).

inline float band(size_t index) const#

Detector level for one band (0 = low, 1 = mid, 2 = high), as updated by the last process() / process_bands() call.

Already envelope-shaped by the per-band attack/decay slopes (this is the follower’s ballistic state, not the instantaneous band amplitude); any additional smoothing a consumer applies (e.g. frame-rate de-aliasing in a UI poll) is on top of that. Exposes the per-band split the summed envelope hides.

Follower(const Follower&) = delete#
Follower &operator=(const Follower&) = delete#