ConvolverNode
ConvolverNode は AudioNode の一種で、与えられた AudioBuffer を用いて線形畳み込みを行います。リバーブの実装によく用いられます。 ConvolverNode は常に 1 つの入力と、1 つの出力を持ちます。
メモ: 線形畳み込みの理論的な側面については、Wikipedia の「畳み込み」を参照してください。
| 入力数 | 1 |
|---|---|
| 出力数 | 1 |
| チャンネルカウントモード | "clamped-max" |
| チャンネル数 | 1, 2, 4 |
| チャンネルの解釈 | "speakers" |
コンストラクター
ConvolverNode()(en-US)-
ConvolverNodeオブジェクトの新しいインスタンスを生成します。
プロパティ
親である AudioNode からプロパティを継承しています。
ConvolverNode.buffer(en-US)-
モノラル、ステレオ、 4 チャンネルの
AudioBufferで、ConvolververNodeがリバーブ効果を生成するために使用する(おそらくマルチチャンネルの)インパルス応答を含みます。 ConvolverNode.normalize(en-US)-
論理値で、
buffer属性が設定されているときに、バッファーからのインパルス応答を等力正規化でスケーリングするかどうかを制御します。
メソッド
固有のメソッドはありません。親である AudioNode からメソッドを継承しています。
ConvolverNode の例
次の例は、コンボルバーノードを作成するための AudioContext の基本的な使い方を示しています。
メモ: 以下の例を完成させるために、インパルス応答を求める必要があります。応用例はこちらの Codepen をご覧ください。
js
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