Changeset 7011e8a
- Timestamp:
- May 17, 2006, 9:47:36 PM (19 years ago)
- Branches:
- feature/autosink, feature/cnn, feature/cnn_org, feature/constantq, feature/crepe, feature/crepe_org, feature/pitchshift, feature/pydocstrings, feature/timestretch, fix/ffmpeg5, master, pitchshift, sampler, timestretch, yinfft+
- Children:
- 0dc5fe3
- Parents:
- ca29f57
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/phasevoc.h
rca29f57 r7011e8a 18 18 */ 19 19 20 /** @file 21 * Phase vocoder object 22 */ 20 /** \file 21 22 Phase vocoder object 23 24 This object implements a phase vocoder. The spectral frames are computed 25 using a HanningZ window and a swapped version of the signal to simplify the 26 phase relationships across frames. The window sizes and overlap are specified 27 at creation time. Multiple channels are fully supported. 28 29 */ 23 30 24 31 #ifndef _PHASEVOC_H … … 32 39 typedef struct _aubio_pvoc_t aubio_pvoc_t; 33 40 34 /** create phase vocoder object */ 41 /** create phase vocoder object 42 43 \param win_s size of analysis buffer (and length the FFT transform) 44 \param hop_s step size between two consecutive analysis 45 \param channels number of channels 46 47 */ 35 48 aubio_pvoc_t * new_aubio_pvoc (uint_t win_s, uint_t hop_s, uint_t channels); 36 /** delete phase vocoder object */ 49 /** delete phase vocoder object 50 51 \param pv phase vocoder object as returned by new_aubio_pvoc 52 53 */ 37 54 void del_aubio_pvoc(aubio_pvoc_t *pv); 38 55 39 /** 40 * fill pvoc with inp[c][hop_s] 41 * slide current buffer 42 * calculate norm and phas of current grain 43 */ 56 /** compute spectral frame 57 58 This function accepts an input vector of size [channels]x[hop_s]. The 59 analysis buffer is rotated and filled with the new data. After windowing of 60 this signal window, the Fourier transform is computed and returned in 61 fftgrain as two vectors, magnitude and phase. 62 63 \param pv phase vocoder object as returned by new_aubio_pvoc 64 \param in new input signal (hop_s long) 65 \param fftgrain output spectral frame 66 67 */ 44 68 void aubio_pvoc_do(aubio_pvoc_t *pv, fvec_t *in, cvec_t * fftgrain); 45 /** 46 * do additive resynthesis to 47 * from current norm and phase 48 * to out[c][hop_s] 49 */ 69 /** compute signal from spectral frame 70 71 This function takes an input spectral frame fftgrain of size 72 [channels]x[buf_s] and computes its inverse Fourier transform. Overlap-add 73 synthesis is then computed using the previously synthetised frames, and the 74 output stored in out. 75 76 \param pv phase vocoder object as returned by new_aubio_pvoc 77 \param fftgrain input spectral frame 78 \param out output signal (hop_s long) 79 80 */ 50 81 void aubio_pvoc_rdo(aubio_pvoc_t *pv, cvec_t * fftgrain, fvec_t *out); 51 82 52 /** get window size */ 83 /** get window size 84 85 \param pv phase vocoder to get the window size from 86 87 */ 53 88 uint_t aubio_pvoc_get_win(aubio_pvoc_t* pv); 54 /** get hop size */ 89 /** get hop size 90 91 \param pv phase vocoder to get the hop size from 92 93 */ 55 94 uint_t aubio_pvoc_get_hop(aubio_pvoc_t* pv); 56 /** get channel number */ 95 /** get channel number 96 97 \param pv phase vocoder to get the number of channels from 98 99 */ 57 100 uint_t aubio_pvoc_get_channels(aubio_pvoc_t* pv); 58 101
Note: See TracChangeset
for help on using the changeset viewer.