static const uint16_t PROGMEM music[] = { // Tone pitch (Hz), Tone Duration (ms), Tone Delay (ms)
147, 90, 90,
165, 90, 90,
110, 50, 90,
110, 50, 90,
110, 180, 180,
196, 90, 90,
220, 90, 90,
110, 115, 180,
110, 50, 90,
110, 50, 90,
104, 180, 180,
196, 90, 90,
208, 90, 90,
104, 115, 180,
104, 50, 90,
104, 50, 90,
98, 115, 180,
98, 90, 90,
196, 90, 90,
98, 115, 180,
98, 50, 90,
98, 50, 90,
104, 115, 180,
208, 115, 180,
104, 115, 180,
104, 50, 90,
104, 50, 90,
110, 180, 180,
196, 90, 90,
220, 90, 90,
147, 90, 90,
165, 90, 90,
110, 50, 90,
110, 50, 90,
110, 115, 180,
110, 50, 90,
110, 115, 180,
110, 50, 90,
110, 50, 90,
110, 50, 90,
110, 50, 90,
147, 90, 90,
165, 90, 90,
196, 90, 90,
220, 90, 90,
110, 50, 90,
110, 50, 90,
110, 50, 90,
110, 50, 90,
196, 90, 90,
220, 90, 90,
110, 50, 90,
147, 90, 90,
165, 90, 90,
110, 160, 180,
0xFFFF, 4, 0, // Jump to note 4 (sequence starts at note 0), which is the first note in the main sequence
};
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
for (int i = 0; i < sizeof(music) / sizeof(uint16_t); i+=3) {
if (pgm_read_word_near(music+i) == 0xFFFF) { delay(pgm_read_word_near(music+i+2)); i = pgm_read_word_near(music+i+1) * 3; }
tone(13, pgm_read_word_near(music+i), pgm_read_word_near(music+i+1));
delay(pgm_read_word_near(music+i+2));
noTone(13);
}
delay(2000);
}