web audio + canvas
Audio Visualizer
A signal source (an oscillator or your microphone) goes into an AnalyserNode, and a requestAnimationFrame loop reads its FFT bins and paints them onto a <canvas>. Pick a waveform, drag the slider, and switch between the visualizations. I would suggest headphones if you turn the volume up.
Tip: try a square wave around 110 Hz with the Bars view.