水島雄太のブログ

個人的かつ雑多なブログです。

Flocking - Web Audio APIを使用した音響合成エンジン(その1)

FlockingとはJavascriptで実装されたWeb上で動く音響合成エンジンです。

日本語での紹介記事が現時点で皆無なので、紹介したいと思います。

Web Audio APIをラップする形で実装されており、 ブラウザが対応さえしていれば、Flashなどのプラグイン無しでマルチプラットフォームの音響合成処理を行えるのが特徴です。

このFlockingを使用し、実際にどのようなことが出来るかというのは、まずデモを見ていただいた方が早いと思います。 http://flockingjs.org/demos/interactive/html/playground.html#amp_mod

上記のデモにあるコードはブラウザから直接書き換え・実行することが出来ます。 そのためしばらく触っていれば、どのようなことが出来るのかはおおよそ把握できると思います。

JavaScript連想配列で柔軟な設定が行えるため、 ひと通りの音響合成を複雑なコード無しに実現することが可能です。

Flockingを使用する上で最低限理解する必要がある概念は下の4つです。

  • Unit Generators

Unit Generatorsは音声合成のベースと波形を生成します。 このUnit Generatorsによりシンセサイザーをコントロールする波形、シンセサイザーの入力波形を生成することが可能です。 Unit Generatorsは複数の入力と1つの出力を持ち、複数のUnit Generatorsを繋げることが可能です。

  • Synths

Unit Generatorから生成された波形を元に実際の音を生成します。 Synth自体にUnite Generatorが内蔵されているものもあります。 DAWなどでいうインスツルメントに近いです。

  • Environment

Unit GeneratorsとSynthsがそれぞれどのように繋がっているかを管理します。 DAWなどでもEnvironmentという名前で同じ名前が使用されます。

  • Scheduler

Synthsの実行タイミングを制御することが可能です。 DAWなどでいうシーケンサーに近いです。

今回は単純にFlockingの概要についてだけ説明しました。

次回は実際にFlockingを使用し、どのように音響合成を行うかについて説明をしたいと思います。