Raphael SalajaによるWeb Audio APIの宣言的ラッパー。プレーンなオブジェクトで音を定義し、返り値の関数を呼ぶだけで再生できる。
const pop = defineSound({
source: { type: "sine", frequency: { start: 400, end: 150 } },
envelope: { decay: 0.05 },
gain: 0.35,
});
pop();
コンセプトは Sources、Filters、Envelopes、Modulation、Layers、Effects、Spatial Audio の7つ。音源、フィルタ、エンベロープ、モジュレーションといったシンセサイザーの概念をそのまま型として扱える。
React向けには useSound と usePatch フックを用意。複数のサウンドを束ねる Patch システムや、コマンドラインからの利用にも対応する。
npmで配布されておりバージョンは 0.1.0。Submitボタン、通知トグル、スライダーなどのUI要素にサウンドフィードバックを紐付けたいプロダクトで記述量が減る。