psyn/filter.h

33 lines
760 B
C

struct filter_t
{
double k;
double r;
double v_l;
double v_r;
double last_in_l;
double last_in_r;
double last_out_l;
double last_out_r;
};
struct bw_filter_t
{
double a1;
double a2;
double a3;
double b1;
double b2;
double in1_l, in2_l, out1_l, out2_l;
double in1_r, in2_r, out1_r, out2_r;
};
void filter_init_rc(struct filter_t *filter, double R, double C);
void filter_init_freq(struct filter_t *filter, double freq);
void filter_run_lp(struct filter_t *filter, double left, double right);
void filter_run_hp(struct filter_t *filter, double left, double right);
void bw_filter_init_lp(struct bw_filter_t *f, double freq, double resonance);
void bw_filter_run(struct bw_filter_t *f, double in_l, double in_r, double *out_l, double *out_r);