32 lines
636 B
C
Raw Normal View History

2021-07-30 16:54:59 +02:00
#pragma once
#include <cstdint>
2021-07-30 16:54:59 +02:00
#include "../utils/Harmonic.h"
#include "../utils/MultiBiquad.h"
2023-05-15 02:15:46 +02:00
#include <array>
2021-07-30 16:54:59 +02:00
class AnalogX {
public:
AnalogX();
void Process(float *samples, uint32_t size);
2021-07-30 16:54:59 +02:00
void Reset();
2022-10-11 00:36:38 +02:00
void SetEnable(bool enable);
2022-09-13 02:16:31 +02:00
void SetProcessingModel(int processingModel);
void SetSamplingRate(uint32_t samplingRate);
2021-07-30 16:54:59 +02:00
2022-09-16 03:16:58 +02:00
private:
2023-05-15 02:15:46 +02:00
std::array<MultiBiquad, 2> highPass;
std::array<Harmonic, 2> harmonic;
std::array<MultiBiquad, 2> lowPass;
std::array<MultiBiquad, 2> peak;
2021-07-30 16:54:59 +02:00
float gain;
uint32_t freqRange;
int processingModel;
2022-09-13 02:16:31 +02:00
uint32_t samplingRate;
2022-10-11 00:36:38 +02:00
bool enable;
2021-07-30 16:54:59 +02:00
};