我有点不清楚你想要做什么,所以我解释了一些事情,并给你一些选项来进一步调查,这取决于你的目的是什么。
在计算机上合成音乐的实际方法是使用 MIDI(乐器数字接口)。因为音乐家很少直接考虑频率或波长(他们沿着音阶计算步数或半步数),所以 MIDI 用整数表示每个音高,表示半步数。默认情况下,MIDI 假设这些音高使用称为“12 音等律”(12TET)的标准进行调音,不幸的是,使用其他调音并不容易。
这是什么意思?为什么这是一个问题?(我不确定你已经知道多少,所以如果我重复你所知道的,我很抱歉)
从理论上讲,您所说的基于频率比的调谐是 100% 绝对正确的——这是一个称为 Just Tuning 的系统。大三度是 5/4 的比例,完美的五度是 3/2 的比例。然而,具有固定音高的乐器(键盘、按弦乐器等)在实践中很少采用这种方式进行调音。相反,他们妥协,将半音阶中的每个音符四舍五入到最接近的 12 个八度音阶。由于增加一个八度相当于将初始频率乘以 2,所以增加一个八度的 12 相当于将初始频率乘以 2^(1/12)。这就是钢琴上所有半音的调音方式。
因此,您实际上将拥有的不是纯比率:
- 罪(A pi t)
- sin(2^(4/12) A pi t)
- sin(2^(7/12) A pi t)
- sin(2^(12/12) 一个 pi t)
注意:比较 2^(4/12) ~ 1.26,与 5/4 = 1.25。还将 2^(7/12) ~ 1.498 与 3/2 = 1.5 进行比较。
这些正是任何 MIDI 合成器将播放的频率,给定编号为n、n +4、n +7 和n +12 的 MIDI 音符。所以,如果你只是想演奏一个和弦,而不关心频率比是纯的(只是),你可以只使用 MIDI。
但是,如果您正在寻找能够发挥实际公正比率的东西,那就有点棘手了。您可以从这里查看一些内容开始:https ://music.stackexchange.com/questions/351/software-that-allows-playing-in-different-temperments
如果您只是想看看它们听起来像什么,您可以观看这个 youtube 视频:
https ://www.youtube.com/watch?v=6NlI4No3s0M
如果您可以编写软件,您可能会尝试编写自己的软件,但如果没有帮助,我不想讨论如何做到这一点。
我不确定您所描述的“仅以 Hz 作为输入”的程序类型。这是一个软件库(如 API 调用?)还是不同的东西?有(显然)API 调用可以向声卡发送比单频波更复杂的数据。
编辑:我没有使用它,但看起来这个软件可能可以做你想做的事:https ://www.youtube.com/watch?v=z0NZQMiDdNU