Blaine Bublitz - Sound Will Age You

JSConf US 2013

29 May 2013

“Sounds are important” - TV/games with sound off, not as good

“Sounds are iconic” - examples of mario, sonic, pacman sounds, everyone recognizes them

“Sounds are hard” - on and off the web

FrozenJS - game development is his perspective

  • WebAudio vs HTML5 Audio
  • Codecs
  • Mobile

started with just webaudio, no fallbacks

Web Audio:

  • high performance
  • low latency
  • buffers not resource loading

Then do fallback:

get all audio types, sort by probably / maybe / drop the no response (using canPlay type) and try most likely to least likely, exit once one starts playing.

on mobile, autoplay/load disabled (data usage cited as reason) attach to touchstart and load/play there (for each audio element)

Chrome flag for android chrome : “Disable gesture requirement for audio load” wants everyone to enable this

Audio streams

  • layering of sounds

  • on mobile? single stream only. play one, any other played will cut it off and play chrome flag for android chrome - enable webaudio android (wants you to enable this)

Summary: start at web audio -> fallback to HTML5 -> don’t fallback to flash -> push web audio (enable in chrome://flags in Chrome Beta for Android)

Need to improvoe: Mobile, canPlayType & string comparison, better abstractions & fallbacks

Howler.js, webaudio.js, etc

Game sounds with fallbacks: Frozen, SoundJS, Quintus, Audia

Twitter: @BlaineBublitz

Slides: blog.iceddev.com/sound-will-age-you

JSConf 2013

This is a quick summary of a talk I attended at JSConf 2013. You can see a list of all those I've summarized notes from here. There's also a General thoughts during JSConf 2013 post for all the non-talk bits and pieces.

There were 3 concurrent tracks at the conference, so only those I attended myself are summarized here. Other attendees have summarized some of the talks I didn't get to due to scheduling conflicts - you can find those at jlongster.com (James Long) and Toby Ho's github repo.