ConvolverNode.buffer - AudioBuffer який використовується для використовується для створення ефекту реверберації.
ConvolverNode.buffer;
ConvolverNode - об'єкт ConvolverNode.
buffer властивість об'єкту ConvolverNode якій присвоюється моно, стерео або 4-канальний AudioBuffer який використовується для використовується для створення ефекту реверберації звуку.
var audio=new AudioContext();
var source=audio.createBufferSource();
var convolver=audio.createConvolver();
source.connect(convolver);
convolver.connect(audio.destination);
convolver.loop=true;
//функція для створення імпусного звуку
function impulseResponse(duration, decay, revers){
var sampleRate = audio.sampleRate;
var length=sampleRate*duration;
var impulse=audio.createBuffer(2, length,sampleRate);
var impulseL = impulse.getChannelData(0);
var impulseR = impulse.getChannelData(1);
if(!decay)decay = 2.0;
for(var i=0;i<length;i++){
var n = revers?length-i:i;
impulseL[i]=(Math.random()*2-1)* Math.pow(1-n/length, decay);
impulseR[i]=(Math.random()*2-1)* Math.pow(1-n/length,decay);
}
return impulse;
}
convolver.buffer=impulseResponse(2,2,false); //присвоюємо імпульсний звук для реверберації звуку
//завантажуємо основнуй звук
var ajax=new XMLHttpRequest();
ajax.open('get', '/dani/test.ogg', true);
ajax.responseType='arraybuffer';
ajax.onload=function(){
audio.decodeAudioData(this.response, function(decodedata){
source.buffer=decodedata;
source.start(0); //починаємо відтворення
});
}
ajax.send();