2

我正在做一个有趣的项目,涉及解决数学问题和音乐。生成特定的音符(或音调)很容易:

ton = amplitude * sin(2pi * frequency * time / samplerate)

我在 python 中工作,并且有代码可以从http://code.google.com/p/scitools/做很多事情。

def note(frequency, length, amplitude=1, sample_rate=44100):
    time_points = numpy.linspace(0, length, length * sample_rate)
    return numpy.sin(2 * numpy.pi * frequency * time_points) * amplitude

当然,在真实的音乐中,通常会在同一时间步播放多个音调。我试图通过生成然后将两个音调相加来做到这一点,即:

双音=音符(440, 2)+音符(261.63, 2)

但这只是废话。我如何在数学上编码多个同时音调?

4

1 回答 1

3

使用两个音调时,您应该将单个振幅减半,否则总振幅可能会加倍。如果你使用两个以上,你应该混合一个反映它们相对音量的比率,总振幅为 1。

于 2012-12-02T12:46:06.937 回答