Frage

Gibt es eine Möglichkeit Core Audio auf OS X mit einem Satz von Frames in einer AIFF-Datei in ein Array von 32-Bit zu extrahieren Schwimmer geeignet zur Durchführung einer FFT an?

War es hilfreich?

Lösung

Ja. Der einfachste Weg, es zu tun ist, um die ExtAudioFile API zu verwenden. Es ist ein großartiges Beispiel in Apples ConvertFile Beispielcode. Werfen Sie einen Blick auf UseExtAF.cpp.

Für eine Abtastrate von 44,1 kHz, die AudioStreamBasicDescription für 32-Bit-Gleitkomma-LPCM würde wie folgt aussehen:

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;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top