97 const float dl0 =
a[0], dl1 =
a[1], dl2 =
a[2], dl3 =
a[3];
99 b[0] = 0.5f*(+dl0 + dl1 - dl2 - dl3);
100 b[1] = 0.5f*(+dl0 - dl1 - dl2 + dl3);
101 b[2] = 0.5f*(-dl0 + dl1 - dl2 + dl3);
102 b[3] = 0.5f*(+dl0 + dl1 + dl2 + dl3);
109 float lsum,rsum,sum,sign;
111 if (isnan(
x) || fabsf(
x) > 100000.0f) {
133 sum += sign*(
p->taillevel*
p->d[
i] +
p->earlylevel*
p->u[
i]);
136 sum +=
x*
p->earlylevel;
161 if (
a <= 1.0 || isnan(
a)) {
166 p->largestdelay =
p->rate *
p->roomsize * 0.00294f;
168 p->fdnlens[0] =
f_round(1.000000f*
p->largestdelay);
169 p->fdnlens[1] =
f_round(0.816490f*
p->largestdelay);
170 p->fdnlens[2] =
f_round(0.707100f*
p->largestdelay);
171 p->fdnlens[3] =
f_round(0.632450f*
p->largestdelay);
173 p->fdngains[
i] = -powf((
float)
p->alpha,
p->fdnlens[
i]);
176 p->taps[0] = 5+
f_round(0.410f*
p->largestdelay);
177 p->taps[1] = 5+
f_round(0.300f*
p->largestdelay);
178 p->taps[2] = 5+
f_round(0.155f*
p->largestdelay);
179 p->taps[3] = 5+
f_round(0.000f*
p->largestdelay);
182 p->tapgains[
i] = powf((
float)
p->alpha,
p->taps[
i]);
197 ga = powf(10.0f,-ga/20.0f);
199 p->alpha = (double)powf(ga,1.0f/
n);
202 p->fdngains[
i] = -powf((
float)
p->alpha,
p->fdnlens[
i]);
219 p->inputbandwidth =
a;
uint8_t a
Definition Spc_Cpu.h:141
unsigned z
Definition inflate.c:1589
register unsigned i
Definition inflate.c:1575
unsigned x[BMAX+1]
Definition inflate.c:1586
static void gverb_fdnmatrix(float *a, float *b)
Definition gverb.h:95
static void gverb_set_taillevel(ty_gverb *, float)
Definition gverb.h:228
void gverb_flush(ty_gverb *)
Definition gverb.c:190
static void gverb_set_damping(ty_gverb *, float)
Definition gverb.h:207
static void gverb_set_revtime(ty_gverb *, float)
Definition gverb.h:187
static void gverb_do(ty_gverb *, float, float *, float *)
Definition gverb.h:105
#define FDNORDER
Definition gverb.h:31
void gverb_free(ty_gverb *)
Definition gverb.c:164
static void gverb_set_inputbandwidth(ty_gverb *, float)
Definition gverb.h:217
static void gverb_set_roomsize(ty_gverb *, float)
Definition gverb.h:157
static void gverb_set_earlylevel(ty_gverb *, float)
Definition gverb.h:223
ty_gverb * gverb_new(int, float, float, float, float, float, float, float, float)
Definition gverb.c:31
static float damper_do(ty_damper *p, float x)
Definition gverbdsp.h:76
static void damper_set(ty_damper *p, float damping)
Definition gverbdsp.h:71
static float diffuser_do(ty_diffuser *p, float x)
Definition gverbdsp.h:45
static void fixeddelay_write(ty_fixeddelay *p, float x)
Definition gverbdsp.h:65
static float fixeddelay_read(ty_fixeddelay *p, int n)
Definition gverbdsp.h:57
static int f_round(float f)
Definition ladspa-util.h:175
float taillevel
Definition gverb.h:36
float * d
Definition gverb.h:54
ty_diffuser ** ldifs
Definition gverb.h:49
float largestdelay
Definition gverb.h:43
double alpha
Definition gverb.h:57
ty_diffuser ** rdifs
Definition gverb.h:50
float * u
Definition gverb.h:55
ty_damper * inputdamper
Definition gverb.h:38
int * fdnlens
Definition gverb.h:46
float * fdngains
Definition gverb.h:45
float earlylevel
Definition gverb.h:37
float inputbandwidth
Definition gverb.h:35
ty_fixeddelay * tapdelay
Definition gverb.h:51
float maxdelay
Definition gverb.h:42
float * tapgains
Definition gverb.h:53
ty_fixeddelay ** fdndels
Definition gverb.h:44
float maxroomsize
Definition gverb.h:39
int * taps
Definition gverb.h:52
float * f
Definition gverb.h:56
int rate
Definition gverb.h:34
ty_damper ** fdndamps
Definition gverb.h:47
float roomsize
Definition gverb.h:40
float fdndamping
Definition gverb.h:48
float revtime
Definition gverb.h:41
int n
Definition crypt.c:458
uch * p
Definition crypt.c:594
yr
Definition zipinfo.c:2302