Slide 1

Slide 1 text

Dubstep in Ruby with Sonic Pi Tuesday, 10 June 14

Slide 2

Slide 2 text

(Or how to combine Ruby, Education and Audio Synthesis for fun and profit) Tuesday, 10 June 14

Slide 3

Slide 3 text

download Sonic Pi 2.0 RC here: http://sonic-pi.net/get-v2.0 Tuesday, 10 June 14

Slide 4

Slide 4 text

@xavriley Tuesday, 10 June 14

Slide 5

Slide 5 text

Nothing to do with Sonic Pi, all views my own... Tuesday, 10 June 14

Slide 6

Slide 6 text

Outline on teaching programming audio synthesis 101 tour of SonicPi Dubstep Tuesday, 10 June 14

Slide 7

Slide 7 text

on teaching programming Tuesday, 10 June 14

Slide 8

Slide 8 text

Why does Sonic Pi matter? Tuesday, 10 June 14

Slide 9

Slide 9 text

Tuesday, 10 June 14

Slide 10

Slide 10 text

GCSE Computing 2014 Tuesday, 10 June 14

Slide 11

Slide 11 text

Computer Science: A curriculum for schools endorsed by * Google * Microsoft * Intellect (UK STEM trade assoc.) Computer Science: A curriculum for schools 2012 Tuesday, 10 June 14

Slide 12

Slide 12 text

training for industry, by industry = lobotomy (possibly...) Tuesday, 10 June 14

Slide 13

Slide 13 text

“ It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. Edsger Dijkstra Tuesday, 10 June 14

Slide 14

Slide 14 text

what he’s saying here is this: It matters what you learn first Tuesday, 10 June 14

Slide 15

Slide 15 text

We need hackers People who are self-motivated to learn, through playing with code Tuesday, 10 June 14

Slide 16

Slide 16 text

Ruby is the perfect language to start hacking Tuesday, 10 June 14

Slide 17

Slide 17 text

“Ah, music,” he said, wiping his eyes. “A magic far beyond all we do here!” Albus Dumbledore Tuesday, 10 June 14

Slide 18

Slide 18 text

made for classrooms designed for Raspberry Pi simple and fun to program Making Computer Science Audible Tuesday, 10 June 14

Slide 19

Slide 19 text

lets you synthesize audio in *RUBY* a “real” language with transferable skills that’s FUN to program in Tuesday, 10 June 14

Slide 20

Slide 20 text

works on Raspberry Pi AND OSX, Linux and windows Tuesday, 10 June 14

Slide 21

Slide 21 text

demo Tuesday, 10 June 14

Slide 22

Slide 22 text

Outline on teaching programming audio synthesis 101 tour of SonicPi Dubstep Tuesday, 10 June 14

Slide 23

Slide 23 text

Audio Synthesis 101 Tuesday, 10 June 14

Slide 24

Slide 24 text

Tuesday, 10 June 14

Slide 25

Slide 25 text

ALL ABOUT WAVES Tuesday, 10 June 14

Slide 26

Slide 26 text

ALL ABOUT WAVES (we need to know this to make wobble bass later...) Tuesday, 10 June 14

Slide 27

Slide 27 text

Sine Waves and harmonics Tuesday, 10 June 14

Slide 28

Slide 28 text

Sine wave Pure, sterile sounding no ‘edges’ (no harmonics) Tuesday, 10 June 14

Slide 29

Slide 29 text

demo Tuesday, 10 June 14

Slide 30

Slide 30 text

demo natural harmonics a.k.a. harmonic series video: http://www.mindbites.com/lesson/4603-physics-in- action-standing-waves-on-a-rope Tuesday, 10 June 14

Slide 31

Slide 31 text

All sounds have a mix of natural + unnatural harmonics Tuesday, 10 June 14

Slide 32

Slide 32 text

Any sound can be recreated with enough sine waves see Fourier Transform Tuesday, 10 June 14

Slide 33

Slide 33 text

Tuesday, 10 June 14

Slide 34

Slide 34 text

Not a Sine (a Sawtooth wave!) Loads of crazy harmonics Tuesday, 10 June 14

Slide 35

Slide 35 text

Not a Sine Loads of crazy harmonics ! Different x-axis ! Tuesday, 10 June 14

Slide 36

Slide 36 text

Some more synth jargon Tuesday, 10 June 14

Slide 37

Slide 37 text

ADSR Attack, Decay, Sustain, Release Tuesday, 10 June 14

Slide 38

Slide 38 text

Image: https://flic.kr/p/61T21q Tuesday, 10 June 14

Slide 39

Slide 39 text

ADSR Think “loudness over time” Tuesday, 10 June 14

Slide 40

Slide 40 text

Noise Many/All the sine waves at once (no fundamental) Tuesday, 10 June 14

Slide 41

Slide 41 text

Image: http://memegenerator.net/instance/50615527 Tuesday, 10 June 14

Slide 42

Slide 42 text

Additive Subtractive FM (Frequency modulation) Synthesis Tuesday, 10 June 14

Slide 43

Slide 43 text

Different ways of getting the sound you want Tuesday, 10 June 14

Slide 44

Slide 44 text

comb filter, sawtooth, square wave, eq, pitchshift, flange, phase cancellation, reverb, distortion, zawa, 808, audio rates, control rates, LFO, slicer, delay, compression, FFT, pink noise, brown noise, white noise, wave shaping, red-and- yellow-and-pink-and-green-noise... Tuesday, 10 June 14

Slide 45

Slide 45 text

comb filter, sawtooth, square wave, eq, pitchshift, flange, phase cancellation, reverb, distortion, zawa, 808, audio rates, control rates, LFO, slicer, delay, compression, FFT, pink noise, brown noise, white noise, wave shaping, red-and- yellow-and-pink-and-green-noise... Ask me on twitter Tuesday, 10 June 14

Slide 46

Slide 46 text

Outline on teaching programming audio synthesis 101 tour of SonicPi Dubstep Tuesday, 10 June 14

Slide 47

Slide 47 text

tour of Sonic Pi Tuesday, 10 June 14

Slide 48

Slide 48 text

synths Tuesday, 10 June 14

Slide 49

Slide 49 text

synths Tuesday, 10 June 14

Slide 50

Slide 50 text

effects Tuesday, 10 June 14

Slide 51

Slide 51 text

samples Tuesday, 10 June 14

Slide 52

Slide 52 text

samples Psst... you don’t actually need “in_thread do ... end” for this to work Tuesday, 10 June 14

Slide 53

Slide 53 text

samples You can also use any .wav file that’s available via a local filepath Tuesday, 10 June 14

Slide 54

Slide 54 text

Outline on teaching programming audio synthesis 101 tour of SonicPi Dubstep Tuesday, 10 June 14

Slide 55

Slide 55 text

DUBSTEP Tuesday, 10 June 14

Slide 56

Slide 56 text

DUBSTEP Wobble bass 6/4 rhythms Funky hi-hats Samples Tuesday, 10 June 14

Slide 57

Slide 57 text

demo + dojo Tuesday, 10 June 14

Slide 58

Slide 58 text

for people just viewing slides I’m linking to gists of all my examples recreating the thx deep note in 30 lines: https:// gist.github.com/xavriley/418f8283af2fbe95fc90 Funky drummer: https://gist.github.com/xavriley/ dd6b61c24c3aed28c892 ASCII Drum tab player: https://gist.github.com/xavriley/ cdacb93dc127eafd1f16 Wobble bass: https://gist.github.com/xavriley/ 92dbba5de1c78177c33d Auto dubstep: https://gist.github.com/xavriley/ 71b255775829b486249b Tuesday, 10 June 14

Slide 59

Slide 59 text

Outline on teaching programming audio synthesis 101 tour of SonicPi Dubstep Tuesday, 10 June 14

Slide 60

Slide 60 text

See also Overtone (Clojure) SuperCollider Max MSP / Ableton Tuesday, 10 June 14

Slide 61

Slide 61 text

Conclusion teach! github! make tunes! Tuesday, 10 June 14

Slide 62

Slide 62 text

THANKS! feedback/questions to @xavriley Tuesday, 10 June 14