In [ ]:
import os, sys
from TimeFreqAuditoryScene import *
from IPython.display import Audio, display, clear_output
from IPython.html import widgets
from IPython.html.widgets import interactive
%matplotlib inline
In [ ]:
# Parameterization
# Global parameters
fs = 44100
delay = 1./8.
duration = 1./8.
mu_log=np.log(500)
sigma_log=2.
genv = GaussianSpectralEnvelope(mu_log=mu_log, sigma_log=sigma_log)
In [ ]:
duration=0.1
delay=0.0
fb = 10.
n_tones = 18
intervals_st = np.random.randint(6,7,n_tones)
def shift_inharmonic(th=0.1):
# random shift up and down,
shifts_st = (np.random.rand(n_tones)>th)*2-1
scene = Scene()
tone1 = Chord(fb=fb,
intervals=2.**(intervals_st/12.),
duration=duration,
env=genv)
tone2 = Chord(fb=fb,
intervals=2.**((intervals_st)/12.),
duration=duration,
env=genv,
delay=duration+delay)
tone2.shift_tones(2.**(shifts_st/12.))
scene.add([tone1,tone2])
# draw spectrogram
sd = SceneDrawer()
sd.draw(scene)
plt.show()
# generate sound
x = scene.generate(fs=fs)
display(Audio(x, rate=fs, autoplay=True))
w = interactive(shift_inharmonic, th=(0.,1.))
display(w)