iphone - Octave 音阶中特定音符的 OpenAl 音高值

标签 iphone audio openal pitch

我的 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/

相关文章:

ios - 使用 OpenAL 播放 MPMediaItem

iOS 启动屏幕图像并不总是显示

iphone - InAppSettingsKit的替代

java - 如何在 Java 中将 Mp3 转换为 Amr 音频格式

c - 如何在c中加载ogg文件?

c++ - C++录音

iphone - 释放 UIViewControllers 和 LLVM 静态分析

iphone - 在 mapview 上点击注释时将数据传递给 detailView

c++ - 在C++中以特定时间间隔播放音频文件

c - 如何像 SDL_Mixer 那样播放多种声音,但在 SDL2 中是原生的?