Uses <canvas>
and Web Audio API deprecating ScriptProcessorNode
. The visual above (as I remember) is not correct with the formulas it's displaying. The one on Wikipedia linked below should be correct.
https://commons.wikimedia.org/wiki/File:Phase-modulation.gif