Web Audio APIを利用するために必ず必要な処理があります. それは, AudioContextクラスのコンストラクタを呼び出して, AudioContextクラスのインスタンスを生成することです.
なぜなら, AudioContextインスタンスがWeb Audio APIで定義される処理の起点になるからです. 言い換えれば, AudioContextインスタンスを生成することで, Web Audio APIが定義するプロパティやメソッドにアクセス可能になるわけです.
…いきなり抽象的な事を説明したので, よくわからなかったかもしれませんが, コードにすると簡潔になります. Web Audio APIを利用するには, とりあえず以下のコードが必要ということです.
サンプルコード 01
// Create the instance of AudioContext
var context = new AudioContext();
ビルトインオブジェクトのコンストラクタ呼び出し (DateやRegExpなど) と同じです. ただし, 現状のブラウザの実装ではベンダープレフィックスを追加する必要があるので, サンプルコード 01を以下のように修正します.
サンプルコード 02
// Create the instance of AudioContext
var context = new webkitAudioContext();
将来的なことまで考慮すると, サンプルコード 03がベターでしょう.
サンプルコード 03
window.AudioContext = window.AudioContext || window.webkitAudioContext;
// Create the instance of AudioContext
var context = new AudioContext();
ちなみに, Firefoxではプレフィックスなし, Operaではwebkitのプレフィックスに対応しています.
このサイトでは, Web Audio APIの仕様で定義されているオブジェクトをクラスと表現します. そして, その実体をインスタンスと表現することにします. 定義されているオブジェクトを, クラスとその実体であるインスタンスと考えても, 理解のうえで大きな問題はありません.
もう1つこのサイトの用語定義として, それらのオブジェクトを文脈によっては現実世界の音響機器の構成要素と見なして, ノードと表現することもあります. もっとも, 表現を変えているだけで本質的には同じことです.
JavaScriptの言語仕様上, C++やJavaのようなクラスは存在しません (ECMAScript the 6th editionからは存在します). しかし,クラスに相当するモノ (new式で呼び出すことを想定した関数. すなわち, コンストラクタ) は存在します. それらをクラスと考えても, 理解のうえで大きな問題はありません.