> either you want to use some new-fangled language and don't know how to do 
> heap allocation or do you don't understand how to
> get the number of samples in the file?

That's correct..  I am not sure about a lot of how to properly get information 
like that via coreaudio's api...

This would be my code to read samples to memory:

    AudioFileID file;
    CheckError(AudioFileOpenURL((__bridge CFURLRef)self.url,
                                kAudioFileReadPermission,
                                0,
                                &file),
                                "AudioFileOpenURL failed");

    AudioStreamBasicDescription dataFormat;
    UInt32 propSize = sizeof(dataFormat);
    CheckError(AudioFileGetProperty(file,
                                    kAudioFilePropertyDataFormat,
                                    &propSize,
                                    &dataFormat),
                                    "couldn't get file's data format");


    UInt32 numBytes;
    UInt32 numPackets;
    float durationInSeconds = ???; // how do you determine the length of an 
audio file?

    NSUInteger samples = ceil(dataFormat.mSampleRate * durationInSeconds);
    float *buffer = (float *) malloc (sizeof (float) * samples);
    CheckError(AudioFileReadPacketData(file,
                                       false,
                                       &numBytes,
                                       NULL,
                                       0,
                                       &numPackets,
                                       buffer),
                                       "AudioFileReadData failed");

So how can I determine the durationInSeconds?

Patrick J. Collins
http://collinatorstudios.com
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to