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

for (var i=0 ; i<beats.length ; i++) {
    if(i==0){
        diffBeats.push('ON');
    } else {
        var rests = (beats[i]/gcd == 0) ? 0 : beats[i]/gcd-1 ;
        alert(rests)
        for (var j= 0 ; j<rests ; j++) {
            diffBeats.push('OFF');
        }
        diffBeats.push('ON');
    }
}

alert(diffBeats);