29 void Init(
float sampleRateInHz,
30 int blockSizeInSamples,
31 float smoothingFilterCutoffHz = 1.0f)
33 const auto secPerBlock = float(blockSizeInSamples) / sampleRateInHz;
35 ticksPerBlockInv_ = 1.0f / (ticksPerS * secPerBlock);
38 const auto blockRateInHz = sampleRateInHz / float(blockSizeInSamples);
39 const auto cutoffNormalized
40 = smoothingFilterCutoffHz * 2.0f * 3.141592653f / blockRateInHz;
43 smoothingConstant_ = cutoffNormalized / (cutoffNormalized + 1.0f);
29 void Init(
float sampleRateInHz, {
…}
55 const auto ticksPassed = end - currentBlockStartTicks_;
56 const auto currentBlockLoad
57 = float(ticksPassed) * ticksPerBlockInv_;
61 max_ = min_ = avg_ = currentBlockLoad;
66 if(currentBlockLoad > max_)
67 max_ = currentBlockLoad;
68 if(currentBlockLoad < min_)
69 min_ = currentBlockLoad;
71 avg_ = smoothingConstant_ * currentBlockLoad
72 + (1.0f - smoothingConstant_) * avg_;
87 avg_ = max_ = min_ = NAN;
92 float ticksPerBlockInv_;
93 uint32_t currentBlockStartTicks_;
97 float smoothingConstant_;
Definition CpuLoadMeter.h:19
float GetAvgCpuLoad() const
Definition CpuLoadMeter.h:77
void Reset()
Definition CpuLoadMeter.h:84
void Init(float sampleRateInHz, int blockSizeInSamples, float smoothingFilterCutoffHz=1.0f)
Definition CpuLoadMeter.h:29
CpuLoadMeter()
Definition CpuLoadMeter.h:21
float GetMaxCpuLoad() const
Definition CpuLoadMeter.h:81
void OnBlockStart()
Definition CpuLoadMeter.h:49
void OnBlockEnd()
Definition CpuLoadMeter.h:52
float GetMinCpuLoad() const
Definition CpuLoadMeter.h:79
static uint32_t GetTick()
static uint32_t GetTickFreq()
Hardware defines and helpers for daisy field platform.
Definition index.h:2