1234567891011121314151617181920212223242526272829 |
- #pragma once
- class Biquad
- {
- public:
- Biquad();
- void copy_filter(const Biquad &other);
- void SetSampleRate(double fs);
- void set_freq(double f0);
- void set_s_eq(const double b[3], const double a[3]);
- void transform_s_to_z();
- void process_block(float *dest_ptr, const float *src_ptr, long nbr_spl);
- void clear_buffers();
- private:
- double _s_eq_b[3];
- double _s_eq_a[3];
- double _z_eq_b[3];
- double _z_eq_a[3];
- double sampleRate;
- double _f0;
- double xn[2];
- double yn[2];
- int _mem_pos;
- inline double process_sample(double x);
- };
|