ConvolverNode.normalize - чи буде нормалізована імпульсної відповідь з буфера.
ConvolverNode.normalize;
ConvolverNode - об'єкт ConvolverNode.
normalize властивість об'єкту ConvolverNode яка повертає/задає логічне значення яке вказує чи використовувати нормалізацію імпульсна відповідь з буфера.
Значення true включає нормалізацію, а false виключає тоді сигнал буде виведитися без попередньої обробки / масштабування імпульсної відповіді. Зміни до цього значення не вступають в силу до наступного встановлення властивоті buffer. Значення по замовчуванню дорівнює true.
var audio=new AudioContext();
var convolver=audio.createConvolver();
alert(convolver.normalize);
var audio=new AudioContext();
var source=audio.createBufferSource();
var convolver=audio.createConvolver();
source.connect(convolver);
convolver.connect(audio.destination);
convolver.normalize=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();