JSFiddle - React, Tailwind, and code Playground
JavaScript
var audioContext = new(window.AudioContext || window.webkitAudioContext)();
var gainNode = audioContext.createGain();
gainNode.connect(audioContext.destination);
var oscillator = audioContext.createOscillator();
oscillator.frequency.value = 440;
oscillator.connect(gainNode);
oscillator.start();
gainNode.gain.value = 1;
//gainNode.gain.setValueAtTime( 1, audioContext.currentTime);
var rampTime = 1; // in seconds
gainNode.gain.linearRampToValueAtTime(0, audioContext.currentTime + rampTime);
var logCountdown = 10;
var intervalTimer = setInterval(function() {
console.log('countdown = ' + logCountdown);
console.log('gain = ' + gainNode.gain.value);
logCountdown--;
if (logCountdown < 0) {
clearInterval(intervalTimer);
}
}, (rampTime * 1000) / logCountdown);