Seems like the problem is in your streamer. If you will share your streamer code maybe we could identify the problem.
Regards, Yuri. On Mar 1, 2015, at 20:49, Patrick J. Collins <[email protected]> wrote: >> 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]
