Book Image

IPython Interactive Computing and Visualization Cookbook

By : Cyrille Rossant
Book Image

IPython Interactive Computing and Visualization Cookbook

By: Cyrille Rossant

Overview of this book

Table of Contents (22 chapters)
IPython Interactive Computing and Visualization Cookbook
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

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...

  1. 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
  2. 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)
  3. 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))
  4. Here is the fundamental 440 Hz note:

    In [4]: synth(440)
  5. Now, we generate the...