BaseAudioContext
================

`BaseAudioContext` はウェブオーディオ API のインターフェイスで、 `AudioContext` と `OfflineAudioContext` で表されるオンラインとオフラインのオーディオ処理グラフの基本定義として動作します。 `BaseAudioContext` を直接使用することはありません。これらの 2 つの継承されたインターフェースのいずれかを介して、その機能を使用することになります。

`BaseAudioContext` はイベントのターゲットとなることができるので、 `EventTarget` インターフェイスを実装しています。

EventTarget

BaseAudioContextプロパティ
-----

`BaseAudioContext.audioWorklet` 
Experimental
 読取専用  安全なコンテキスト用

`AudioWorklet` オブジェクトを返します。これは `AudioNode` を JavaScript コードで作成および管理するために使用することができ、 `AudioWorkletProcessor` インターフェイスを実装していて、バックグラウンドで実行して音声データを処理することができます。

`BaseAudioContext.currentTime` 読取専用 

スケジューリングに使用される秒単位で増加するハードウェア時間を表す倍精度浮動小数点値を返します。 `0` から始まります。

`BaseAudioContext.destination` 読取専用 

このコンテキストですべての音声の最終的な出力先を表す `AudioDestinationNode` を返します。 オーディオレンダリングデバイスと考えることができます。

`BaseAudioContext.listener` 読取専用 

三次元空間化に使用される `AudioListener` オブジェクトを返します。

`BaseAudioContext.sampleRate` 読取専用 

このコンテキスト内のすべてのノードで使用されるサンプリングレート（サンプル/秒）を単精度浮動小数点値で返します。 `AudioContext` のサンプリングレートを変更することはできません。

`BaseAudioContext.state` 読取専用 

現在の `AudioContext` の状態を返します。

### イベント

`statechange`

状態変化メソッド（`AudioContext.suspend`, `AudioContext.resume`, `AudioContext.close`）のいずれかが呼ばれたことによって `AudioContext` の状態が変化したときに発生します。

メソッド
----

*`EventTarget` インターフェイスから継承しているメソッドもあります。*

`BaseAudioContext.createAnalyser()`

`AnalyserNode` を作成します。これは音声の時間と周波数データを公開し、データの可視化などに利用できます。

`BaseAudioContext.createBiquadFilter()`

`BiquadFilterNode` (en-US) を作成します。これはハイパス、ローパス、バンドパスなどの一般的なフィルター型として設定可能な 2 次フィルターを表します。

`BaseAudioContext.createBuffer()`

新しい空の `AudioBuffer` オブジェクトを作成します。これにデータを入力して `AudioBufferSourceNode` で再生できます。

`BaseAudioContext.createBufferSource()`

`AudioBufferSourceNode` を作成します。これは `AudioBuffer` オブジェクトに含まれる音声データを再生または操作するために使用することができます。 `AudioBuffer` は `AudioContext.createBuffer()` によって生成されるか、オーディオトラックのデコードに成功すると `AudioContext.decodeAudioData()` によって返されます。

`BaseAudioContext.createConstantSource()`

`ConstantSourceNode` オブジェクトを作成します。これはすべてのサンプルが同じ値を持つモノラル（1 チャンネル）音声信号を連続的に出力する音声ソースです。

`BaseAudioContext.createChannelMerger()`

`ChannelMergerNode` を作成します。これは複数の音声ストリームのチャンネルを 1 つの音声ストリームに結合するために使用します。

`BaseAudioContext.createChannelSplitter()`

`ChannelSplitterNode` を作成します。これは音声ストリームの個々のチャンネルにアクセスし、それらを個別に処理するために使用されます。

`BaseAudioContext.createConvolver()`

`ConvolverNode` を作成します。これはオーディオグラフにコンボリューション効果（残響効果など）を適用するために使用されます。

`BaseAudioContext.createDelay()`

`DelayNode` を作成します。これは入力される音声信号を一定時間遅延させるために使用します。このノードは、ウェブオーディオ API グラフでフィードバックループを作成する際にも便利です。

`BaseAudioContext.createDynamicsCompressor()`

`DynamicsCompressorNode` (en-US) を作成します。これは音声信号に音響圧縮をかけるために使用します。

`BaseAudioContext.createGain()`

`GainNode` を作成します。これはオーディオグラフの全体的な音量を制御するために使用することができます。

`BaseAudioContext.createIIRFilter()`

`IIRFilterNode` を作成します。これは複数の異なる一般的なフィルター種別として設定可能な二次フィルタを表します。

`BaseAudioContext.createOscillator()`

`OscillatorNode` を作成します。これは周期的な波形を表すソースです。基本的には音程を生成します。

`BaseAudioContext.createPanner()`

`PannerNode` を作成します。これは入力されるオーディオストリームを三次元空間で空間化するために使用されます。

`BaseAudioContext.createPeriodicWave()`

`PeriodicWave` を作成します。これは、`OscillatorNode` の出力を決定するために使用できる、周期的な波形を定義するために使用します。

`BaseAudioContext.createScriptProcessor()` 
非推奨

`ScriptProcessorNode` を作成します。これは JavaScript で直接音声処理を行うために使用します。

`BaseAudioContext.createStereoPanner()`

`StereoPannerNode` を作成します。これは音声ソースにステレオパニングを適用するために使用することができます。

`BaseAudioContext.createWaveShaper()`

非線形歪み効果を実装するために使用される `WaveShaperNode` (en-US) を作成します。

`BaseAudioContext.decodeAudioData()`

`ArrayBuffer` に格納された音声ファイルのデータを非同期にデコードします。この場合、 `ArrayBuffer` は通常 `XMLHttpRequest` の `response` 属性に `responseType` を設定した後に読み込まれます。このメソッドは完全なファイルに対してのみ動作し、音声ファイルの断片に対しては動作しません。

例
-

基本的なオーディオコンテキストの宣言:


```js
const audioContext = new AudioContext();
```


クロスブラウザー対応の変化形:


```js
const AudioContext = window.AudioContext || window.webkitAudioContext;
const audioContext = new AudioContext();

const oscillatorNode = audioContext.createOscillator();
const gainNode = audioContext.createGain();
const finish = audioContext.destination;
```

仕様書
---

| Specification |
| --- |
| Web Audio API # BaseAudioContext |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* ウェブオーディオ API の使用
* `AudioContext`
* `OfflineAudioContext`