Making Music with Python SuperCollider and FoxDot

By Jessica Garson

I can't wait to hear what you build

Twitter - @JessicaGarson

Bandcamp - messicaarson.bandcamp.com/

Slides

pycon-making-music.glitch.me

Code and Next Steps

github.com/JessicaGarson/PyCon

I'm Going to Write A Song During This Talk

rocking out

Who is Messica Arson?

dallas photo

Scream Samples and Noise Music Ahead

rock

This has become one of my favorite things to Do

There is something magical about your computer making sounds because your code told it to.

What is FoxDot?

FoxDot allows us to interact with our computer as if we were using a synth.

Where can I get this?

http://foxdot.org/installation/

FoxDot is built on top of SuperCollider

You have to download this too to use FoxDot.

Starting SuperCollider

FoxDot.start

To launch FoxDot

python -m FoxDot

I like my editor

So I use the FoxDot package for Atom.

Enough Talk, Let's Rock

rock out

I typically start with the built in synths

print(SynthDefs)

Syntax

p1 >> noise()

Passing an Array into the Code

p1 >> noise([2, 5, 8])

Tempo

Clock.bpm = 130

Check Out the Built in Samples

print(Samples)

Using Samples

d1 >> play('Hello PyCon')

Two ways to add custom samples

You can map to a file path or add in your own into the sample folder.

Let's Record a Sample

We'll Use Audacity to record a sample.

Effects

Amp

Short for amplitude. The loudness of the sound.

Compress

Compression is the process of lessening the dynamic range between the loudest and quietest parts of an audio signal.

Attack

Attack is the portion of the envelope that represents the time taken for the amplitude to reach its maximum level. Essentially it is the initial build up of a sound.

Pan

Panning is the distribution of a sound signal (either monaural or stereophonic pairs) into a new stereo or multi-channel sound field determined by a pan control setting.

Decay

The progressive reduction in amplitude of a sound over time. The decay phase starts as soon as the attack phase has reached its peak. In the decay phase, the signal level drops until it reaches the sustain level.

Rate

Rate is the rate of playback, which I'll often use to make my vocals sound deeper.

Stopping

d1 >> play('Hello PyCon').stop() Clock.clear()

How is this all working

nirvana

Errors

woo!

Recording

This happens inside SuperCollider

Let's make music together

Tweet @messicaarson the words hi, hello, or yo.

Make music together code

github.com/twitterdev/make-music-together/

Nice people on the internet

talk.lurk.org/channel/foxdot

I can't wait to hear what you build

Twitter - @JessicaGarson

Bandcamp - messicaarson.bandcamp.com/

Go On and Create Awesome Music

woo!