Web Audio API
Аудиодвижок браузера: граф узлов, которые генерируют, фильтруют и микшируют звук в реальном времени из JavaScript.
До него был только тег <audio>, умевший проиграть файл и почти ничего больше. Крис Роджерс из Google предложил узловую модель около 2010 года, и Chrome выпустил её с префиксом как webkitAudioContext; конкурирующий Audio Data API от Mozilla закрыли. Рекомендацией W3C спецификация стала лишь в 2021 году.
Вы создаёте AudioContext и соединяете осцилляторы, фильтры, свёрточный ревербератор, анализаторы FFT и выход. Собственная обработка сначала жила в ScriptProcessorNode, который работал в основном потоке и заикался, стоило странице заняться чем-то ещё; его замена AudioWorklet работает в отдельном аудиопотоке, нередко с WebAssembly внутри. С 2018 года контекст стартует приостановленным, пока пользователь что-нибудь не нажмёт, — виновата автовоспроизводимая реклама.