title: Pitch shift of an audio file in iOS8
body: <p>I am trying to shift the pitch of an audio file multiple time to indicate changes in the state to the user. I wasn't sure how to do this in objective-c </p>
  
  <p>I found <a href="https://stackoverflow.com/questions/25704923/using-apples-new-audioengine-to-change-pitch-of-audioplayer-sound">this article</a> about a question that discusses it, but it was for swift. Also, I wasn't sure how to load audio files with this library. </p>
  
  <p>I tried this code, but every time I run it, I got an error because of the lines 3-4. The other thing, as I'm newbie to this, I wasn't sure how to load the mp3 file with this library. Can anyone help please?</p>
  
  <pre><code>//This is the file I need to shift its pitch
  NSString *path = [NSString stringWithFormat:@"%@/Beep5.mp3", [[NSBundle mainBundle] resourcePath]];
  NSURL *soundUrl = [NSURL fileURLWithPath:path];
  AVAudioFile *file=[[AVAudioFile alloc] initForReading:soundUrl error:nil];
  AVAudioFormat *format=file.processingFormat;
  AVAudioFrameCount capacity= (AVAudioFrameCount)file.length;
  AVAudioPCMBuffer *buffer=[[AVAudioPCMBuffer alloc] initWithPCMFormat:format frameCapacity:capacity];
  [file readIntoBuffer:buffer error:nil];
  [playerNode scheduleBuffer:buffer completionHandler:nil];
  
  
  AVAudioEngine *engine;
  AVAudioPlayerNode *playerNode;
  
  //get the error in one of the following two LOC
  engine = [[AVAudioPlayerNode alloc] init];
  [engine attachNode: playerNode];
  
  AVAudioMixerNode *mixer = engine.mainMixerNode;
  AVAudioUnitTimePitch *auTimePitch;
  auTimePitch.pitch=1200.0;// In cents. The default value is 1.0. The range of values is -2400 to 2400
  auTimePitch.rate = 2.0; //The default value is 1.0. The range of supported values is 1/32 to 32.0.
  [engine attachNode: auTimePitch];
  [engine connect:playerNode to:auTimePitch format:[mixer outputFormatForBus:0]];
  [engine connect:playerNode to:mixer format:[mixer outputFormatForBus:0]];
      playerNode.play;
  </code></pre>