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
npm
Install viaGlobal 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
- Play a pitched sawtooth wave
- Play a short sequence of notes
- Add a high-pass filter
- Modulate filter cutoff
- Add an envelope
- Vibrato
Part II: Working With Samples
- Decode and play an audio file
- Set in and out points
- Looping samples
- Set sample pitch
- Play a sequence of pitched samples
Part III: Effects
- Tremolo
- Stereo Tremolo
- Echo / Delay
- Overdrive (part 1)
- Overdrive (part 2)
- Ping Pong Delay
- Simple Reverb
Epilogue
- 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