Web Audio API
De audio-engine van de browser: een graaf van nodes die vanuit JavaScript in realtime geluid genereren, filteren en mixen.
Daarvoor was er alleen de <audio>-tag, die een bestand kan afspelen en weinig meer. Chris Rogers van Google stelde rond 2010 een model met nodes voor, en Chrome leverde het uit met een prefix als webkitAudioContext; de concurrerende Audio Data API van Mozilla werd laten vallen. De specificatie werd pas in 2021 een W3C Recommendation.
Je maakt een AudioContext en koppelt oscillatoren, filters, een convolutiereverb, FFT-analysers en de bestemming aan elkaar. Eigen DSP zat eerst in ScriptProcessorNode, dat op de hoofdthread draaide en haperde zodra de pagina iets anders deed; de opvolger AudioWorklet draait op een eigen audiothread, vaak met WebAssembly erin. Sinds 2018 start de context in de pauzestand tot de gebruiker ergens op klikt — automatisch afspelende advertenties zijn de reden.