#include "pitches.h"
int buttonPin = 2;
int ledPin = 8;
int buzzerPin = 9;
#define NUM_NOTES 450
int notes[NUM_NOTES] = {
// Kumukuti-kutitap
NOTE_F5, NOTE_FS5, NOTE_FS5, NOTE_FS5, NOTE_FS5, NOTE_FS5, NOTE_A5,
// Bumubusi-busilak
NOTE_F5, NOTE_FS5, NOTE_FS5, NOTE_FS5, NOTE_FS5, NOTE_FS5, NOTE_A5,
// Ganyan ang indak ng mga bombilya
NOTE_D5, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_D6, NOTE_C6, NOTE_B5, NOTE_D5, 0,
// Kikindat-kindat, kukurap-kurap
NOTE_B5, NOTE_C6, NOTE_B5, NOTE_A5, NOTE_G5, NOTE_A5, NOTE_B5, NOTE_A5, NOTE_G5, NOTE_F5,
// Pinaglalaruan ang iyong mga mata
NOTE_G5, NOTE_G5, NOTE_G5, NOTE_G5, NOTE_G5, NOTE_G5, NOTE_E5, NOTE_A5, NOTE_A5, NOTE_B5, NOTE_FS5, NOTE_A5, 0,
// Iba't ibang palamuti
NOTE_C5, NOTE_B5, NOTE_A5, NOTE_B5, NOTE_G5, NOTE_G5, NOTE_G5, NOTE_A5, 0,
// Ating isabit sa puno
NOTE_C6, NOTE_B5, NOTE_B5, NOTE_B5, NOTE_C6, NOTE_G5, NOTE_B5, NOTE_A5, 0,
// Buhusan ng mga kulay
NOTE_F5, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_B5, 0,
// Tambakan ng mga regalo
NOTE_G5, NOTE_B5, NOTE_C6, NOTE_B5, NOTE_C6, NOTE_D6, NOTE_C6, NOTE_D6, NOTE_E6, 0,
// Tumitibok-tibok, sumisinok-sinok
NOTE_F5, NOTE_FS5, NOTE_F5, NOTE_FS5, NOTE_G5, NOTE_A5, 0, NOTE_F5, NOTE_FS5, NOTE_F5, NOTE_FS5, NOTE_G5, NOTE_A5, 0,
// 'Wag lang malundo, sa sabitin
NOTE_D5, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_D6, NOTE_C6, NOTE_B5, NOTE_D5, 0,
// Pupulupot-lupot, paikot nang paikot
NOTE_B5, NOTE_B5, NOTE_C6, NOTE_B5, NOTE_A5, NOTE_G5, NOTE_G5, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_B5, NOTE_A5,
// Koronahan ng palarang bituin
NOTE_F5, NOTE_G5, NOTE_A5, NOTE_A5, NOTE_A5, NOTE_A5, NOTE_A5, NOTE_B5, NOTE_C6, NOTE_D6, 0,
// Dagdagan mo pa ng kendi
NOTE_D6, NOTE_F5, NOTE_F5, NOTE_E5, NOTE_F5, NOTE_D6, NOTE_C6, NOTE_F5, 0,
// Ribbon eskosesa't guhitan
NOTE_C6, NOTE_B5, NOTE_B5, NOTE_A5, NOTE_B5, NOTE_C6, NOTE_G5, NOTE_B5, NOTE_A5, 0,
// Habang lalong dumadami
NOTE_F5, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_D6, NOTE_E6, NOTE_C6, NOTE_D6, 0,
// Regalo mo'y dagdagan
NOTE_A5, NOTE_C6, NOTE_C6, NOTE_D6, NOTE_C6, NOTE_D6, NOTE_E6, 0,
// Kumukuti-kutitap
NOTE_FS5, NOTE_G5, NOTE_FS5, NOTE_G5, NOTE_F5, NOTE_G5, NOTE_B5,
// Bumubusi-busilak
NOTE_F5, NOTE_G5, NOTE_FS5, NOTE_G5, NOTE_F5, NOTE_G5, NOTE_B5,
// Ganyan ang kurap ng mga bitwin
NOTE_E5, NOTE_D6, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_E6, NOTE_C6, NOTE_C6, NOTE_E5, NOTE_E5, 0,
// Tumitibok-tibok, sumisinok-sinok
NOTE_B5, NOTE_B5, NOTE_D6, NOTE_B5, NOTE_B5, NOTE_G5, 0, NOTE_A5, NOTE_B5, NOTE_C6, NOTE_B5, NOTE_G5, NOTE_F5, 0,
// Koronahan mo pa ng palarang bituin
NOTE_F5, NOTE_G5, NOTE_B5, NOTE_B5, NOTE_B5, NOTE_B5, NOTE_B5, NOTE_A5, NOTE_B5, NOTE_A5, 0, NOTE_B5, NOTE_E5,
};
int beats[NUM_NOTES] = {
1, 1, 1, 1, 1, 1, 3, // Kumukuti-kutitap
1, 1, 1, 1, 1, 1, 3, // Bumubusi-busilak
2, 1, 1, 1, 2, 1, 1, 1, 1, 3, 6, 2, // Ganyan ang indak ng mga bombilya
3, 1, 1, 1, 5, 3, 1, 1, 1, 5, // Kikindat-kindat, kukurap-kurap
1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 5, 4, // Pinaglalaruan ang iyong mga mata
1, 2, 1, 6, 1, 1, 1, 7, 2, // Iba't ibang palamuti
2, 4, 1, 2, 2, 1, 4, 8, 2, // Ating isabit sa puno
2, 3, 3, 5, 1, 1, 4, 8, 2, // Buhusan ng mga kulay
3, 1, 7, 1, 1, 5, 2, 4, 14, 6, // Tambakan ng mga regalo
1, 2, 1, 2, 1, 2, 4, 1, 2, 1, 2, 1, 2, 1, // Tumitibok-tibok, sumisinok-sinok
1, 3, 1, 1, 3, 3, 1, 4, 6, 3, // 'Wag lang malundo, sa sabitin
2, 1, 1, 2, 1, 5, 1, 2, 1, 2, 1, 2, 4, // Pupulupot-lupot, paikot nang paikot
1, 1, 2, 1, 2, 1, 1, 4, 1, 10, 2, // Koronahan ng palarang bituin
2, 1, 2, 1, 3, 3, 3, 6, 1, // Dagdagan mo pa ng kendi
3, 3, 2, 1, 2, 3, 2, 3, 6, 1, // Ribbon eskosesa't guhitan
3, 4, 2, 4, 1, 1, 2, 7, 1, // Habang lalong dumadami
2, 12, 2, 12, 2, 1, 14, 4, // Regalo mo'y dagdagan
1, 1, 1, 1, 1, 1, 3, // Kumukuti-kutitap
1, 1, 1, 1, 1, 1, 3, // Bumubusi-busilak
1, 3, 2, 1, 3, 2, 1, 1, 1, 5, 1, // Ganyan ang kurap ng mga bituin
1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, // Tumitibok-tibok, sumisinok-sinok
1, 1, 3, 2, 1, 3, 2, 1, 1, 10, 4, 6, 14, // Koronahan mo pa ng palarang bituin
};
int beat_length = 105;
void setup() {
pinMode(buzzerPin, OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
}
void ourTone(int freq, int duration) {
tone(buzzerPin, freq, duration);
delay(duration);
}
void loop() {
int buttonState = digitalRead(buttonPin);
if (buttonState == LOW) {
for (int i = 0; i < NUM_NOTES; i++) {
int pauseBetweenNotes = beat_length * 1.10;
delay(pauseBetweenNotes);
if (notes[i] == 1) {
delay(beats[i] * beat_length);
} else if (notes[i] == 0) {
delay(beats[i] * beat_length);
}
else {
ourTone(notes[i], beats[i] * beat_length);
}
}
noTone(buzzerPin);
delay(beat_length / 2);
}
}