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);