• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
How to set Sample Rate Conversion quality
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

How to set Sample Rate Conversion quality


  • Subject: How to set Sample Rate Conversion quality
  • From: tahome izwah <email@hidden>
  • Date: Mon, 24 May 2010 10:59:40 +0200

Hi all,

I am using ExtAudioFile to read an AIFF file and convert it to the
sample rate of my project. This works great, but the sample rate
conversion quality is really bad. Is there a way to tell the
conversion to use the highest possible SRC quality? If so, how? Via
kExtAudioFileProperty_ConverterConfig perhaps? Is there any sample
code for this?

Thanks!
--th

Btw. This is how I set this up (sampleRate is my project sample rate)

--------------------------------------------------------------------------------------
		err = AudioFileOpen(&theRef, fsRdPerm, 0, &mAfid);
		if (err) {DEBUGLOG(@"!!! Error in AudioFileOpen, %d", err); return err;}

		err = ExtAudioFileWrapAudioFileID(mAfid, false, &extAFRef);
		if (err) {DEBUGLOG(@"!!! Error in ExtAudioFileWrapAudioFileID, %d",
err); return err;}


		AudioStreamBasicDescription fileFormat;
		propSize = sizeof(fileFormat);
		memset(&fileFormat, 0, sizeof(AudioStreamBasicDescription));

		err = ExtAudioFileGetProperty(extAFRef,
kExtAudioFileProperty_FileDataFormat, &propSize, &fileFormat);
		if (err) {DEBUGLOG(@"!!! Error in ExtAudioFileGetProperty, %d",
err); return err;}

		extAFRateRatio		= sampleRate / fileFormat.mSampleRate;
		extAFSampleRate		= fileFormat.mSampleRate;
		extAFFormatID		= fileFormat.mFormatID;
		extAFWordlength		= fileFormat.mBitsPerChannel;
		DEBUGLOG(@"Converting sample rate from %f to %f",
fileFormat.mSampleRate, sampleRate);

		AudioStreamBasicDescription clientFormat;
		propSize = sizeof(clientFormat);
		memset(&clientFormat, 0, sizeof(AudioStreamBasicDescription));
		clientFormat.mFormatID				= kAudioFormatLinearPCM;
		clientFormat.mSampleRate			= sampleRate;
		clientFormat.mFormatFlags        = kAudioFormatFlagIsFloat |
kAudioFormatFlagIsPacked | kAudioFormatFlagsNativeEndian;
		clientFormat.mChannelsPerFrame   = numChannels;
		clientFormat.mBitsPerChannel     = sizeof(float) * 8;
		clientFormat.mFramesPerPacket    = 1;
		clientFormat.mBytesPerFrame      = clientFormat.mBitsPerChannel *
clientFormat.mChannelsPerFrame / 8;
		clientFormat.mBytesPerPacket     = clientFormat.mFramesPerPacket *
clientFormat.mBytesPerFrame;
		clientFormat.mReserved           = 0;

		err = ExtAudioFileSetProperty(extAFRef,
kExtAudioFileProperty_ClientDataFormat, propSize, &clientFormat);
		if (err) {DEBUGLOG(@"!!! Error in ExtAudioFileSetProperty, %d",
err); return err;}

--------------------------------------------------------------------------------------
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: How to set Sample Rate Conversion quality
      • From: tahome izwah <email@hidden>
  • Prev by Date: Re: Garbage collector in an audio unit
  • Next by Date: Re: How to set Sample Rate Conversion quality
  • Previous by thread: Re: Garbage collector in an audio unit
  • Next by thread: Re: How to set Sample Rate Conversion quality
  • Index(es):
    • Date
    • Thread