KickOff Euler Magnification for Audio Looper

A project log for EuLooper

Looper based on Euler Magnification Technique

tucanae47tucanae47 09/23/2018 at 20:090 Comments

During this kickoff weekend, I started from great work from chairman at github and check on the theory of it, plus add spectrograms for after and before the magnification. 

Add google colab python 2.7 notebook.

Feel free to checkit out!

next steps will involve set everything up in the rpi, the main part of code published here follows. Laplacian pyramids rock :-)

this the first test results amplifying simple raw wav file with technique described

The main piece of code for that ;-)

window = 1024
step = window / 4
print "whitening spectrum"
whitened = sp / np.sqrt(power)
whitened = normalize_total_power(whitened, utils.total_power(sp))

print "unwhitening spectrum"
unwhitened = whitened * np.sqrt(power)
unwhitened = normalize_total_power(unwhitened, utils.total_power(sp))

print "resynthesizing from whitened-unwhitened spectrogram"
resynth = resynthesize(unwhitened)
wavfile.write("resynth.wav", int(2 * nyq), resynth)

print "constructing Laplacian pyramid"
pyr = stft_laplacian_pyramid(sp)

print "amplifying components of Laplacian pyramid"
passband = [0.5, 1.0]
fs = 44100 / step
gain = 10.0
amplified_pyr = amplify_pyramid(pyr, passband=passband, fs=fs, gain=gain)
print "resynthesizing spectrogram from amplified Laplacian pyramid"
pyramid_resynth = resynthesize(amplified_pyr.sum(axis=-1))
wavfile.write("resynth_pyramid.wav", int(2 * nyq), pyramid_resynth)
(nyq, signal2) = slurp_wav("resynth_pyramid.wav", start=0, end=44100*10)
plt.specgram(signal2, cmap='Spectral', Fs=framerate)