JSFiddle - React, Tailwind, and code Playground

by Chinmay Pendharkar

HTML

<button type="button" id="button1">Good</button>

JavaScript

window.AudioContext = window.AudioContext || window.webkitAudioContext;
var context = new AudioContext();
var noiseGain = context.createGain();
var oscillator = context.createOscillator();
var oscillator2 = context.createOscillator();
var delay = context.createDelay();
var leftDelay = context.createDelay();
var rightDelay = context.createDelay();
var feedback = context.createGain();
var merger = context.createChannelMerger(2);

oscillator.type = 'sine';

oscillator.start(context.currentTime);
oscillator2.start(context.currentTime);
noiseGain.gain.value = 0;

leftDelay.delayTime.value = 0.1;
rightDelay.delayTime.value = 0.1;

leftDelay.connect(rightDelay);
leftDelay.connect(merger, 0, 0);
rightDelay.connect(merger, 0, 1);
merger.connect(noiseGain);

oscillator.connect(feedback);
oscillator2.connect(feedback);
feedback.connect(leftDelay);
rightDelay.connect(feedback);

feedback.gain.value = 0.6;
leftDelay.connect(rightDelay);
noiseGain.connect(context.destination);

oscillator2.frequency.value = 50;

function time() {

  noiseGain.gain.setValueAtTime(0, context.currentTime);
  noiseGain.gain.linearRampToValueAtTime(0.8, context.currentTime + 0.2);
  noiseGain.gain.linearRampToValueAtTime(0.0, context.currentTime + 0.5);

}

function goodPSIglobal() {

  console.log("PSI Level < 50");
  oscillator.frequency.value = 523.25;
  oscillator2.frequency.value = 329.63;

//  source = context.createBufferSource();
//  source.buffer = myAudioBuffer;
//  source.connect(sampleGain);
  // source.start();

  //time();
  noiseGain.gain.value = 1;
  
}

var btnOne = document.getElementById('button1');
btnOne.addEventListener('click', goodPSIglobal);