// https://forum.arduino.cc/t/use-metronome-in-mozzi/1111957
// https://wokwi.com/projects/361300417746421761
int myBeats[64];
void setup() {
Serial.begin(115200);
Serial.println("Euclidean World!");
Serial.println();
int theLength = 13;
int theStep = 4;
fillBeat(myBeats, theLength, theStep);
for (int ii = 0; ii < theLength; ii++)
Serial.print(myBeats[ii]); Serial.print(" ");
Serial.println();
Serial.println();
delay(777);
}
unsigned long nexttick;
unsigned int speed0 = 777;
unsigned int speed1 = 1300;
void loop() {
// blink without delay pattern 0:
unsigned long timenow = millis();
if (timenow >= nexttick) {
nexttick = millis() + speed0;
Serial.println("ZERO");
}
// blink without delay pattern 1:
static unsigned long lastTime;
unsigned long now = millis();
if (now - lastTime >= speed1) {
lastTime = now;
// do stuff periodically (every speed0 milliseconds)
Serial.println(" ONE");
}
}
int fillBeat(int beat[], int len, int step) {
int ii, jj, kk;
kk = (-1 * step) % len;
for (ii = 0; ii < len; ii++) {
kk = jj;
jj = (ii * step) % len;
beat[ii] = jj <= kk;
// if (jj > kk) beat[ii] = 0;
// else if (jj <= kk) beat[ii] = 1;
}
}