JSFiddle - React, Tailwind, and code Playground
by chrisfrisina
JavaScript
var mdc = function(o){
if(!o.length)
return 0;
for(var r, a, i = o.length - 1, b = o[i]; i;)
for(a = o[--i]; r = a % b; a = b, b = r);
return b;
};
var diffBeats = [];
var beats = [ 0, 800, 200, 1000, 800, 700 ];
//var beats = [ 0, 800, 200, 1000, 800, 800 ];
var gcd = mdc(beats);
alert(gcd);
var i = 0;
do {
if(i=0){
diffBeats.push('ON');
} else {
if (beats[i]/gcd == 0) {
var rests = 0;
} else {
var rests = (beats[i]/gcd)-1;
}
for (var j= 0 ; j<rests ; j++) {
diffBeats.push('OFF');
}
diffBeats.push('ON');
}
i += 1;
} while (i<beats.length);
alert(diffBeats);