Creating a sound synthesizer in the notebook
In this recipe, we will create a small electronic piano in the notebook. We will synthesize sinusoidal sounds with NumPy instead of using recorded tones.
How to do it...
- We import the modules:
In [1]: import numpy as np import matplotlib.pyplot as plt from IPython.display import (Audio, display, clear_output) from IPython.html import widgets from functools import partial %matplotlib inline
- We define the sampling rate and the duration of the notes:
In [2]: rate = 16000. duration = 0.5 t = np.linspace(0., duration, rate * duration)
- We create a function that generates and plays the sound of a note (sine function) at a given frequency, using NumPy and IPython's
Audio
class:In [3]: def synth(f): x = np.sin(f * 2. * np.pi * t) display(Audio(x, rate=rate, autoplay=True))
- Here is the fundamental 440 Hz note:
In [4]: synth(440)
- Now, we generate...