> You should allocate ioData.mBuffers[0].mDataByteSize bytes.
Ah ok... Now that makes sense.
So, now when I play the samples, it sounds like harsh white noise... So
something still is wrong.
The description for the samples is:
asbd.mSampleRate = 48000;
asbd.mFormatID = kAudioFormatLinearPCM;
asbd.mFormatFlags = kAudioFormatFlagIsSignedInteger;
asbd.mFramesPerPacket = 1;
asbd.mChannelsPerFrame = 1;
asbd.mBitsPerChannel = 16;
asbd.mBytesPerPacket = 2;
asbd.mBytesPerFrame = 2;
Which should be right for a 48khz 16-bit AIF, right?
I can output other 16-bit signed integer samples, and they sound correct... So
what else could be causing this?
This is the code so far:
ExtAudioFileRef inputFile;
CheckResult(ExtAudioFileOpenURL((__bridge CFURLRef)self.url,
&inputFile),
"ExtAudioFileOpenURL failed");
AudioStreamBasicDescription asbd;
UInt32 propSize = sizeof(asbd);
CheckResult(ExtAudioFileGetProperty(inputFile,
kExtAudioFileProperty_FileDataFormat, &propSize, &asbd), "get description
failed");
UInt32 numberOfFrames = 0;
propSize = sizeof(SInt64);
CheckResult(ExtAudioFileGetProperty(inputFile,
kExtAudioFileProperty_FileLengthFrames, &propSize, &numberOfFrames),
"GetProperty failed");
AudioBufferList ioData = {0};
ioData.mNumberBuffers = 1;
ioData.mBuffers[0].mNumberChannels = 1;
ioData.mBuffers[0].mDataByteSize = asbd.mBytesPerPacket * numberOfFrames;
ioData.mBuffers[0].mData = malloc(ioData.mBuffers[0].mDataByteSize);
ExtAudioFileRead(inputFile, &numberOfFrames, &ioData);
NSMutableArray *arr = [NSMutableArray arrayWithCapacity:numberOfFrames];
for (int i = 0; i < numberOfFrames; i++) {
SInt16 val = ((SInt16 *)ioData.mBuffers[0].mData)[i];
[arr addObject:[NSNumber numberWithInt:val]];
}
[self.sampler stream:[arr copy] sampleRate:48000]; // this works with other
NSArrays of 16-bit signed samples...
free(ioData.mBuffers[0].mData);
ExtAudioFileDispose(inputFile);
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]