mirror of
https://github.com/Boof2015/prism.git
synced 2026-08-18 11:34:19 +02:00
30 lines
667 B
C++
30 lines
667 B
C++
#pragma once
|
|
|
|
#include <optional>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
namespace Prism::Tui {
|
|
|
|
struct SpectrumPeakInfo {
|
|
float dbfs = -100.0f;
|
|
float frequencyHz = 0.0f;
|
|
std::string pitch;
|
|
};
|
|
|
|
std::string formatSpectrumPitch(float frequencyHz);
|
|
|
|
class SpectrumPeakTracker {
|
|
public:
|
|
std::optional<SpectrumPeakInfo> select(const std::vector<float>& magnitudes,
|
|
float sampleRate,
|
|
size_t fftSize,
|
|
float tiltDbPerOctave);
|
|
void reset();
|
|
|
|
private:
|
|
std::optional<SpectrumPeakInfo> previous_;
|
|
};
|
|
|
|
} // namespace Prism::Tui
|