In [1]:

```
%matplotlib inline
from matplotlib.pyplot import *
from numpy import * ## for numerical functions
from IPython.display import Audio ## to output audio
```

Rapid changes, or **vibrations** in air pressure are heard in our ears as sound.

A computer creates sound by sending a list of numbers to a speaker, which then **vibrates**.

In [2]:

```
Fs = 44100
random_sd = random.randn(Fs)
```

In [4]:

```
## Random sound
Audio(data=random_sd, rate=Fs)
```

Out[4]:

We can plot a few of those numbers, using a plotting command.

In [5]:

```
plot(random_sd[0:200]);
```

A vibration that has a periodic vibration will sound like a tone to us.

The sine function has a periodic cycle, and can be used to represent such a tone.

In [6]:

```
Fs, Len, f1 = 44100, 3, 440 ## sample rate, length in second, frequency
t = linspace(0,Len,Fs*Len) ## time variable
```

In [7]:

```
sine_sd = sin(2*pi*440*t)
Audio(data=sine_sd, rate=Fs)
```

Out[7]:

We can plot this sine sound, using a plotting command.

In [8]:

```
plot(sine_sd[0:500]);
```

By clipping the tops of the sine wave, we get a square wave.

In [9]:

```
square_sd = minimum(.1, maximum(-.1,sine_sd))
plot(square_sd[0:500]);
```

In [11]:

```
## What does a square wave sound like?
Audio(data=square_sd, rate=Fs)
```

Out[11]:

The Sine and Square waves have the same **pitch** (frequency) but different **timbres**.

Playing two tones at similar frequencies results in **beats**.

This is useful for tuning instruments!

In [12]:

```
sine2_sd = sin(2*pi*440*t) - sin(2*pi*442*t)
Audio(data=sine2_sd, rate=Fs)
```

Out[12]: