【音楽】和音の波形を見る

平均律では各音の間隔が一定で、\(440Hz\)から1オクターブ分の各音の周波数は

\begin{align}
f=440 \times 2^{i/12}(i =0 \sim11)
\end{align}

で与えられる。また正弦波は

\begin{align}
f=\sin \omega t
\end{align}

であるので、この式を使い和音の波形を合成する。

ドミソの波形は

これを合成すると

以下ソースコード

import numpy as np
from matplotlib import pyplot as plt

N=100
f0 = 27.5
t = 2/f0


A = 2**(0/12)
Asharp = 2**(1/12)
B = 2**(2/12)
C = 2**(3/12)
Csharp = 2**(4/12)
D = 2**(5/12)
Dsharp = 2**(6/12)
E = 2**(7/12)
F = 2**(8/12)
Fsharp = 2**(9/12)
G = 2**(10/12)
Gsharp = 2**(11/12)

print(f0*A)
print(f0*G)

omega_t_A = 2 * np.pi * f0 * A * np.linspace(0, t,N)
omega_t_C = 2 * np.pi * f0 * C * np.linspace(0, t,N)
omega_t_E = 2 * np.pi * f0 * E * np.linspace(0, t,N)

fa = np.sin(omega_t_A)
fc = np.sin(omega_t_C)
fe = np.sin(omega_t_E)

f = fa+fc+fe

plt.figure()
plt.plot(f)
plt.grid(True)

plt.figure()
plt.plot(fa)
plt.plot(fc)
plt.plot(fe)
plt.grid(True)
plt.show()

コメント

タイトルとURLをコピーしました