Web Audio API in 15 min

30
Web Audio API in 15 minutes

Transcript of Web Audio API in 15 min

Page 1: Web Audio API in 15 min

Web Audio API in 15 minutes

Page 2: Web Audio API in 15 min

Ran Ben Aharon Front End lead at Everything

Page 3: Web Audio API in 15 min
Page 4: Web Audio API in 15 min
Page 5: Web Audio API in 15 min

MIND = BLOWN

Page 6: Web Audio API in 15 min

Wait.. there’s <audio> already

Page 7: Web Audio API in 15 min

Gaming features

Precise timing

Timing control

3D spatialization

Filters and effects

Page 8: Web Audio API in 15 min

Precise timing

Page 9: Web Audio API in 15 min

Timing control

Background music

Looping

Cross fading

Sounds effects

Recurring sounds

Real-time manipulation

Page 10: Web Audio API in 15 min

3D spatialization

Page 11: Web Audio API in 15 min

Doppler effect

Page 13: Web Audio API in 15 min

Musical webapps

Page 15: Web Audio API in 15 min

Audio visualizations

Page 17: Web Audio API in 15 min

Y u no show code?

Page 18: Web Audio API in 15 min

Basics - nodes

Types

Source (file, oscillator, stream..)

Filters and effect (reverb, gain, convolver..)

Destination (audio output, speakers..)

Page 19: Web Audio API in 15 min

Basics - routing

Source Destination

Page 20: Web Audio API in 15 min

Basics - routing

file.mp3 Speakers

Page 21: Web Audio API in 15 min

Basics - routing

Source Destination Effect Effect

Page 22: Web Audio API in 15 min

Basics - routing

file.mp3 Speakers Volume Reverb

Page 23: Web Audio API in 15 min

Basics - routing

Best way to demonstrate – Reactable!

Page 24: Web Audio API in 15 min

You promised code!

Page 25: Web Audio API in 15 min

Basic code

var context = new AudioContext();

function playSound(buffer) {

var source = context.createBufferSource();

source.buffer = buffer;

source.connect(context.destination);

source.noteOn(0);

}

Page 26: Web Audio API in 15 min

Basic code

var context = new AudioContext();

function playSound(buffer) {

var source = context.createBufferSource();

source.buffer = buffer;

var gainNode = context.createGainNode();

gainNode.gain = 0.5;

source.connect(gainNode);

gainNode.connect(context.destination);

source.noteOn(0);

}

Page 27: Web Audio API in 15 min

Let’s do something cool

Page 29: Web Audio API in 15 min

Ran Ben Aharon Front End lead at Everything

[email protected]

/ranbena

/ranbena

Page 30: Web Audio API in 15 min

WE’RE HIRING! Front End ninjas plz

http://corp.everything.me/jobs