1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

A Hard Day's Night のフーリエ解析(イントロ、左チャンネル)

Posted at

The Beatles, A Hard Days's Nightのイントロをフーリエ解析する。

今回は、アルバム版A Hard Days's Nightの、イントロの左チャンネルのみを解析する。
この左チャンネルには、PaulのベースとGeorgeの12弦ギターが入っています。

ここの記事の、「周波数成分を表示」を参考にさせていただきました。
https://jorublog.site/python-voice-analysis/
モノラルWAVファイルのフーリエ解析がそのままできました。

フーリエ解析した結果の、matplotlibグラフはこちらです。
Screen Shot 2021-10-24 at 11.26.18 AM.png
縦軸が音量、横軸が周波数の対数表示。
主な音符には緑の線を入れています。Dの音には赤の線を入れています。

ベースの音はD3で、特に大きい音量になっています。
問題は、このD2の音が1/3くらいD#3に寄っていること。このズレは、チューニングミスをとは言い難く、意図的にズラしたのではないかと推測します。
もしくは、ジョージ・マーティンが編集中にテープの再生速度をずらした可能性もあります。
このズレが独特な不協和音を生み出しているのではないでしょうか。

この音の倍音であるD4もズレています。3倍音のA4、4倍音のD5、5倍音の734Hzも小さな音量で入っています。
オクターブ低いD2は出力レベルが低くなっていますが、同様のズレはあります。
D7の音は不明です。
A2とF3の音もベースが出しているはずですが、チューニングのズレは観測されていません。

出版されている楽譜の音は、A2 D3 F3 G3 A3 C4 D4 G4 C5 D5 G5 E6 となっています。
D3ズレ問題の除けば、今回のフーリエ解析の結果と、ほぼ一致しています。
次回は、右チャンネルの解析をします。

wav_fft.py
import sys
import scipy.io.wavfile
import numpy as np
import matplotlib.pyplot as plt

#音声ファイル読み込み
#args = sys.argv
wav_filename = '../Documents/hdn_left.wav'
rate, data = scipy.io.wavfile.read(wav_filename)

#(振幅)の配列を作成
data = data / 32768

##### 周波数成分を表示する #####
#縦軸:dataを高速フーリエ変換する(時間領域から周波数領域に変換する)
fft_data = np.abs(np.fft.fft(data))
#横軸:周波数の取得  #np.fft.fftfreq(データ点数, サンプリング周期)
freqList = np.fft.fftfreq(data.shape[0], d=1.0/rate)
#データプロット

plt.xscale("log")
plt.plot(freqList, fft_data)
plt.xlim(50, 3200) #0~8000Hzまで表示

def put_f_red(f, name):
  x1, y1 = [f, f], [100, 600]
  plt.plot(x1, y1, 'r-')
  plt.text(f-5, 620, name, size=10, color='red')

def put_f(f, name):
  x1, y1 = [f, f], [200, 500]
  plt.plot(x1, y1, 'g-')
  plt.text(f-5, 520, name, size=10, color='green')

#観測された音符のライン表示
put_f_red(73, 'D2')
put_f_red(78, 'D2#')
put_f_red(147, 'D3')
put_f_red(156, 'D#3')
put_f_red(294, 'D4')
put_f_red(311, 'D#4')
put_f_red(587, 'D5')
put_f_red(1175, 'D6')
put_f_red(2349, 'D7')
put_f_red(2489, 'D#7')
put_f_red(440, 'A4')
put_f_red(734, '734Hz')
put_f(110, 'A2')
put_f(175, 'F3')
put_f(261, 'C4(mid)')
put_f(1318, 'E6')
put_f(3136, 'G7')
put_f(2794, 'F7')
put_f(349, 'F4')
put_f(392, 'G4')
put_f(523, 'C5')
put_f(2637, 'E7')
put_f(1046, 'C6')

plt.show()
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?