Pergunta

Existe uma maneira de usar o Core Audio no OS X para extrair um conjunto de quadros em um arquivo AIFF em uma matriz de carros alegóricos de 32 bits adequados para executar uma FFT?

Foi útil?

Solução

Sim. A maneira mais fácil de fazer isso é usar a API Extudiofile. Há um ótimo exemplo na Apple's Convertfile Código de amostra. Dê uma olhada no useextaf.cpp.

Para uma taxa de amostragem de 44,1 kHz, o AudiosTreambasicDescription para LPCM de ponto flutuante de 32 bits ficaria assim:

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;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top