https://adventar.org/calendars/3353 の23日目エントリーです。
WAMsって何?
WAMs(Web Audio Modules)とは、Oli Larkinによって提案された、Web Audio APIでVSTプラグインのように扱えるプロセッサー・モジュールの仕様です。
公式サイト: https://www.webaudiomodules.org/
サンプル
いくつかのサンプルが公式サイトに掲載されています。
そのほとんどは元々VSTプラグインだったものをWAMsに移植したものです。
Web MIDI APIの入力を受けられるので、MIDIキーボードから演奏することができます。
https://www.webaudiomodules.org/wamsynths/
API仕様
API仕様も公式サイトから確認することができます。
https://www.webaudiomodules.org/docs/wampaper-smc2015.pdf
概要をざっくり解説すると、DSPを実装するWAM.Processorと、GUIを実装するWAM.Controllerとがあり、このうちWAM.Processorに対して、Web Audio APIからのコールバックを受けて信号処理を実行するという仕組みのようです。
SDKについて
WAMsのSDKはGithubにて公開されています。リンク
WAMs SDKはC言語で書かれています。
WAMsのAPIが定義されたCインターフェースを実装し、EmscriptenでWeb Assembly化することで、JavaScriptにロードさせるという仕組みになっています。
ADC2018でのセッション
開発者のOli LarkinとJari KleimolaがADC2018で行ったセッション動画が公開されています。