1

我正在编写一个小型合成器应用程序,我通过单击一个小节的长度来输入音符。现在,音阶是对数的,我的问题是,如何将鼠标的位置转换为相关的音高。目前我计算一个比率。它可以工作,有点,但我得到了广泛的紧密包装的低音,在远端,我只用几个像素转换成多个八度音阶。基本上我想要,如果我点击条的中心(1/2),频率加倍,1/4 是频率的另一个两倍。等等......我在这里很愚蠢!

4

1 回答 1

4

音符的频率确实是对数的。高一个八度时频率加倍,低一个八度时频率减半。标准 A 正好是 440Hz。

因此,您需要一个幂律来将位置转换为频率。类似 f*2.0^(x/w) 的东西,其中 w 是八度音阶的宽度,f 是比例因子,^ 是幂运算符。

于 2011-09-26T19:38:20.450 回答