source: src/fft.h @ b31f262

feature/autosinkfeature/cnnfeature/cnn_orgfeature/constantqfeature/crepefeature/crepe_orgfeature/pitchshiftfeature/pydocstringsfeature/timestretchfix/ffmpeg5pitchshiftsamplertimestretchyinfft+
Last change on this file since b31f262 was f88a326, checked in by Paul Brossier <piem@altern.org>, 19 years ago

added simplified mfft interface

  • Property mode set to 100644
File size: 1.9 KB
RevLine 
[96fb8ad]1/*
2         Copyright (C) 2003 Paul Brossier
3
4         This program is free software; you can redistribute it and/or modify
5         it under the terms of the GNU General Public License as published by
6         the Free Software Foundation; either version 2 of the License, or
7         (at your option) any later version.
8
9         This program is distributed in the hope that it will be useful,
10         but WITHOUT ANY WARRANTY; without even the implied warranty of
11         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12         GNU General Public License for more details.
13
14         You should have received a copy of the GNU General Public License
15         along with this program; if not, write to the Free Software
16         Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17         
18*/
19
20/** @file
21 * Fft object (fftw3f)
22 * */
23
24#ifndef FFT_H_
25#define FFT_H_
26/*
27// complex before fftw3
28#include <complex.h>
29*/
30#include <fftw3.h>
31
32#if FFTW3F_SUPPORT
33#define FFTW_TYPE fftwf_complex
34#else
35#define FFTW_TYPE fftw_complex
36#endif
37
38#ifdef __cplusplus
39extern "C" {
40#endif
41
42typedef FFTW_TYPE fft_data_t;
43
44typedef struct _aubio_fft_t aubio_fft_t;
45
46/* fftw funcs */
47extern aubio_fft_t * new_aubio_fft(uint_t size);
48extern void del_aubio_fft(aubio_fft_t * s);
49extern void aubio_fft_do (const aubio_fft_t *s, const smpl_t * data,
50    fft_data_t * spectrum, const uint_t size);
51extern void aubio_fft_rdo(const aubio_fft_t *s, const fft_data_t * spectrum,
52    smpl_t * data, const uint_t size);
53/** get norm from spectrum */
54void aubio_fft_getnorm(smpl_t * norm, fft_data_t * spectrum, uint_t size);
55/** get phase from spectrum */
56void aubio_fft_getphas(smpl_t * phase, fft_data_t * spectrum, uint_t size);
57
[f88a326]58
59typedef struct _aubio_mfft_t aubio_mfft_t;
60aubio_mfft_t * new_aubio_mfft(uint_t winsize, uint_t channels);
61void aubio_mfft_do (aubio_mfft_t * fft,fvec_t * in,cvec_t * fftgrain);
62void aubio_mfft_rdo(aubio_mfft_t * fft,cvec_t * fftgrain, fvec_t * out);
63void del_aubio_mfft(aubio_mfft_t * fft);
64
65
[96fb8ad]66#ifdef __cplusplus
67}
68#endif
69
70#endif
Note: See TracBrowser for help on using the repository browser.