// Define the frequencies for each note (in Hz)
#define NOTE_C4  261
#define NOTE_D4  294
#define NOTE_E4  329
#define NOTE_F4  349
#define NOTE_G4  392
#define NOTE_A4  440
#define NOTE_B4  494
#define NOTE_C5  523

// Define the durations for each note (in milliseconds)
#define DURATION_QUARTER 250
#define DURATION_HALF 500
#define DURATION_WHOLE 1000

void setup() {
  pinMode(6, OUTPUT);
}

void loop() {
  // Play first tune (C major scale)
  playTune(NOTE_C4, DURATION_QUARTER);
  playTune(NOTE_D4, DURATION_QUARTER);
  playTune(NOTE_E4, DURATION_QUARTER);
  playTune(NOTE_F4, DURATION_QUARTER);
  playTune(NOTE_G4, DURATION_QUARTER);
  playTune(NOTE_A4, DURATION_QUARTER);
  playTune(NOTE_B4, DURATION_QUARTER);
  playTune(NOTE_C5, DURATION_WHOLE);

  // Pause between tunes
  delay(1000);

  // Play second tune (Mary Had a Little Lamb)
  playTune(NOTE_E4, DURATION_QUARTER);
  playTune(NOTE_D4, DURATION_QUARTER);
  playTune(NOTE_C4, DURATION_QUARTER);
  playTune(NOTE_D4, DURATION_QUARTER);
  playTune(NOTE_E4, DURATION_QUARTER);
  playTune(NOTE_E4, DURATION_QUARTER);
  playTune(NOTE_E4, DURATION_HALF);
  playTune(NOTE_D4, DURATION_QUARTER);
  playTune(NOTE_D4, DURATION_HALF);
  playTune(NOTE_D4, DURATION_QUARTER);
  playTune(NOTE_E4, DURATION_QUARTER);
  playTune(NOTE_E4, DURATION_QUARTER);
  playTune(NOTE_E4, DURATION_HALF);
  playTune(NOTE_E4, DURATION_QUARTER);
  playTune(NOTE_D4, DURATION_QUARTER);
  playTune(NOTE_C4, DURATION_QUARTER);
  playTune(NOTE_D4, DURATION_QUARTER);
  playTune(NOTE_E4, DURATION_QUARTER);
  playTune(NOTE_E4, DURATION_QUARTER);
  playTune(NOTE_E4, DURATION_QUARTER);
  playTune(NOTE_E4, DURATION_QUARTER);
  playTune(NOTE_D4, DURATION_QUARTER);
  playTune(NOTE_D4, DURATION_QUARTER);
  playTune(NOTE_E4, DURATION_QUARTER);
  playTune(NOTE_D4, DURATION_QUARTER);
  playTune(NOTE_C4, DURATION_HALF);

  // Pause between tunes
  delay(1000);

  // Play third tune (Random sequence)
  playTune(NOTE_C4, DURATION_HALF);
  playTune(NOTE_E4, DURATION_HALF);
  playTune(NOTE_G4, DURATION_HALF);
  playTune(NOTE_A4, DURATION_HALF);
  playTune(NOTE_G4, DURATION_HALF);
  playTune(NOTE_E4, DURATION_HALF);
  playTune(NOTE_C4, DURATION_HALF);

  // Pause between tunes
  delay(1000);

  // Play fourth tune
  playTune(NOTE_E4, DURATION_QUARTER);
  playTune(NOTE_G4, DURATION_QUARTER);
  playTune(NOTE_F4, DURATION_QUARTER);
  playTune(NOTE_C4, DURATION_QUARTER);
  playTune(NOTE_D4, DURATION_QUARTER);
  playTune(NOTE_A4, DURATION_QUARTER);
  playTune(NOTE_B4, DURATION_QUARTER);
  playTune(NOTE_E4, DURATION_WHOLE);

  // Pause between tunes
  delay(1000);

  // Play fifth tune
  playTune(NOTE_C4, DURATION_HALF);
  playTune(NOTE_D4, DURATION_HALF);
  playTune(NOTE_E4, DURATION_HALF);
  playTune(NOTE_F4, DURATION_HALF);
  playTune(NOTE_G4, DURATION_HALF);
  playTune(NOTE_A4, DURATION_HALF);
  playTune(NOTE_B4, DURATION_HALF);
  playTune(NOTE_C5, DURATION_HALF);

  // Pause between tunes
  delay(1000);

  // Play sixth tune
  playTune(NOTE_E4, DURATION_QUARTER);
  playTune(NOTE_A4, DURATION_QUARTER);
  playTune(NOTE_C4, DURATION_QUARTER);
  playTune(NOTE_B4, DURATION_QUARTER);
  playTune(NOTE_G4, DURATION_QUARTER);
  playTune(NOTE_D4, DURATION_QUARTER);
  playTune(NOTE_E4, DURATION_QUARTER);
  playTune(NOTE_F4, DURATION_WHOLE);
}

// Function to play a note
void playTune(int frequency, int duration) {
  tone(6, frequency, duration);
  delay(duration + 50); // Add a small delay to distinguish between consecutive notes
  noTone(6);
}
nano:12
nano:11
nano:10
nano:9
nano:8
nano:7
nano:6
nano:5
nano:4
nano:3
nano:2
nano:GND.2
nano:RESET.2
nano:0
nano:1
nano:13
nano:3.3V
nano:AREF
nano:A0
nano:A1
nano:A2
nano:A3
nano:A4
nano:A5
nano:A6
nano:A7
nano:5V
nano:RESET
nano:GND.1
nano:VIN
nano:12.2
nano:5V.2
nano:13.2
nano:11.2
nano:RESET.3
nano:GND.3
bz1:1
bz1:2