// triplets

int buz = 6, rest = 80, 
    led[] = { 5, 3, 2}, // red, grn, blu
    a3 = 220, b3 = 247, 
    c4 = 262, d4 = 294, e4 = 330, f4 = 349, g4 = 392, a4 = 440, b4 = 494, 
    c5 = 523, d5 = 587;

int triplet[] = { // key
  a3, c4, e4,  // Am
  b3, d4, f4,  // B
  c4, e4, g4,  // C
  d4, f4, a4,  // Dm
  e4, g4, b4,  // Em
  f4, a4, c5,  // F
  g4, b4, d5,  // G
};

void setup() {
  randomSeed(analogRead(A0));
  Serial.begin(115200);
  pinMode(buz, OUTPUT);
  for (int i = 0; i < 3; i++)
    pinMode(led[i], OUTPUT);
}

void loop() {
  aria();
}

void aria() {
  int key = random(7);
  for (int j = 0; j < 4; j++) {
    for (int note = 0; note < 3; note++) {
      digitalWrite(led[0], note == 0);
      digitalWrite(led[1], note == 1);
      digitalWrite(led[2], note == 2);
      tone(buz, triplet[key * 3 + note], rest);
      delay(rest);
      noTone(buz);
      delay(rest);
    }
  }
}

void blues() { 
}

void fire () {
  // e5, a5, f5, a5, g5, a5
  // gdb gdb gd fda fda fd fda fda fd eca eca ec
  // e, g, a, b, e
}