diff --git a/docs/index.html b/docs/index.html index 110b639..f26f9d3 100644 --- a/docs/index.html +++ b/docs/index.html @@ -336,6 +336,41 @@

AudioNode

ファクトリメソッドを, サポートするブラウザが限定的であれば, コンストラクタ呼び出しを使うのが現実解と言えるでしょう.

+
+

connect メソッド (AudioNode の接続)

+

+ 現実世界の音響機器では, 入力と出力, あるいは, 音響変化も接続することで, その機能を果たします. 例えば, エレキギターであれば, + サウンド入力を担うギターとサウンド出力を担うアンプ (厳密にはスピーカー) は, 単体ではその機能を果たしません. + シールド線などで接続することによって機能します. +

+

+ このことは, Web Audio API の世界も同じです. (AudioContext インスタンスを生成して,) サウンド入力点となる + AudioNode のサブクラスのインスタンス (先ほどのコード例だと, OscillatorNode インスタンス) と, サウンド出力点となる + AudioDestinationNode インスタンスを生成しただけではその機能を果たしません. 少なくとも, + サウンド入力点と出力点を接続する処理が必要となります. さらに, Web Audio API が定義する様々なノードと接続することで, 高度なオーディオ処理を実現する + API として真価を発揮します. +

+

+ Web Audio API のアーキテクチャは, 現実世界における音響機器のアーキテクチャと似ています. このことは, Web Audio API + の理解を進めていくとなんとなく実感できるようになると思います. +

+

+ Web Audio APIにおいて「接続」の役割を担うのが, AudioNode がもつ connect メソッドです. 実装としては, + AudioNode サブクラスのインスタンスの, connect メソッドを呼び出します. このメソッドの第 1 引数には, 接続先となる + AudioNode のサブクラスのインスタンスを指定します. +

+
// Autoplay Policy は解除されている状態
+
+const context = new AudioContext();
+
+const oscillator = context.createOscillator();
+
+// OscillatorNode (Input) -> AudioDestinationNode (Output)
+oscillator.connect(context.destination);
+