是否可以改变音频队列的播放音高

时间:2011-05-13 18:36:17

标签: macos pitch audioqueue sample-rate

这应该可以在Mac OS X上通过覆盖AudioStreamBasicDescription中的采样率然后创建一个新的输出队列来实现。

我已经能够检索默认采样率并写入一个新采样率(即用44000替换44100),但这不会导致输出信号的任何音高变化。

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.

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

更改采样率不会改变音频的音高。你可能会觉得回放得更快的东西有更高的音高。然而,这是感知而不是现实。

要更改音高,您需要通过数字信号处理(DSP)库处理音频数据。或者,看看通过AudioUnit运行它:

Audio Unit Programming Guide

相关问题