AudioWorklet(オーディオワークレット)
Web Audio APIのうち、独自の音声処理をJavaScriptやWebAssemblyで書き、メインスレッドではなくブラウザのオーディオスレッド上で動かすための仕組み。
前身のScriptProcessorNodeは独自のDSPをメインスレッドで実行していたため、重いレイアウト処理やガベージコレクションのたびにプツプツとノイズが出た。AudioWorkletはコードをオーディオスレッド上の別のグローバルスコープに移す。AudioWorkletProcessorを継承してprocess()を実装すると、128サンプルずつのブロックで呼び出される。ページとのやり取りはMessagePortを通して行う。
Chromeは2018年に搭載し、FirefoxとSafariが2020〜2021年に続いた。実際には重いDSPをJavaScriptで書く人はおらず、C++やRustをWebAssemblyにコンパイルして、プロセッサから呼び出すのが普通だ。48 kHzでは128サンプルが約2.7ミリ秒に相当し、この締め切りを破れば音に出る。