In [1]:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.style as ms
ms.use('seaborn-muted')
%matplotlib inline

import librosa
import librosa.display

import IPython.display

In [2]:
file_path_blues = "../data/songData/genres/blues/blues.00000.wav"
y_blues, sr_blues = librosa.load(file_path_blues)

file_path_classical = "../data/songData/genres/classical/classical.00000.wav"
y_classical, sr_classical = librosa.load(file_path_classical)

file_path_disco = "../data/songData/genres/disco/disco.00001.wav"
y_disco, sr_disco = librosa.load(file_path_disco)

file_path_jazz = "../data/songData/genres/jazz/jazz.00010.wav"
y_jazz, sr_jazz = librosa.load(file_path_jazz)

In [3]:
plt.figure(figsize=(12, 12))

plt.subplot(4, 1, 1)
librosa.display.waveplot(y_blues, sr=sr_blues)
plt.title('blues')

plt.subplot(4, 1, 2)
librosa.display.waveplot(y_classical, sr=sr_classical)
plt.title('classical')

plt.subplot(4, 1, 3)
librosa.display.waveplot(y_disco, sr=sr_disco)
plt.title('disco')

plt.subplot(4, 1, 4)
librosa.display.waveplot(y_jazz, sr=sr_jazz)
plt.title('jazz')

plt.tight_layout()



In [4]:
mfcc = librosa.feature.mfcc(y=y_blues, sr=sr_blues,n_mfcc=30)

In [5]:
print(mfcc.shape[1])
print(mfcc.T.shape)


1293
(1293, 30)

In [6]:
IPython.display.Audio(data=y_blues, rate=sr_blues)


Out[6]:

In [7]:
IPython.display.Audio(data=y_classical, rate=sr_classical)


Out[7]:

In [8]:
IPython.display.Audio(data=y_disco, rate=sr_disco)


Out[8]:

In [9]:
IPython.display.Audio(data=y_jazz, rate=sr_jazz)


Out[9]:

In [10]:
def createMelspectrogram(y, sr):
    S = librosa.feature.melspectrogram(y, sr=sr, n_mels=128)
    log_S = librosa.logamplitude(S, ref_power=np.max)
    return log_S;

In [11]:
S_blues = createMelspectrogram(y_blues, sr_blues)
S_classical = createMelspectrogram(y_classical, sr_classical)
S_disco = createMelspectrogram(y_disco, sr_disco)
S_jazz = createMelspectrogram(y_jazz, sr_jazz)

In [12]:
plt.figure(figsize=(12, 12))

plt.subplot(4, 1, 1)
librosa.display.specshow(S_blues, sr=sr_blues, x_axis='time', y_axis='mel')
plt.title('blues mel power spectrogram')
plt.colorbar(format='%02.0f dB')

plt.subplot(4, 1, 2)
librosa.display.specshow(S_classical, sr=sr_blues, x_axis='time', y_axis='mel')
plt.title('classical mel power spectrogram')
plt.colorbar(format='%02.0f dB')

plt.subplot(4, 1, 3)
librosa.display.specshow(S_disco, sr=sr_blues, x_axis='time', y_axis='mel')
plt.title('disco mel power spectrogram')
plt.colorbar(format='%02.0f dB')

plt.subplot(4, 1, 4)
librosa.display.specshow(S_jazz, sr=sr_blues, x_axis='time', y_axis='mel')
plt.title('jazz mel power spectrogram')
plt.colorbar(format='%02.0f dB')

plt.tight_layout()



In [13]:
C_blues = librosa.cqt(y_blues, sr=sr_blues)
C_classical = librosa.cqt(y_classical, sr=sr_classical)
C_disco = librosa.cqt(y_disco, sr=sr_disco)
C_jazz = librosa.cqt(y_jazz, sr=sr_jazz)

In [14]:
plt.figure(figsize=(12, 12))

plt.subplot(4, 1, 1)
librosa.display.specshow(librosa.amplitude_to_db(C_blues, ref=np.max), sr=sr_blues, x_axis='time', y_axis='cqt_note')
plt.title('blues Constant-Q power spectrum')
plt.colorbar(format='%02.0f dB')


plt.subplot(4, 1, 2)
librosa.display.specshow(librosa.amplitude_to_db(C_classical, ref=np.max), sr=sr_classical, x_axis='time', y_axis='cqt_note')
plt.title('classical Constant-Q power spectrum')
plt.colorbar(format='%02.0f dB')


plt.subplot(4, 1, 3)
librosa.display.specshow(librosa.amplitude_to_db(C_disco, ref=np.max), sr=sr_disco, x_axis='time', y_axis='cqt_note')
plt.title(' disco Constant-Q power spectrum')
plt.colorbar(format='%02.0f dB')


plt.subplot(4, 1, 4)
librosa.display.specshow(librosa.amplitude_to_db(C_jazz, ref=np.max), sr=sr_jazz, x_axis='time', y_axis='cqt_note')
plt.title('jazz Constant-Q power spectrum')
plt.colorbar(format='%02.0f dB')

plt.tight_layout()



In [15]:
chroma_stft = librosa.feature.chroma_stft(y=y_blues, sr=sr_blues, n_chroma=12, n_fft=4096)
chroma_cqt = librosa.feature.chroma_cqt(y=y_blues, sr=sr_blues)
chroma_cens = librosa.feature.chroma_cens(y=y_blues, sr=sr_blues)

In [16]:
plt.figure(figsize=(12, 6))

plt.subplot(3, 1, 1)
librosa.display.specshow(chroma_stft, y_axis='chroma')
plt.title('chroma stft')
plt.colorbar()

plt.subplot(3, 1, 2)
librosa.display.specshow(chroma_cqt, y_axis='chroma', x_axis='time')
plt.title('chroma cqt')
plt.colorbar()

plt.subplot(3, 1, 3)
librosa.display.specshow(chroma_cens, y_axis='chroma', x_axis='time')
plt.title('chroma cens')
plt.colorbar()

plt.tight_layout()



In [17]:
cc_blues = librosa.feature.chroma_cens(y=y_blues, sr=sr_blues)
cc_classical = librosa.feature.chroma_cens(y=y_classical, sr=sr_classical)
cc_disco = librosa.feature.chroma_cens(y=y_disco, sr=sr_disco)
cc_jazz = librosa.feature.chroma_cens(y=y_jazz, sr=sr_jazz)

In [18]:
plt.figure(figsize=(12, 12))

plt.subplot(4, 1, 1)
librosa.display.specshow(cc_blues, y_axis='chroma', x_axis='time')
plt.title('chroma blues')
plt.colorbar()

plt.subplot(4, 1, 2)
librosa.display.specshow(cc_classical, y_axis='chroma', x_axis='time')
plt.title('chroma blues')
plt.colorbar()

plt.subplot(4, 1, 1)
librosa.display.specshow(cc_blues, y_axis='chroma', x_axis='time')
plt.title('chroma blues')
plt.colorbar()

plt.subplot(4, 1, 1)
librosa.display.specshow(cc_blues, y_axis='chroma', x_axis='time')
plt.title('chroma blues')
plt.colorbar()

plt.tight_layout()



In [19]:
y_harmonic, y_pertcussive = librosa.effects.hpss(y_blues)
S_blues_h = createMelspectrogram(y_harmonic, sr_blues)
S_blues_p = createMelspectrogram(y_pertcussive, sr_blues)

In [20]:
plt.figure(figsize=(12, 8))

plt.subplot(3, 1, 1)
librosa.display.specshow(S_blues, sr=sr_blues, x_axis='time', y_axis='mel')
plt.title('blues normal mel power spectrogram')
plt.colorbar(format='%02.0f dB')

plt.subplot(3, 1, 2)
librosa.display.specshow(S_blues_h, sr=sr_blues, x_axis='time', y_axis='mel')
plt.title('blues harmonic mel power spectrogram')
plt.colorbar(format='%02.0f dB')

plt.subplot(3, 1, 3)
librosa.display.specshow(S_blues_p, sr=sr_blues, x_axis='time', y_axis='mel')
plt.title('blues percussive mel power spectrogram')
plt.colorbar(format='%02.0f dB')


Out[20]:
<matplotlib.colorbar.Colorbar at 0x7f4bb8111ac8>

In [21]:
y_harmonic_disco, y_pertcussive_disco = librosa.effects.hpss(y_disco)
S_disco_h = createMelspectrogram(y_harmonic_disco, sr_disco)
S_disco_p = createMelspectrogram(y_pertcussive_disco, sr_disco)

In [22]:
plt.figure(figsize=(12, 8))

plt.subplot(3, 1, 1)
librosa.display.specshow(S_disco, sr=sr_disco, x_axis='time', y_axis='mel')
plt.title('disco normal mel power spectrogram')
plt.colorbar(format='%02.0f dB')

plt.subplot(3, 1, 2)
librosa.display.specshow(S_disco_h, sr=sr_disco, x_axis='time', y_axis='mel')
plt.title('disco harmonic mel power spectrogram')
plt.colorbar(format='%02.0f dB')

plt.subplot(3, 1, 3)
librosa.display.specshow(S_disco_p, sr=sr_disco, x_axis='time', y_axis='mel')
plt.title('disco percussive mel power spectrogram')
plt.colorbar(format='%02.0f dB')


Out[22]:
<matplotlib.colorbar.Colorbar at 0x7f4bb4b85b00>

In [30]:
mfcc_blues = librosa.feature.mfcc(y=y_blues, sr=sr_blues,n_mfcc=5)
mfcc_classical = librosa.feature.mfcc(y=y_classical, sr=sr_classical, n_mfcc=5)
mfcc_disco = librosa.feature.mfcc(y=y_disco, sr=sr_disco, n_mfcc=5)
mfcc_jazz = librosa.feature.mfcc(y=y_jazz, sr=sr_jazz, n_mfcc=5)

In [31]:
plt.figure(figsize=(12, 8))

plt.subplot(4, 1, 1)
librosa.display.specshow(mfcc_blues)
plt.title('mfcc blues')
plt.colorbar()

plt.subplot(4, 1, 2)
librosa.display.specshow(mfcc_classical)
plt.title('mfcc classical')
plt.colorbar()

plt.subplot(4, 1, 3)
librosa.display.specshow(mfcc_disco)
plt.title('mfcc disco')
plt.colorbar()

plt.subplot(4, 1, 4)
librosa.display.specshow(mfcc_jazz)
plt.title('mfcc jazz')
plt.colorbar()

plt.tight_layout()