我正在做一个有趣的项目,涉及解决数学问题和音乐。生成特定的音符(或音调)很容易:
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)
但这只是废话。我如何在数学上编码多个同时音调?