我的 iPhone 应用程序上有一个 OpenAl 声音引擎。当我播放已加载的声音时,我可以控制它的音调。
在 OpenAl 中,音高设置为 1.0 没有任何效果。如果将其加倍到 2.0,它将演奏高 1 个 Octave 的音符(12 个半音)。如果将其减半至 0.5,则会降低一个 Octave (12 个半音)。
所以,我的原始样本正在演奏 C。我假设如果我将 1 除以 12(半音),我可以获得该 Octave 音阶中各个音符的音高。但事实似乎并非如此。这使我们认为半音不是相等的值。这是真的吗?
有谁知道如何计算 Octave 音阶中各个音符的 openAl 音高值?
谢谢
最佳答案
半音是等比。因此,如果您的示例是 C,则 C# 将是 2 的 12 次方根。如果计算半音 C=0、C#=1 等,则比率为 pow(2.0, n*1.0/12.0)
也适用于负数。
我应该注意,并非每个调整方案都严格如此......但这是一个好的开始。如果您真的关心音乐调音的全部复杂性,我可以为您找到一些引用资料。
关于iphone - Octave 音阶中特定音符的 OpenAl 音高值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2226463/