Использование Core Audio для извлечения плавающих значений из AIFF

StackOverflow https://stackoverflow.com/questions/1965148

  •  21-09-2019
  •  | 
  •  

Вопрос

Есть ли способ, используя Core Audio в OS X, извлечь набор кадров из файла AIFF в массив 32-разрядных чисел с плавающей точкой, подходящих для выполнения FFT?

Это было полезно?

Решение

ДА.Самый простой способ сделать это - использовать ExtAudioFile API.В Apple есть отличный пример Конвертируемый файл пример кода.Взгляните на UseExtAF.cpp .

Для частоты дискретизации 44,1 кГц базовое описание audiostreambasic для 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;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top