Apia saysThe Web Audio API builds sound from nodes — oscillators, gain, filters — in an audio graph.
Create an AudioContext, then wire nodes: an OscillatorNode (tone) → GainNode (volume) → context.destination (speakers). It's a routing graph for synthesis, effects, and analysis (visualizers). The context must be started/resumed from a user gesture due to autoplay rules.
Power-ups you unlock
AudioContext is the audio graph
Nodes: oscillator → gain → destination
For synthesis, effects, and visualizers
Resume the context on a user gesture
Legacy Larry attacks — common mistakes
Starting audio without a user gesture (blocked)
Not disconnecting nodes (leaks)
Forgetting to ramp gain (clicks/pops)
Boss battleSketch a beep: oscillator → gain → destination, started on click.