Skip to content
Branch: master
Go to file

Latest commit


Failed to load latest commit information.
Latest commit message
Commit time

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:


  • 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


  1. Drop the Bass


  • 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




This is an OPEN open source project. See for details


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


You can’t perform that action at this time.