音乐多个同时音调,python

时间:2012-12-02 12:41:25

标签: python math frequency sound-synthesis

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

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

当然,在真实音乐中,通常在同一时间步骤中播放多个音调。我尝试通过生成两个音调来实现这一点,即:

  

twotone = note(440,2)+ note(261.63,2)

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

1 个答案:

答案 0 :(得分:3)

当使用两个音调时,你应该将个别振幅减半,否则总振幅可能翻倍。如果使用两个以上,则应以反映其相对体积的比例混合,总幅度为1。