示例#1
0
void PeakODF::reset()
{
    reset_mq(mq_params);
    destroy_mq(mq_params);
    mq_params->frame_size = frame_size;
    mq_params->num_bins = (frame_size/2) + 1;
    mq_params->fundamental = 44100.0 / frame_size; /* TODO: change to params->sampling_rate */
    init_mq(mq_params);
}
示例#2
0
文件: mq.cpp 项目: einvalentin/modal
int init_mq(MQParameters* params)
{
    /* TODO: check memory allocation */
    /* allocate memory for window */
    params->window = (sample*) malloc(sizeof(sample) * params->frame_size);
    int i;
    for(i = 0; i < params->frame_size; i++)
    {
        params->window[i] = 1.0;
    }
    hann_window(params->frame_size, params->window);

	/* allocate memory for FFT */
	params->fft_in = (sample*) fftw_malloc(sizeof(sample) * params->frame_size);
	params->fft_out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * params->num_bins);
	params->fft_plan = fftw_plan_dft_r2c_1d(params->frame_size, params->fft_in, 
                                            params->fft_out, FFTW_ESTIMATE);
    /* set other variables to defaults */
    reset_mq(params);
    return 0;
}
示例#3
0
文件: mq.cpp 项目: jclevesque/modal
int init_mq(MQParameters* params) {
    // allocate memory for window
    params->window = (sample*) malloc(sizeof(sample) * params->frame_size);
    int i;
    for(i = 0; i < params->frame_size; i++) {
        params->window[i] = 1.0;
    }
    hann_window(params->frame_size, params->window);

	// allocate memory for FFT
	params->fft_in = (sample*) fftw_malloc(sizeof(sample) *
                                           params->frame_size);
	params->fft_out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) *
                                                  params->num_bins);
	params->fft_plan = fftw_plan_dft_r2c_1d(params->frame_size, params->fft_in,
                                            params->fft_out, FFTW_ESTIMATE);
    // set other variables to defaults
    params->prev_peaks = NULL;
    params->prev_peaks2 = NULL;
    reset_mq(params);
    return 0;
}