32 wg->
a1a = (1.0f - da) / (1.0f + da);
33 wg->
a1b = (1.0f - db) / (1.0f + db);
40 memset(wg->
buffer[0], 0, wg->
size *
sizeof(
float));
41 memset(wg->
buffer[1], 0, wg->
size *
sizeof(
float));
60 if (delay > wg->
size) {
62 }
else if (delay < 1) {
76 wg->
a1a = (1.0f - da) / (1.0f + da);
77 wg->
a1b = (1.0f - db) / (1.0f + db);
85 *out0 = wg->
lp[0] * (wg->
fc - 1.0f) + wg->
fc * *out0;
87 tmp = *out0 * -(wg->
a1a) + wg->
zm1[0];
88 wg->
zm1[0] = tmp * wg->
a1a + *out0;
92 *out1 = wg->
lp[1] * (wg->
fc - 1.0f) + wg->
fc * *out1;
94 tmp = *out1 * -(wg->
a1a) + wg->
zm1[1];
95 wg->
zm1[1] = tmp * wg->
a1a + *out1;
113 *out0 = wg->
lp[0] * (wg->
fc - 1.0f) + wg->
fc * *out0;
115 b = (*out0 + 1.0) * 6.0f;
123 a1 =
b * wg->
a1a + (1.0f -
b) * wg->
a1b;
124 tmp = *out0 * -a1 + wg->
zm1[0];
125 wg->
zm1[0] = tmp * a1 + *out0;
129 *out1 = wg->
lp[1] * (wg->
fc - 1.0f) + wg->
fc * *out1;
131 b = (*out1 + 1.0) * 6.0f;
139 a1 =
b * wg->
a1a + (1.0f -
b) * wg->
a1b;
140 tmp = *out1 * -a1 + wg->
zm1[1];
141 wg->
zm1[1] = tmp * a1 + *out1;
Definition waveguide_nl.h:7
int delay
Definition waveguide_nl.h:11
float a1a
Definition waveguide_nl.h:14
int ptr
Definition waveguide_nl.h:10
float * buffer[2]
Definition waveguide_nl.h:9
float lp[2]
Definition waveguide_nl.h:13
float fc
Definition waveguide_nl.h:12
float a1b
Definition waveguide_nl.h:15
float zm1[2]
Definition waveguide_nl.h:16
int size
Definition waveguide_nl.h:8
void waveguide_nl_set_fc(waveguide_nl *wg, float fc)
Definition waveguide_nl.h:69
void waveguide_nl_set_ap(waveguide_nl *wg, float da, float db)
Definition waveguide_nl.h:74
void waveguide_nl_set_delay(waveguide_nl *wg, int delay)
Definition waveguide_nl.h:58
void waveguide_nl_reset(waveguide_nl *wg)
Definition waveguide_nl.h:38
void waveguide_nl_free(waveguide_nl *wg)
Definition waveguide_nl.h:48
void waveguide_nl_process(waveguide_nl *wg, float in0, float in1, float *out0, float *out1)
Definition waveguide_nl.h:106
waveguide_nl * waveguide_nl_new(int size, float fc, float da, float db)
Definition waveguide_nl.h:19
void waveguide_nl_process_lin(waveguide_nl *wg, float in0, float in1, float *out0, float *out1)
Definition waveguide_nl.h:80