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

もちろん、実際の音楽では、通常、同じタイム ステップで複数のトーンが再生されます。2 つのトーンを生成してから合計することで、これを実行しようとしました。つまり、次のようになります。

ツートーン = ノート(440, 2)+ノート(261.63, 2)

しかし、これはがらくたを与えるだけです。複数の同時トーンを数学的にエンコードするにはどうすればよいですか?

4

1 に答える 1

3

2 つのトーンを使用する場合は、個々の振幅を半分にする必要があります。そうしないと、合計の振幅が 2 倍になる可能性があります。2 つ以上を使用する場合は、全体の振幅が 1 になるように、それぞれの相対的な音量を反映する比率で混合する必要があります。

于 2012-12-02T12:46:06.937 に答える