let context;
async function initiate() {
  let mybuffers;
  const button = document.getElementById("button");
  button.addEventListener("click", function() {
    play(mybuffers);
  });
  context = new AudioContext();

  try {
    const buffer1 = await loadbuffer("gunshot.wav");
    const buffer2 = await loadbuffer("garage.wav");
    mybuffers = [buffer1, buffer2];
    button.disabled = false;
  } catch (error) {
    console.error(error);
  }
}
async function loadbuffer(url) {
  const response = await fetch(url);
  if (!response.ok) {
    throw new Error("HTTP error: " + response.status);
  }
  const arraybuffer = await response.arrayBuffer();
  const decodedata = await context.decodeAudioData(arraybuffer);
  return decodedata;
}
function play(mybuffers) {
  const sourceNode = context.createBufferSource();
  sourceNode.buffer = mybuffers[0];

  const convolverNode = context.createConvolver();
  convolverNode.buffer = mybuffers[1];

  sourceNode.connect(convolverNode);
  convolverNode.connect(context.destination);
  sourceNode.start(0);
}
window.addEventListener("DOMContentLoaded", initiate);