Himadeus's diary

古典電子、多面体の研究

A Hard day's night, The Beatlesのイントロを、Pythonでフーリエ解析する

The Beatles, A Hard day's nightのイントロを解析する。

元曲のイントロはこちら

 

どのコードを使っているか、議論になっているイントロの音です。

これを、Python3 の scipyモジュールで解析する。X軸が周波数、Y軸が出力

f:id:Himadeus:20211003083946p:plain

Intro Frequency

150Hz付近を拡大するように、プログラムを変更してみる。y=0の線があるのは、ステレオの片側が常に0のため。

f:id:Himadeus:20211003084017p:plain

Intro frequency detail

出力の高い周波数(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()