JSFiddle - React, Tailwind, and code Playground

HTML

frequency modulation test<br>
<button id="start">start</button>

CSS

body {
    font-size: 25px;
}

JavaScript

var context;
if (typeof AudioContext !== "undefined") {
    context = new AudioContext();
} else if (typeof webkitAudioContext !== "undefined") {
    /*jshint newcap:false*/
    context = new webkitAudioContext();
} else {
    window.alert("WebAudio isn't supported in this browser yet :-(");
    throw new Error('AudioContext not supported. :(');
}

var mod, modGain, osc;

var out = context.destination;

var startTest = function(){
    mod = context.createOscillator();
    mod.frequency.value = 1;
    
    modGain = context.createGain();
    modGain.gain.value = 10;

    oscGain = context.createGain();
    oscGain.gain.value = 1;
    
    osc = context.createOscillator();
    osc.frequency.value = 200;
    

		mod.connect(modGain);
    modGain.connect(oscGain.gain);
    //modGain.connect(osc.frequency);
    
    osc.connect(oscGain);
    oscGain.connect(out);

    osc.start(0);
    mod.start(0);
};

var stopTest = function(){
    osc.stop(0);
    mod.stop(0);
    mod = modGain = osc = null;
};

// UI

var started = false;
document.getElementById("start").onclick = function(){
    if (started) {
        this.innerHTML = "start";
        started = false;
        stopTest();
    } else {
        this.innerHTML = "stop";
        started = true;
        startTest();
    }
};