Есть ли способ использования Core Audio в OS X для извлечения набора кадров в AIFF-файле в массив 32-битных поплавков, подходящих для выполнения FFT?Использование Core Audio для извлечения поплавков из AIFF
0
A
ответ
3
Да. Самый простой способ сделать это - использовать API ExtAudioFile. В примере примера Apple ConvertFile есть отличный пример. Посмотрите UseExtAF.cpp.
Для частоты дискретизации 44,1 кГц, AudioStreamBasicDescription для 32-битной точки LPCM плавающей будет выглядеть следующим образом:
AudioStreamBasicDescription fmt;
fmt.mSampleRate = 44100;
fmt.mFormatID = kAudioFormatLinearPCM;
fmt.mFormatFlags = kLinearPCMFormatFlagIsFloat;
fmt.mBitsPerChannel = sizeof(Float32) * 8;
fmt.mChannelsPerFrame = 1; // set this to 2 for stereo
fmt.mBytesPerFrame = fmt.mChannelsPerFrame * sizeof(Float32);
fmt.mFramesPerPacket = 1;
fmt.mBytesPerPacket = fmt.mFramesPerPacket * fmt.mBytesPerFrame;