2011-05-13 7 views
1

이것은 Mac OS X에서 AudioStreamBasicDescription의 샘플 속도를 덮어 쓰고 새로운 출력 대기열을 생성하는 것으로 가능합니다.오디오 큐의 재생 피치를 변경하는 것이 가능합니다.

기본 샘플 속도를 검색하고 새 샘플을 쓸 수 있었지만 (즉, 44100을 48000으로 바꾸기) 출력 신호의 피치가 변경되지 않았습니다.

err = AudioFileGetProperty(mAudioFile, kAudioFilePropertyDataFormat, &size, &mDataFormat); 
     if (err != noErr) 
      NSLog(@"Couldn't determine the audio file format"); 
     Float64 mySampleRate = mDataFormat.mSampleRate; //the initial rate 
     if (inRate != 1) { 
//write a new value 
      mDataFormat.mSampleRate = inRate; 
      //then 
err = AudioQueueNewOutput etc. 

모든 의견을 크게 기뻐할 것입니다.

답변

0

샘플 속도를 변경해도 오디오 피치가 변경되지 않습니다. 더 빠르게 재생되는 항목이 더 높은 음높이를가집니다. 그러나 그것은 현실보다는 인식입니다.

피치를 변경하려면 DSP (Digital Signal Processing) 라이브러리를 통해 오디오 데이터를 처리해야합니다. 또는,의 AudioUnit를 통해 실행에서 살펴 :

Audio Unit Programming Guide

+0

샘플링 속도를 변경 * * 오디오의 피치를 변경 않습니다. 피치와 템포를 함께 변경합니다. 그것은 단지 지각이 아닙니다. 그러나 템포를 변경하지 않고 피치 만 변경하는 것은 물론 정확합니다. –