Lines Matching refs:rev

110 static float revmodel_process(struct revmodel *rev, float in)  in revmodel_process()  argument
115 float input = mono_in * rev->gain; in revmodel_process()
118 mono_out += comb_process(&rev->combL[i], input); in revmodel_process()
121 mono_out = allpass_process(&rev->allpassL[i], mono_out); in revmodel_process()
123 return mono_in * rev->dry + mono_out * rev->wet1; in revmodel_process()
126 static void revmodel_update(struct revmodel *rev) in revmodel_update() argument
129 rev->wet1 = rev->wet * (rev->width / 2.0f + 0.5f); in revmodel_update()
131 if (rev->mode >= freezemode) in revmodel_update()
133 rev->roomsize1 = 1.0f; in revmodel_update()
134 rev->damp1 = 0.0f; in revmodel_update()
135 rev->gain = muted; in revmodel_update()
139 rev->roomsize1 = rev->roomsize; in revmodel_update()
140 rev->damp1 = rev->damp; in revmodel_update()
141 rev->gain = fixedgain; in revmodel_update()
146 rev->combL[i].feedback = rev->roomsize1; in revmodel_update()
147 rev->combL[i].damp1 = rev->damp1; in revmodel_update()
148 rev->combL[i].damp2 = 1.0f - rev->damp1; in revmodel_update()
152 static void revmodel_setroomsize(struct revmodel *rev, float value) in revmodel_setroomsize() argument
154 rev->roomsize = value * scaleroom + offsetroom; in revmodel_setroomsize()
155 revmodel_update(rev); in revmodel_setroomsize()
158 static void revmodel_setdamp(struct revmodel *rev, float value) in revmodel_setdamp() argument
160 rev->damp = value * scaledamp; in revmodel_setdamp()
161 revmodel_update(rev); in revmodel_setdamp()
164 static void revmodel_setwet(struct revmodel *rev, float value) in revmodel_setwet() argument
166 rev->wet = value * scalewet; in revmodel_setwet()
167 revmodel_update(rev); in revmodel_setwet()
170 static void revmodel_setdry(struct revmodel *rev, float value) in revmodel_setdry() argument
172 rev->dry = value * scaledry; in revmodel_setdry()
173 revmodel_update(rev); in revmodel_setdry()
176 static void revmodel_setwidth(struct revmodel *rev, float value) in revmodel_setwidth() argument
178 rev->width = value; in revmodel_setwidth()
179 revmodel_update(rev); in revmodel_setwidth()
182 static void revmodel_setmode(struct revmodel *rev, float value) in revmodel_setmode() argument
184 rev->mode = value; in revmodel_setmode()
185 revmodel_update(rev); in revmodel_setmode()
188 static void revmodel_init(struct revmodel *rev,int srate) in revmodel_init() argument
198 rev->bufcomb[c] = malloc(r*comb_lengths[c]*sizeof(float)); in revmodel_init()
199 rev->combL[c].buffer = rev->bufcomb[c]; in revmodel_init()
200 memset(rev->combL[c].buffer,0,r*comb_lengths[c]*sizeof(float)); in revmodel_init()
201 rev->combL[c].bufsize=r*comb_lengths[c]; in revmodel_init()
206 rev->bufallpass[c] = malloc(r*allpass_lengths[c]*sizeof(float)); in revmodel_init()
207 rev->allpassL[c].buffer = rev->bufallpass[c]; in revmodel_init()
208 memset(rev->allpassL[c].buffer,0,r*allpass_lengths[c]*sizeof(float)); in revmodel_init()
209 rev->allpassL[c].bufsize=r*allpass_lengths[c]; in revmodel_init()
210 rev->allpassL[c].feedback = 0.5f; in revmodel_init()
213 revmodel_setwet(rev, initialwet); in revmodel_init()
214 revmodel_setroomsize(rev, initialroom); in revmodel_init()
215 revmodel_setdry(rev, initialdry); in revmodel_init()
216 revmodel_setdamp(rev, initialdamp); in revmodel_init()
217 revmodel_setwidth(rev, initialwidth); in revmodel_init()
218 revmodel_setmode(rev, initialmode); in revmodel_init()
228 struct reverb_data *rev = (struct reverb_data*)data; in reverb_free() local
232 free(rev->left.bufcomb[i]); in reverb_free()
233 free(rev->right.bufcomb[i]); in reverb_free()
237 free(rev->left.bufallpass[i]); in reverb_free()
238 free(rev->right.bufallpass[i]); in reverb_free()
248 struct reverb_data *rev = (struct reverb_data*)data; in reverb_process() local
258 out[0] = revmodel_process(&rev->left, in[0]); in reverb_process()
259 out[1] = revmodel_process(&rev->right, in[1]); in reverb_process()
267 struct reverb_data *rev = (struct reverb_data*) in reverb_init() local
268 calloc(1, sizeof(*rev)); in reverb_init()
269 if (!rev) in reverb_init()
278 revmodel_init(&rev->left,info->input_rate); in reverb_init()
279 revmodel_init(&rev->right,info->input_rate); in reverb_init()
281 revmodel_setdamp(&rev->left, damping); in reverb_init()
282 revmodel_setdry(&rev->left, drytime); in reverb_init()
283 revmodel_setwet(&rev->left, wettime); in reverb_init()
284 revmodel_setwidth(&rev->left, roomwidth); in reverb_init()
285 revmodel_setroomsize(&rev->left, roomsize); in reverb_init()
287 revmodel_setdamp(&rev->right, damping); in reverb_init()
288 revmodel_setdry(&rev->right, drytime); in reverb_init()
289 revmodel_setwet(&rev->right, wettime); in reverb_init()
290 revmodel_setwidth(&rev->right, roomwidth); in reverb_init()
291 revmodel_setroomsize(&rev->right, roomsize); in reverb_init()
293 return rev; in reverb_init()