ConvolverNode
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Giao diện ConvolverNode là một AudioNode thực hiện phép tích chập tuyến tính trên một AudioBuffer cho trước, thường được dùng để tạo hiệu ứng vang âm (reverb). Một ConvolverNode luôn có đúng một đầu vào và một đầu ra.
Note: Để tìm hiểu thêm về lý thuyết đằng sau phép tích chập tuyến tính, hãy xem bài viết về Convolution trên Wikipedia.
| Số lượng đầu vào | 1 |
|---|---|
| Số lượng đầu ra | 1 |
| Chế độ đếm kênh | "clamped-max" |
| Số lượng kênh | 1, 2, hoặc 4 |
| Diễn giải kênh | "speakers" |
Constructor
ConvolverNode()-
Tạo một thực thể đối tượng
ConvolverNodemới.
Thuộc tính thể hiện
Kế thừa các thuộc tính từ đối tượng cha của nó, AudioNode.
ConvolverNode.buffer-
Một
AudioBufferđơn âm, stereo hoặc 4 kênh chứa đáp ứng xung (có thể là đa kênh) đượcConvolverNodedùng để tạo hiệu ứng reverb. ConvolverNode.normalize-
Một giá trị boolean điều khiển việc đáp ứng xung từ bộ đệm có được scale bằng phép chuẩn hóa equal-power khi thuộc tính
bufferđược đặt hay không.
Phương thức thể hiện
Không có phương thức riêng; kế thừa các phương thức từ đối tượng cha của nó, AudioNode.
Ví dụ
Ví dụ sau minh họa cách sử dụng cơ bản một AudioContext để tạo một nút convolver. Bạn sẽ cần tìm một đáp ứng xung để hoàn thiện ví dụ bên dưới. Hãy xem ví dụ HolySpaceCow của chúng tôi để có một ví dụ đầy đủ và thực tế.
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);
Thông số kỹ thuật
| Specification |
|---|
| Web Audio API> # ConvolverNode> |