fmlab

fmlab is an interactive guide to FM synthesis. Short chapters go from a single sine wave up to the Yamaha DX7's operator algorithms, each with controls you can play with while you hear the sound and watch its waveform and spectrum change. A sandbox at the end has every control and an on-screen keyboard.
It's written in vanilla TypeScript with Vite, drawing with Canvas 2D, and the sound comes from a phase-modulation engine in a Web Audio AudioWorklet.