音乐多个同时音调,蟒蛇



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

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)

但这只会让人胡扯。 如何以数学方式编码多个同时音调?

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

相关内容

  • 没有找到相关文章

最新更新