Look nice plotting:
In [1]:
## web graphics
%matplotlib inline
## interactive graphics/
#%matplotlib notebook
%config InlineBackend.figure_format = 'png'
science libraries (using autograd instead of tensorflow for easy prototyping)
In [6]:
import autograd.numpy as np
import autograd.scipy as sp
from autograd import grad
from autograd.util import flatten_func
import seaborn as sns
import librosa
from importlib import reload
import matplotlib.pyplot as plt
from librosa.display import specshow
# display more of the array
np.set_printoptions(edgeitems=5)
from librosa.display import waveplot
from pathlib import Path
import src.numpyjson as npjson
dumps = reload(npjson).dumps
#runs arbitrary javascript, client-side
from IPython.display import Javascript
In [12]:
import src.danscriptors.js_play as js_play
js_play = reload(js_play)
js_play.init()
Out[12]:
In [11]:
js_play.load('samples/clarinet.mp3')
Out[11]:
In [5]:
import src.danscriptors.array_ops as array_ops
import src.danscriptors.analysis as analysis
array_ops = reload(array_ops)
analysis = reload(analysis)
source_features = analysis.harmonic_index('samples/clarinet.mp3', debug=True, cached=False)
In [6]:
plt.plot(source_features['harm_rms'].ravel());
In [7]:
k=500
target_features = dict(
rms=source_features['rms'][:, k],
peak_f=source_features['peak_f'][:, k],
peak_power=source_features['peak_power'][:, k],
)
In [8]:
target_features
Out[8]:
In [25]:
Out[25]:
In [29]:
import src.danscriptors.resynthesis as resynthesis
resynthesis = reload(resynthesis)
optimum = resynthesis.harmonic_synthesis(source_features, target_features)
print(optimum)
dumps(optimum)
Out[29]:
In [30]:
import src.danscriptors.resynthesis as resynthesis
resynthesis = reload(resynthesis)
optimum = resynthesis.harmonic_synthesis(source_features, target_features)
print(optimum)
import src.danscriptors.sc_play as sc_play
sc_play = reload(sc_play)
sc_play.file(str(Path('samples/clarinet.mp3').resolve()))
sc_play.note(**optimum)
In [31]:
optimum = resynthesis.harmonic_synthesis(source_features, target_features)
# sc_play.file(str(Path('samples/clarinet.mp3').resolve()))
sc_play.note(**optimum)
In [32]:
plt.plot((source_features['harm_rms']/source_features['rms']).ravel()); # noisiness
In [ ]: