ConvolverNode
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.
ConvolverNode
は AudioNode
の一種で、与えられた AudioBuffer
を用いて線形畳み込みを行います。リバーブの実装によく用いられます。 ConvolverNode
は常に 1 つの入力と、1 つの出力を持ちます。
メモ: 線形畳み込みの理論的な側面については、Wikipedia の「畳み込み」を参照してください。
入力数 | 1 |
---|---|
出力数 | 1 |
チャンネルカウントモード | "clamped-max" |
チャンネル数 | 1 , 2 , 4 |
チャンネルの解釈 | "speakers" |
コンストラクター
ConvolverNode()
-
ConvolverNode
オブジェクトの新しいインスタンスを生成します。
プロパティ
親である AudioNode
からプロパティを継承しています。
ConvolverNode.buffer
-
モノラル、ステレオ、 4 チャンネルの
AudioBuffer
で、ConvolververNode
がリバーブ効果を生成するために使用する(おそらくマルチチャンネルの)インパルス応答を含みます。 ConvolverNode.normalize
-
論理値で、
buffer
属性が設定されているときに、バッファーからのインパルス応答を等力正規化でスケーリングするかどうかを制御します。
メソッド
固有のメソッドはありません。親である AudioNode
からメソッドを継承しています。
ConvolverNode の例
次の例は、コンボルバーノードを作成するための AudioContext の基本的な使い方を示しています。
メモ: 以下の例を完成させるために、インパルス応答を求める必要があります。応用例はこちらの Codepen をご覧ください。
let audioCtx = new window.AudioContext();
async function createReverb() {
let convolver = audioCtx.createConvolver();
// load impulse response from file
let response = await fetch("path/to/impulse-response.wav");
let arraybuffer = await response.arrayBuffer();
convolver.buffer = await audioCtx.decodeAudioData(arraybuffer);
return convolver;
}
...
let reverb = await createReverb();
// someOtherAudioNode -> reverb -> destination
someOtherAudioNode.connect(reverb);
reverb.connect(audioCtx.destination);
仕様書
Specification |
---|
Web Audio API # ConvolverNode |
ブラウザーの互換性
BCD tables only load in the browser