Lines Matching +full:dsp +full:- +full:config +full:- +full:name
1 /*-
55 /* (block_size * 2) elements, half-complex, freq domain */
77 * Masking window value for -1 < x < 1.
89 equalizer_load_freq_amps(struct Equalizer *e, const char *config) in equalizer_load_freq_amps() argument
97 if (strncasecmp(config, "normalize", 4) == 0) { in equalizer_load_freq_amps()
98 while (*config != 0) { in equalizer_load_freq_amps()
99 if (*config == '\n') { in equalizer_load_freq_amps()
100 config++; in equalizer_load_freq_amps()
103 config++; in equalizer_load_freq_amps()
105 e->do_normalize = 1; in equalizer_load_freq_amps()
107 e->do_normalize = 0; in equalizer_load_freq_amps()
110 for (i = 0; i <= (e->block_size / 2); ++i) { in equalizer_load_freq_amps()
111 const double f = (i * e->rate) / e->block_size; in equalizer_load_freq_amps()
117 if (*config == 0) { in equalizer_load_freq_amps()
118 next_f = e->rate; in equalizer_load_freq_amps()
123 if (sscanf(config, "%lf %lf %n", &next_f, &next_amp, &len) == 2) { in equalizer_load_freq_amps()
124 config += len; in equalizer_load_freq_amps()
137 e->fftw_freq[i] = ((f - prev_f) / (next_f - prev_f)) * (next_amp - prev_amp) + prev_amp; in equalizer_load_freq_amps()
147 e->rate = rate; in equalizer_init()
148 e->block_size = block_size; in equalizer_init()
150 buffer_size = sizeof(double) * e->block_size; in equalizer_init()
152 e->fftw_time = (double *)malloc(buffer_size); in equalizer_init()
153 e->fftw_freq = (double *)malloc(buffer_size); in equalizer_init()
155 e->forward = fftw_plan_r2r_1d(block_size, e->fftw_time, e->fftw_freq, in equalizer_init()
157 e->inverse = fftw_plan_r2r_1d(block_size, e->fftw_freq, e->fftw_time, in equalizer_init()
162 equalizer_load(struct Equalizer *eq, const char *config) in equalizer_load() argument
165 int N = eq->block_size; in equalizer_load()
169 memset(eq->fftw_freq, 0, buffer_size); in equalizer_load()
171 message("\n\nReloading amplification specifications:\n%s\n", config); in equalizer_load()
173 if (!equalizer_load_freq_amps(eq, config)) in equalizer_load()
178 memcpy(requested_freq, eq->fftw_freq, buffer_size); in equalizer_load()
180 fftw_execute(eq->inverse); in equalizer_load()
186 eq->fftw_time[N / 2 + i] = eq->fftw_time[i] * weight; in equalizer_load()
188 for (i = (N / 2 - 1); i > 0; --i) { in equalizer_load()
189 eq->fftw_time[i] = eq->fftw_time[N - i]; in equalizer_load()
191 eq->fftw_time[0] = 0; in equalizer_load()
193 fftw_execute(eq->forward); in equalizer_load()
195 eq->fftw_freq[i] /= (double)N; in equalizer_load()
200 double f = (eq->rate / N) * i; in equalizer_load()
201 double a = sqrt(pow(eq->fftw_freq[i], 2.0) + in equalizer_load()
202 ((i > 0 && i < N / 2) ? pow(eq->fftw_freq[N - i], 2.0) : 0)); in equalizer_load()
212 if (eq->do_normalize) { in equalizer_load()
216 sum += fabs(eq->fftw_time[i]); in equalizer_load()
219 eq->fftw_time[i] /= sum; in equalizer_load()
223 message("%.3lf ms: %.10lf\n", 1000.0 * i / eq->rate, eq->fftw_time[i]); in equalizer_load()
239 fftw_destroy_plan(eq->forward); in equalizer_done()
240 fftw_destroy_plan(eq->inverse); in equalizer_done()
241 free(eq->fftw_time); in equalizer_done()
242 free(eq->fftw_freq); in equalizer_done()
259 message("Usage: virtual_equalizer -d /dev/vdsp.ctl \n" in usage()
260 "\t -d, --device [control device]\n" in usage()
261 "\t -w, --what [rx_dev,tx_dev,rx_loop,tx_loop, default tx_dev]\n" in usage()
262 "\t -p, --part [part number, default 0]\n" in usage()
263 "\t -c, --channels [channels, default -1]\n" in usage()
264 "\t -f, --file [read input from file, default standard input]\n" in usage()
265 "\t -o, --off [disable equalizer]\n" in usage()
266 "\t -q, --quiet\n" in usage()
267 "\t -h, --help\n"); in usage()
283 const char *dsp = NULL; in main() local
285 int channels = -1; in main()
294 equalizer_opts, NULL)) != -1) { in main()
297 dsp = optarg; in main()
331 message("Bad -w argument not recognized\n"); in main()
360 int fd = open(dsp, O_RDWR); in main()
363 message("Cannot open DSP device\n"); in main()
394 message("Please enter EQ layout for %s, <freq> <gain>:\n", info.name); in main()
398 if (offset == (int)(sizeof(buffer) - 1)) { in main()
402 len = read(f, buffer + offset, sizeof(buffer) - 1 - offset); in main()