A Hard day's night, The Beatlesのイントロを、Pythonでフーリエ解析する
The Beatles, A Hard day's nightのイントロを解析する。
元曲のイントロはこちら
どのコードを使っているか、議論になっているイントロの音です。
これを、Python3 の scipyモジュールで解析する。X軸が周波数、Y軸が出力
150Hz付近を拡大するように、プログラムを変更してみる。y=0の線があるのは、ステレオの片側が常に0のため。
出力の高い周波数(x座標)をピックアップしてみる。
- 150 Hz D2(147 Hz) or D#2(156 Hz)
- 2380 Hz D6(2349 Hz)
- 1320 Hz E5(1318 Hz)
- 264 Hz C3(261 Hz)
- 3153 Hz G6(3136 Hz)
Baseが鳴らしている低いD2の音が、ずれてD#2との間になっている。これが不協和音の原因なのではないかと考えています。D6の音も高い方にズレています。
プログラムはこちら、
import sys
import scipy.io.wavfile
import numpy as np
import matplotlib.pyplot as plt
rate, data = scipy.io.wavfile.read('a.wav')
data = data / 32768
fft_data = np.abs(np.fft.fft(data))
freqList = np.fft.fftfreq(data.shape[0], d=1.0/rate)
plt.plot(freqList, fft_data)
plt.xlim(0, 3500)
#plt.xlim(140, 160)
plt.show()