//#include "pitches.h"
#include "ezBuzzer.h"
#define SPEAKER_PIN 8
#define CONTROL_LED_PIN 13
#ifndef ARRAY_SIZE
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
#endif
ezBuzzer buzzer(SPEAKER_PIN);
byte dummyCounter = 0;
byte controlLedState = 0;
int songGoldWin[] = {
NOTE_E5,
NOTE_G5,
NOTE_A5,
NOTE_A5,
PAUSE,
NOTE_A5,
NOTE_B5,
NOTE_C6,
NOTE_C6,
PAUSE,
NOTE_C6,
NOTE_D6,
NOTE_B5,
NOTE_B5,
PAUSE,
NOTE_A5,
NOTE_G5,
NOTE_A5,
PAUSE,
NOTE_E5,
NOTE_G5,
NOTE_A5,
NOTE_A5,
PAUSE,
NOTE_A5,
NOTE_C6,
NOTE_D6,
NOTE_D6,
PAUSE,
NOTE_D6,
NOTE_E6,
NOTE_F6,
NOTE_F6,
PAUSE,
NOTE_E6,
NOTE_D6,
NOTE_E6,
NOTE_A5,
PAUSE,
NOTE_A5,
NOTE_B5,
NOTE_C6,
NOTE_C6,
PAUSE,
NOTE_D6,
NOTE_E6,
NOTE_A5,
PAUSE,
};
byte songGoldWinDurations[] = {
16,
16,
8,
16,
16,
16,
16,
8,
16,
16,
16,
16,
8,
16,
16,
16,
16,
4,
16,
16,
16,
8,
16,
16,
16,
16,
8,
16,
16,
16,
16,
8,
16,
16,
16,
16,
16,
8,
16,
16,
16,
8,
16,
16,
8,
16,
8,
16,
};
int songSilverWin[] = { // PACMAN
NOTE_B4, NOTE_B5, NOTE_FS5, NOTE_DS5, // 1
NOTE_B5, NOTE_FS5, NOTE_DS5, NOTE_C5, NOTE_C6, NOTE_G6,
NOTE_E6, NOTE_C6, NOTE_G6, NOTE_E6,
NOTE_B4, NOTE_B5, NOTE_FS5, NOTE_DS5, NOTE_B5, // 2
NOTE_FS5, NOTE_DS5, NOTE_DS5, NOTE_E5, NOTE_F5, NOTE_F5,
NOTE_FS5, NOTE_G5, NOTE_G5, NOTE_GS5, NOTE_A5, NOTE_B5};
byte songSilverWinDurations[] = {16, 16, 16, 16, 34, 24, 8, 16, 16, 16, 16,
32, 34, 8, 16, 16, 16, 16, 32, 34, 8, 32,
32, 32, 32, 32, 32, 32, 32, 16, 8};
int songChangeMode[] = {NOTE_F5, NOTE_C6, NOTE_F5, NOTE_C6, NOTE_F5,
NOTE_C6, NOTE_F5, NOTE_C6, NOTE_F6};
byte songChangeModeDurations[] = {16, 16, 16, 16, 16, 16, 16, 16, 8};
int songPlatinumWin[] = {
// Pur Ellisa
NOTE_E5, NOTE_DS5, // 1
NOTE_E5, NOTE_DS5, NOTE_E5, NOTE_B4, NOTE_D5, NOTE_C5,
NOTE_A4, NOTE_C4, NOTE_E4, NOTE_A4, NOTE_B4, NOTE_E4,
NOTE_GS4, NOTE_B4, NOTE_C5, PAUSE, NOTE_E4,
NOTE_E5, NOTE_DS5, NOTE_E5, NOTE_DS5, NOTE_E5, NOTE_B4,
NOTE_D5, NOTE_C5, // 6
NOTE_A4, NOTE_C4, NOTE_E4, NOTE_A4, NOTE_B4, NOTE_E4,
NOTE_C5, NOTE_B4,
NOTE_A4, // 9 - 1st ending
};
byte songPlatinumWinDurations[] = {
10, 10, 10, 10, 10, 10, 10, 10, 4, 10, 10, 10, 4, 10, 10, 10, 2, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 4, 10, 10, 10, 4, 10, 10, 10, 2};
// FUNCTIONS
//////////////////////////////////////////////////////////////////////
void play() {
int length = ARRAY_SIZE(songPlatinumWin);
buzzer.stop();
buzzer.playMelody(songPlatinumWin, songPlatinumWinDurations, length);
}
void setup() {
pinMode(SPEAKER_PIN, OUTPUT);
pinMode(CONTROL_LED_PIN, OUTPUT);
play();
}
void loop() {
buzzer.loop();
// Dummy code to test that the async melody.
dummyCounter++;
if (dummyCounter % 10 == 0) {
controlLedState = digitalRead(CONTROL_LED_PIN);
digitalWrite(CONTROL_LED_PIN, !controlLedState);
}
delay(35);
}