ViPERFX_RE/src/viper/utils/IIR_NOrder_BW_LH.h

26 lines
527 B
C
Raw Normal View History

2021-07-27 09:47:15 +02:00
#pragma once
#include "IIR_1st.h"
class IIR_NOrder_BW_LH {
public:
explicit IIR_NOrder_BW_LH(uint32_t order);
2021-07-27 09:47:15 +02:00
~IIR_NOrder_BW_LH();
void Mute();
2022-09-23 04:15:43 +02:00
void setLPF(float frequency, uint32_t samplingRate);
void setHPF(float frequency, uint32_t samplingRate);
2021-07-27 09:47:15 +02:00
2022-10-25 03:24:27 +02:00
IIR_1st *filters;
2021-07-27 09:47:15 +02:00
uint32_t order;
};
2021-07-31 16:00:35 +02:00
inline float do_filter_lh(IIR_NOrder_BW_LH *filt, float sample) {
2022-10-15 03:40:21 +02:00
for (uint32_t idx = 0; idx < filt->order; idx++) {
2021-07-31 16:00:35 +02:00
sample = do_filter(&filt->filters[idx], sample);
}
return sample;
}