node package manager
Loosely couple your services. Use Orgs to version and reuse your code. Create a free org »

web-audio-school

Web Audio School

An intro to the Web Audio API by a series of self-guided workshops.

We will primarily focus on using the Web Audio API for music, but the concepts here could be applied to game sound and other creative uses.

This workshop was built for CampJS V!

Try it out here:

mmckegg.github.io/web-audio-school

TODO

  • Handle user code errors and display in editor

Install via npm

Global install:

$ npm install web-audio-school -g

Start the server:

$ web-audio-school

Now navigate to localhost:9966.

Browser Support

Works in latest versions of Chrome, Firefox, Safari.

Internet Explorer doesn't support the Web Audio API yet.

Lesson Overview

Part I: Subtractive Synthesis

  1. Play a pitched sawtooth wave
  2. Play a short sequence of notes
  3. Add a high-pass filter
  4. Modulate filter cutoff
  5. Add an envelope
  6. Vibrato

Part II: Working With Samples

  1. Decode and play an audio file
  2. Set in and out points
  3. Looping samples
  4. Set sample pitch
  5. Play a sequence of pitched samples

Part III: Effects

  1. Tremolo
  2. Stereo Tremolo
  3. Echo / Delay
  4. Overdrive (part 1)
  5. Overdrive (part 2)
  6. Ping Pong Delay
  7. Simple Reverb

Epilogue

  1. Drop the Bass

Coverage

  • AudioContext
  • AudioBuffer
  • AudioParam
  • AudioDestinationNode
  • OscillatorNode
  • AudioBufferSourceNode
  • GainNode
  • WaveShaperNode
  • StereoPannerNode
  • ConvolverNode
  • BiquadFilterNode
  • DelayNode
  • ChannelSplitterNode
  • ChannelMergerNode

Not Yet Covered

  • AudioWorker (not yet supported by any browsers)
  • ScriptProcessor (deprecated)
  • OfflineAudioContext
  • DynamicsCompressorNode
  • AudioListener
  • PannerNode
  • AnalyserNode

License

MIT

Contributors

This is an OPEN open source project. See CONTRIBUTING.md for details