用于八度音程中特定音符的OpenAl音高值

Jon*_*an 6 iphone audio openal pitch

我的iPhone应用程序上有一个OpenAl声音引擎.当我播放我加载的声音时,我可以控制它的音高.

在OpenAl中,设置为1.0的音高无效.如果你把它加倍到2.0,它会弹奏1个八度的音符(12个半音).如果你把它减半,到0.5,它将是一个八度音程(12个半音).

所以,我原来的样品被打C.我认为,如果我把1×12(个半音)我可以得到在八度音程的各个音符的音高.但事实似乎并非如此.这让我们认为半音不是平等的价值观.真的吗?

有谁知道如何计算八度音中单个音符的openAl音高值?

谢谢

And*_*gor 12

半音是相等的比率.因此,如果您的样本是C,C#将是两个的第12个根.如果计算半音C = 0,C#= 1等,则比率为pow(2.0, n*1.0/12.0)

也适用于负数.

我应该注意,这在每个调整方案中并不严格......但这是一个好的开始.如果你真的关心音乐调音的全部复杂性,我可以找到一些参考.