38 for (
int i = 0; i <
m_n/2 + 1; ++i) {
59 for (
int i = 0; i < hs; ++i) {
67 double *mag,
double *theta,
70 for (
int i = 0; i <
m_n; ++i) {
82 double *mag,
double *theta,
85 for (
int i = 0; i <
m_n/2 + 1; ++i) {
96 for (
int i = 0; i <
m_n/2 + 1; ++i) {
101 double omega = (2 * M_PI *
m_hop * i) /
m_n;
109 for (
int i = 0; i <
m_n/2 + 1; i++) {
116 for (
int i = 0; i <
m_n/2 + 1; i++) {
123 for (
int i = 0; i <
m_n/2 + 1; ++i) {
125 double omega = (2 * M_PI *
m_hop * i) /
m_n;
126 double expected =
m_phase[i] + omega;
void forward(const double *realIn, double *realOut, double *imagOut)
Carry out a forward real-to-complex transform of size nsamples, where nsamples is the value provided ...
static double princarg(double ang)
The principle argument function.
void getPhases(double *theta)
void getMagnitudes(double *mag)
void processFrequencyDomain(const double *reals, const double *imags, double *mag, double *phase, double *unwrapped)
Given one frame of frequency-domain samples, return the magnitudes, instantaneous phases,...
PhaseVocoder(int size, int hop)
void reset()
Reset the stored phases to zero.
void unwrapPhases(double *theta, double *unwrapped)
void FFTShift(double *src)
void processTimeDomain(const double *src, double *mag, double *phase, double *unwrapped)
Given one frame of time-domain samples, FFT and return the magnitudes, instantaneous phases,...