Envelope 101

HTML

<input type="button" value="On" id="button">

JavaScript

$(document).ready(function(){

    var context = new AudioContext();
    var osc = context.createOscillator();
    var gain = context.createGain();
    
    osc.connect(gain);
    gain.connect(context.destination);
    osc.start(0);
    
    gain.gain.value = 0;
    
    var oscStart = function(){
    var now = context.currentTime;
    gain.gain.cancelScheduledValues( now );
    gain.gain.setValueAtTime(gain.gain.value, now);
    gain.gain.linearRampToValueAtTime(1 , now + 0.2);
    };
    
    var oscOff = function(){
    var now = context.currentTime;
    gain.gain.cancelScheduledValues( now );
    gain.gain.setValueAtTime(gain.gain.value, now);
    gain.gain.linearRampToValueAtTime(0 , now + 0.2);
    

    };
    
    $('#button').hover(oscStart , oscOff);
    
    








});