Oscillator a Bar works VINCENT

by Ehsan Ziya

JavaScript

var context = new webkitAudioContext();
var tempo = 120;
var releaseTime = 0.1;
var secondsPerBeat = 60.0 / tempo;
var startTime;
var eachBarMS = (secondsPerBeat * 1000)*4;

var now = context.currentTime;
//var i = 0, startTime=0, osc = null;

// 1 bar = 4 beats

var osc = function(i){
    //update NOW
    var now = context.currentTime;
    
    var osc = context.createOscillator();
    osc.connect(context.destination);
    //Calculate start time for each osc
    startTime = now + (i*secondsPerBeat);
    //Calculate stop time
    stopTime = startTime + releaseTime;
    osc.start(startTime);
    osc.stop(stopTime);
    
}

var _1bar = function(){
    for(var i = 0; i < 4; i++) {
        osc(i);
    }
}

setInterval(_1bar,eachBarMS);