bool ofxAudioUnitFftNode::getPhase(std::vector<float> &outPhase)
{
	getSamplesFromChannel(_sampleBuffer, 0);
	
	if(_sampleBuffer.size() < _N) {
		outPhase.clear();
		return false;
	}
	
	PerformFFT(&_sampleBuffer[0], _window, _fftData, _fftSetup, _N);
	
	vDSP_zvphas(&_fftData, 1, &_sampleBuffer[0], 1, _N / 2);
	
	outPhase.assign(_sampleBuffer.begin(), _sampleBuffer.begin() + (_N / 2));
	return true;
}
Example #2
0
void FFT::getPhase (float* phaseBuffer)
{
    vDSP_zvphas (&bufferSplit, 1, phaseBuffer, 1, properties.fftSizeHalved);
    phaseBuffer[0] = 0.0f;
}