ViPERFX_RE/src/viper/effects/ViPERClarity.h
2025-04-01 20:40:02 +02:00

39 lines
804 B
C++

#pragma once
#include <cstdint>
#include "../utils/NoiseSharpening.h"
#include "../utils/HiFi.h"
#include "../utils/HighShelf.h"
// Iscle: Verified with the latest version at 13/12/2022
class ViPERClarity {
public:
enum class ClarityMode : uint8_t {
NATURAL = 0,
OZONE,
XHIFI
};
ViPERClarity();
void Process(float *samples, uint32_t size);
void Reset();
void SetClarity(float gainPercent);
void SetClarityToFilter();
void SetEnable(bool enable);
void SetProcessMode(ClarityMode processMode);
void SetSamplingRate(uint32_t samplingRate);
private:
NoiseSharpening noiseSharpening;
HighShelf highShelf[2];
HiFi hifi;
bool enable;
ClarityMode processMode;
uint32_t samplingRate;
float clarityGainPercent;
};