sink.jsはWeb Audio APIを使ったWebベースの音声出力ライブラリです。

HTML5のAPIの一つにWeb Audio APIがあります。まだ対応ブラウザは多くないのですが、Webブラウザ上でダイナミックに音声を出力できる仕組みは新しい可能性を感じさせます。そのためのライブラリとしてsink.jsを紹介します。


デモです。ビープ音が鳴り響きます。


実装方法です。コールバックを使った面白い記述方式になっています。

sink.jsはFirefox4以降、Google Chromeなどで使えるWeb Audio APIを利用しています。デモではノイズやビープ音が多いですが、実装方式によっては細かくこだわった音声をながせるはずです。バッファーサイズやサンプルレートが可変となっています。

sink.jsはJavaScript製のソフトウェア(ソースコードは公開されていますがライセンスは明記されていません)になります。

MOONGIFTはこう見る

JavaScriptによるバイナリハックを筆頭に、Webベースでバイナリを扱う試みが増えています。と同時にWeb Audio APIを使った音声出力も多数行われています。単なるMP3を再生するのと違い、ダイナミックに音声を変えられるのが利点になります。今後、この手のライブラリはどんどん増えていくことでしょう。

シンプルなビープ音であればゲームに使うこともできるでしょうし、将来的には音符をベースに音楽を演奏するくらいのことはできるようになるはずです。そうなれば一般的には敷居の高かった音楽の創作が、オンラインでシェアしながらできるようになるかも知れません。

jussi-kalliokoski/sink.js - GitHub