
Introduction
The following article is written in order to demonstrate how my arduino libraries libRtttl & AnyRtttl can be used to convert arduino code (tone()
and delay()
functions calls) into actual RTTTL melodies.
This article shows how to convert ‘Game of Throne theme’, ‘Star Wars - The imperial March’ and most Super Mario Bros. sound themes (Main theme, 1-up life sound, Flagpole fanfare, Death and Game Over sounds) into actual playable RTTTL melodies.
Methodology
The basic idea is to convert the code to their lowest common denominator which is tone frequencies and duration (delays). The libRtttl gui program has build-it functionnality to extract the frequencies and delays from arduino code. Using the application, one can convert any melody to RTTTL.
Handling structured or logical code
Some programs are written in an optimized fashion where reapeated sections of a melody are extracted into a function. ie: playRefrain()
. The function is then called multiple times to play the whole melody. This method is an effective way to reduce code size but libRtttl gui is unable to parse this code.
Other programs could also use tone()
or delay()
calls using Constants
. A typical usage of this method is to use predefined note names for frequencies which makes the code easier to read. However, constants are also hard to extract by libRtttl gui which does not yet support this feature.
The following code shows the usage of note names as arguments to the tone()
function:
tone(8,LA4,Q);
delay(1+Q);
tone(8,LA3,E+S);
delay(1+E+S);
To hande these kind of program, the following code can be added at the beginning of the program. This code will output all calls to the tone()
and delay()
functions to the serial port.
//silence all analogWrite calls
#define analogWrite dummyAnalogWrite
void dummyAnalogWrite(int pin, int value)
{
}
//output function calls to serial port
void serialTone(byte pin, uint16_t frequency, uint32_t duration) {
Serial.print("tone(");
Serial.print(pin);
Serial.print(",");
Serial.print(frequency);
Serial.print(",");
Serial.print(duration);
Serial.println(");");
}
void serialNoTone(byte pin) {
Serial.print("noTone(");
Serial.print(pin);
Serial.println(");");
}
void serialDelay(uint32_t duration) {
Serial.print("delay(");
Serial.print(duration);
Serial.println(");");
}
#define tone serialTone
#define delay serialDelay
#define noTone serialNoTone
Note that the code above is later refered to as “Arduino tone and delay functions overrides”.
Samples
The following section shows example of using libRtttl gui to convert arduino code (tone()
and delay()
functions calls) into actual RTTTL melodies.
Game of Throne
Source code:
- Youtube: http://www.youtube.com/watch?v=vrzQU_QbQ5U
- Code from pastebin: http://pastebin.com/q76D0asp
- Cache version here: FULL Game of Thrones Theme Song on Arduino
Modify the code by adding the “Arduino tone and delay functions overrides” to the code. Once done, the code should be looking like this:
////////////////////////////////////////////////////////////////////////
//
// GAME OF THRONES THEME SONG
// PERFORMED ON PIEZO SENSOR AND 3 LEDS
// WRITTEN BY
// KALEB HILL
// 5/28/15
//
////////////////////////////////////////////////////////////////////////
//https://www.youtube.com/watch?v=vrzQU_QbQ5U
int ledred = 9; // the pin that the LED is attached to
int ledblue = 10;
int ledgreen = 5;
int brightness = 255; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
//project's contants
#define BUZZER_OUT_PIN 8
//silence all analogWrite calls
#define analogWrite dummyAnalogWrite
void dummyAnalogWrite(int pin, int value)
{
}
//output function calls to serial port
void serialTone(byte pin, uint16_t frequency, uint32_t duration) {
Serial.print("tone(");
Serial.print(pin);
Serial.print(",");
Serial.print(frequency);
Serial.print(",");
Serial.print(duration);
Serial.println(");");
}
void serialNoTone(byte pin) {
Serial.print("noTone(");
Serial.print(pin);
Serial.println(");");
}
void serialDelay(uint32_t duration) {
Serial.print("delay(");
Serial.print(duration);
Serial.println(");");
}
#define tone serialTone
#define delay serialDelay
#define noTone serialNoTone
// the setup routine runs once when you press reset:
void setup() {
// declare pin 9 to be an output:
//pinMode(ledred, OUTPUT);
//pinMode(ledblue, OUTPUT);
//pinMode(ledgreen, OUTPUT);
pinMode(BUZZER_OUT_PIN, OUTPUT);
Serial.begin(115200);
}
// the loop routine runs over and over again forever:
void loop (){
Serial.println("START");
//G3
analogWrite(ledred, 255);
analogWrite(ledblue, 255);
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
////////////////////////////////ONE
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
////////////////////////////////TWO
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
//////////////////////////////THREE
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
///////////////////////////////FOUR
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
///////////////////////////////FIVE
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//E3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 165, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
///////////////////////////////SIX
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
//////////////////////////////SEVEN
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//E3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 165, 175);
delay(200);
analogWrite(ledblue, LOW);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
analogWrite(ledred, LOW);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
//////////////////////////////EIGHT
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
/////////////////////////////////////////////////CHORUS1////////////////////////////////////////////
//G4
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 392, 1175);
delay(1200);
analogWrite(ledred, LOW);
//C4
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 262, 1175);
delay(1200);
analogWrite(ledblue, LOW);
//DS4
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 311, 175);
delay(200);
//F4
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 349, 175);
delay(200);
//G4
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 392, 775);
delay(800);
//C4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 262, 775);
delay(800);
//DS4
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 311, 175);
delay(200);
//F4
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 349, 175);
delay(200);
//////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
///////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
/////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
/////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
while(brightness > 0)
{
analogWrite(ledred, brightness);
analogWrite(ledblue, brightness);
analogWrite(ledgreen, brightness);
brightness = brightness - fadeAmount;
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
}
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
brightness = 255;
fadeAmount = 5;
//F4
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 349, 1175);
delay(1200);
analogWrite(ledred, LOW);
//AS4
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 233, 1175);
delay(1200);
analogWrite(ledblue, LOW);
//D4
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 294, 175);
delay(200);
//DS4
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 311, 175);
delay(200);
//F4
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 349, 775);
delay(800);
//AS3
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 233, 775);
delay(800);
//DS4
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 311, 175);
delay(200);
//D4
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 294, 175);
delay(200);
//////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
///////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
/////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
/////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
/////////////////////////////////////////////////CHORUS2////////////////////////////////////////////
//G5
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 392, 1175);
delay(1200);
analogWrite(ledred, LOW);
//C4
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 262, 1175);
delay(1200);
analogWrite(ledblue, LOW);
//DS4
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 311, 175);
delay(200);
//F4
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 349, 175);
delay(200);
//G4
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 392, 775);
delay(800);
//C4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 262, 775);
delay(800);
//DS4
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 311, 175);
delay(200);
//F4
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 349, 175);
delay(200);
//////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
///////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
/////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
/////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
while(brightness > 0)
{
analogWrite(ledred, brightness);
analogWrite(ledblue, brightness);
analogWrite(ledgreen, brightness);
brightness = brightness - fadeAmount;
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
}
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
brightness = 255;
fadeAmount = 5;
//////////////////////////////////////////
//F4
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 349, 1175);
delay(1200);
analogWrite(ledred, LOW);
//AS4
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 233, 1175);
delay(1200);
analogWrite(ledblue, LOW);
//D4
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 294, 175);
delay(200);
//DS4
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 311, 175);
delay(200);
//F4
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 349, 775);
delay(800);
//AS3
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 233, 775);
delay(800);
//DS4
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 311, 175);
delay(200);
//D4
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 294, 175);
delay(200);
//////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
///////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
/////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
/////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
/////////////////////////////////////////////////CHORUS3////////////////////////////////////////////
//G5
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 784, 1175);
delay(1200);
analogWrite(ledred, LOW);
//C5
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 523, 1175);
delay(1200);
analogWrite(ledblue, LOW);
//DS5
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 622, 175);
delay(200);
//F5
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 698, 175);
delay(200);
//G5
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 784, 775);
delay(800);
//C5
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 523, 775);
delay(800);
//DS5
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 622, 175);
delay(200);
//F5
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 698, 175);
delay(200);
//////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
///////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
/////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
/////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
while(brightness > 0)
{
analogWrite(ledred, brightness);
analogWrite(ledblue, brightness);
analogWrite(ledgreen, brightness);
brightness = brightness - fadeAmount;
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
}
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
brightness = 255;
fadeAmount = 5;
////////////////////////////////
//F5
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 698, 1175);
delay(1200);
analogWrite(ledred, LOW);
//AS4
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 466, 1175);
delay(1200);
analogWrite(ledblue, LOW);
//D5
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 587, 575);
delay(600);
//DS5
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 622, 575);
delay(600);
//D5
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 587, 575);
delay(600);
//AS4
tone(BUZZER_OUT_PIN, 466, 575);
delay(600);
///////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
///////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
/////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
/////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
while(brightness > 0)
{
analogWrite(ledred, brightness);
analogWrite(ledblue, brightness);
analogWrite(ledgreen, brightness);
brightness = brightness - fadeAmount;
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
}
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
brightness = 255;
fadeAmount = 5;
//////////////////////////////////////////////////////////////////////////////////////////
//C5
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 523, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
///////////
//C5
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 523, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
///////////////////////////////////////////
//AS4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 466, 375);
delay(400);
//D3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 147, 175);
delay(200);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 175, 375);
delay(400);
/////////
//AS4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 466, 375);
delay(400);
//D3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 147, 175);
delay(200);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 175, 375);
delay(400);
//////////////////////////////////////////
//GS4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 415, 375);
delay(400);
//C3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 131, 175);
delay(200);
//D3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 147, 175);
delay(200);
//DS3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 156, 375);
delay(400);
//////////
//GS4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 415, 375);
delay(400);
//C3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 131, 175);
delay(200);
//D3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 147, 175);
delay(200);
//DS3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 156, 375);
delay(400);
/////////////////////////////////////////
//G4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 392, 375);
delay(400);
//AS2
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 117, 175);
delay(200);
//C3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 131, 175);
delay(200);
//D3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 147, 375);
delay(400);
///////////
//G4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 392, 375);
delay(400);
//AS2
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 117, 175);
delay(200);
//C3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 131, 175);
delay(200);
//D3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 147, 375);
delay(400);
/////////////////////////////////////////
//DS4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 311, 375);
delay(400);
//G2
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 98, 175);
delay(200);
//GS2
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 104, 175);
delay(200);
//AS2
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 117, 375);
delay(400);
///////////
//DS4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 311, 375);
delay(400);
//G2
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 98, 175);
delay(200);
//GS2
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 104, 175);
delay(200);
//AS2
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 117, 375);
delay(400);
//////////////////////////////////////////
//DS4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 311, 375);
delay(400);
//G2
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 98, 175);
delay(200);
//G2
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 98, 175);
delay(200);
//DS4
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 311, 375);
delay(400);
//F4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 349, 775);
delay(400);
//GS2
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 104, 175);
delay(200);
//GS2
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 104, 175);
delay(200);
//F4
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 349, 375);
delay(400);
//////////////////////////////////////////
//C4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 262, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
///////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
//C3
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
//C3
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
//C5
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 523, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
///////////
//C5
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 523, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
///////////////////////////////////////////
//AS4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 466, 375);
delay(400);
//D3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 147, 175);
delay(200);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 175, 375);
delay(400);
/////////
//AS4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 466, 375);
delay(400);
//D3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 147, 175);
delay(200);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 175, 375);
delay(400);
//////////////////////////////////////////
//GS4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 415, 375);
delay(400);
//C3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 131, 175);
delay(200);
//D3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 147, 175);
delay(200);
//DS3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 156, 375);
delay(400);
//////////
//GS4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 415, 375);
delay(400);
//C3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 131, 175);
delay(200);
//D3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 147, 175);
delay(200);
//DS3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 156, 375);
delay(400);
/////////////////////////////////////////
//G4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 392, 375);
delay(400);
//AS2
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 117, 175);
delay(200);
//C3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 131, 175);
delay(200);
//D3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 147, 375);
delay(400);
///////////
//G4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 392, 375);
delay(400);
//AS2
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 117, 175);
delay(200);
//C3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 131, 175);
delay(200);
//D3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 147, 375);
delay(400);
/////////////////////////////////////////
//DS4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 311, 375);
delay(400);
//G2
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 98, 175);
delay(200);
//GS2
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 104, 175);
delay(200);
//AS2
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 117, 375);
delay(400);
///////////
//DS4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 311, 375);
delay(400);
//G2
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 98, 175);
delay(200);
//GS2
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 104, 175);
delay(200);
//AS2
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 117, 375);
delay(400);
//////////////////////////////////////////
//DS4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 311, 775);
delay(800);
//DS4
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 311, 375);
delay(400);
//D4
analogWrite(ledred, LOW);
tone(BUZZER_OUT_PIN, 294, 775);
delay(800);
//D4
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 294, 375);
delay(400);
//////////////////////////////////////////
//C4
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 262, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
///////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
/////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
///////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS3
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 156, 175);
delay(200);
//F3
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 175, 175);
delay(200);
//G3
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 196, 375);
delay(400);
////////////////////////////////////////////////
//C3
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 131, 375);
delay(400);
//DS5
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 622, 175);
delay(200);
//F5
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 698, 175);
delay(200);
//G5
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 784, 375);
delay(400);
/////////////////////////////////////////////////
//C5
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 523, 375);
delay(400);
//DS5
analogWrite(ledred, LOW);
tone(BUZZER_OUT_PIN, 622, 175);
delay(200);
//F5
analogWrite(ledgreen, LOW);
tone(BUZZER_OUT_PIN, 698, 175);
delay(200);
//G5
analogWrite(ledblue, LOW);
tone(BUZZER_OUT_PIN, 784, 375);
delay(400);
/////////////////////////////////////////////////
//C5
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 523, 375);
delay(400);
//DS5
analogWrite(ledblue, 255);
tone(BUZZER_OUT_PIN, 622, 175);
delay(200);
//F5
analogWrite(ledred, 255);
tone(BUZZER_OUT_PIN, 698, 175);
delay(200);
//G5
analogWrite(ledgreen, 255);
tone(BUZZER_OUT_PIN, 784, 375);
delay(400);
while(brightness > 0)
{
analogWrite(ledred, brightness);
analogWrite(ledblue, brightness);
analogWrite(ledgreen, brightness);
brightness = brightness - fadeAmount;
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
}
analogWrite(ledred, LOW);
analogWrite(ledgreen, LOW);
analogWrite(ledblue, LOW);
brightness = 255;
fadeAmount = 5;
Serial.println("END");
delay(3000);
while(true) {
}
}
which result in the following data outputted on the serial port when executed:
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,165,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,165,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,392,1175);
delay(1200);
tone(8,262,1175);
delay(1200);
tone(8,311,175);
delay(200);
tone(8,349,175);
delay(200);
tone(8,392,775);
delay(800);
tone(8,262,775);
delay(800);
tone(8,311,175);
delay(200);
tone(8,349,175);
delay(200);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,349,1175);
delay(1200);
tone(8,233,1175);
delay(1200);
tone(8,294,175);
delay(200);
tone(8,311,175);
delay(200);
tone(8,349,775);
delay(800);
tone(8,233,775);
delay(800);
tone(8,311,175);
delay(200);
tone(8,294,175);
delay(200);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,392,1175);
delay(1200);
tone(8,262,1175);
delay(1200);
tone(8,311,175);
delay(200);
tone(8,349,175);
delay(200);
tone(8,392,775);
delay(800);
tone(8,262,775);
delay(800);
tone(8,311,175);
delay(200);
tone(8,349,175);
delay(200);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,349,1175);
delay(1200);
tone(8,233,1175);
delay(1200);
tone(8,294,175);
delay(200);
tone(8,311,175);
delay(200);
tone(8,349,775);
delay(800);
tone(8,233,775);
delay(800);
tone(8,311,175);
delay(200);
tone(8,294,175);
delay(200);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,784,1175);
delay(1200);
tone(8,523,1175);
delay(1200);
tone(8,622,175);
delay(200);
tone(8,698,175);
delay(200);
tone(8,784,775);
delay(800);
tone(8,523,775);
delay(800);
tone(8,622,175);
delay(200);
tone(8,698,175);
delay(200);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,698,1175);
delay(1200);
tone(8,466,1175);
delay(1200);
tone(8,587,575);
delay(600);
tone(8,622,575);
delay(600);
tone(8,587,575);
delay(600);
tone(8,466,575);
delay(600);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,523,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,523,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,466,375);
delay(400);
tone(8,147,175);
delay(200);
tone(8,156,175);
delay(200);
tone(8,175,375);
delay(400);
tone(8,466,375);
delay(400);
tone(8,147,175);
delay(200);
tone(8,156,175);
delay(200);
tone(8,175,375);
delay(400);
tone(8,415,375);
delay(400);
tone(8,131,175);
delay(200);
tone(8,147,175);
delay(200);
tone(8,156,375);
delay(400);
tone(8,415,375);
delay(400);
tone(8,131,175);
delay(200);
tone(8,147,175);
delay(200);
tone(8,156,375);
delay(400);
tone(8,392,375);
delay(400);
tone(8,117,175);
delay(200);
tone(8,131,175);
delay(200);
tone(8,147,375);
delay(400);
tone(8,392,375);
delay(400);
tone(8,117,175);
delay(200);
tone(8,131,175);
delay(200);
tone(8,147,375);
delay(400);
tone(8,311,375);
delay(400);
tone(8,98,175);
delay(200);
tone(8,104,175);
delay(200);
tone(8,117,375);
delay(400);
tone(8,311,375);
delay(400);
tone(8,98,175);
delay(200);
tone(8,104,175);
delay(200);
tone(8,117,375);
delay(400);
tone(8,311,375);
delay(400);
tone(8,98,175);
delay(200);
tone(8,98,175);
delay(200);
tone(8,311,375);
delay(400);
tone(8,349,775);
delay(400);
tone(8,104,175);
delay(200);
tone(8,104,175);
delay(200);
tone(8,349,375);
delay(400);
tone(8,262,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,523,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,523,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,466,375);
delay(400);
tone(8,147,175);
delay(200);
tone(8,156,175);
delay(200);
tone(8,175,375);
delay(400);
tone(8,466,375);
delay(400);
tone(8,147,175);
delay(200);
tone(8,156,175);
delay(200);
tone(8,175,375);
delay(400);
tone(8,415,375);
delay(400);
tone(8,131,175);
delay(200);
tone(8,147,175);
delay(200);
tone(8,156,375);
delay(400);
tone(8,415,375);
delay(400);
tone(8,131,175);
delay(200);
tone(8,147,175);
delay(200);
tone(8,156,375);
delay(400);
tone(8,392,375);
delay(400);
tone(8,117,175);
delay(200);
tone(8,131,175);
delay(200);
tone(8,147,375);
delay(400);
tone(8,392,375);
delay(400);
tone(8,117,175);
delay(200);
tone(8,131,175);
delay(200);
tone(8,147,375);
delay(400);
tone(8,311,375);
delay(400);
tone(8,98,175);
delay(200);
tone(8,104,175);
delay(200);
tone(8,117,375);
delay(400);
tone(8,311,375);
delay(400);
tone(8,98,175);
delay(200);
tone(8,104,175);
delay(200);
tone(8,117,375);
delay(400);
tone(8,311,775);
delay(800);
tone(8,311,375);
delay(400);
tone(8,294,775);
delay(800);
tone(8,294,375);
delay(400);
tone(8,262,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,156,175);
delay(200);
tone(8,175,175);
delay(200);
tone(8,196,375);
delay(400);
tone(8,131,375);
delay(400);
tone(8,622,175);
delay(200);
tone(8,698,175);
delay(200);
tone(8,784,375);
delay(400);
tone(8,523,375);
delay(400);
tone(8,622,175);
delay(200);
tone(8,698,175);
delay(200);
tone(8,784,375);
delay(400);
tone(8,523,375);
delay(400);
tone(8,622,175);
delay(200);
tone(8,698,175);
delay(200);
tone(8,784,375);
delay(400);
Using libRtttl gui, the above code can be converted to the following RTTTL melody:
Settings: force default, enable tone() octave offsetting.
Game of Throne RTTTL:
GOT:d=32,o=4,b=320:2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4e5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4e5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,1g.6,p,1c.6,p,4d#6,p,4f6,p,1g6,p,1c6,p,4d#6,p,4f6,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,1f.6,p,1a#.5,p,4d6,p,4d#6,p,1f6,p,1a#5,p,4d#6,p,4d6,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,1g.6,p,1c.6,p,4d#6,p,4f6,p,1g6,p,1c6,p,4d#6,p,4f6,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,1f.6,p,1a#.5,p,4d6,p,4d#6,p,1f6,p,1a#5,p,4d#6,p,4d6,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,1g.7,p,1c.7,p,4d#7,p,4f7,p,1g7,p,1c7,p,4d#7,p,4f7,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,1f.7,p,1a#.6,p,1d7,p,1d#7,p,1d7,p,1a#6,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c7,p,4d#5,p,4f5,p,2g5,p,2c7,p,4d#5,p,4f5,p,2g5,p,2a#6,p,4d5,p,4d#5,p,2f5,p,2a#6,p,4d5,p,4d#5,p,2f5,p,2g#6,p,4c5,p,4d5,p,2d#5,p,2g#6,p,4c5,p,4d5,p,2d#5,p,2g6,p,4a#,p,4c5,p,2d5,p,2g6,p,4a#,p,4c5,p,2d5,p,2d#6,p,4f#,p,4g#,p,2a#,p,2d#6,p,4f#,p,4g#,p,2a#,p,2d#6,p,4f#,p,4f#,p,2d#6,p,1f6,2p,4g#,p,4g#,p,2f6,p,2c6,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c7,p,4d#5,p,4f5,p,2g5,p,2c7,p,4d#5,p,4f5,p,2g5,p,2a#6,p,4d5,p,4d#5,p,2f5,p,2a#6,p,4d5,p,4d#5,p,2f5,p,2g#6,p,4c5,p,4d5,p,2d#5,p,2g#6,p,4c5,p,4d5,p,2d#5,p,2g6,p,4a#,p,4c5,p,2d5,p,2g6,p,4a#,p,4c5,p,2d5,p,2d#6,p,4f#,p,4g#,p,2a#,p,2d#6,p,4f#,p,4g#,p,2a#,p,1d#6,p,2d#6,p,1d6,p,2d6,p,2c6,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#7,p,4f7,p,2g7,p,2c7,p,4d#7,p,4f7,p,2g7,p,2c7,p,4d#7,p,4f7,p,2g7,p
or the following (by enabling unofficial BPM values) which help have accurate delays between notes:
GOTv2:d=32,o=4,b=336:2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4e5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4e5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,1g.6,p,1c.6,p,4d#6,p,4f6,p,1g6,p,1c6,p,4d#6,p,4f6,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,1f.6,p,1a#.5,p,4d6,p,4d#6,p,1f6,p,1a#5,p,4d#6,p,4d6,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,1g.6,p,1c.6,p,4d#6,p,4f6,p,1g6,p,1c6,p,4d#6,p,4f6,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,1f.6,p,1a#.5,p,4d6,p,4d#6,p,1f6,p,1a#5,p,4d#6,p,4d6,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,1g.7,p,1c.7,p,4d#7,p,4f7,p,1g7,p,1c7,p,4d#7,p,4f7,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,1f.7,p,1a#.6,p,1d7,p,1d#7,p,1d7,p,1a#6,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c7,p,4d#5,p,4f5,p,2g5,p,2c7,p,4d#5,p,4f5,p,2g5,p,2a#6,p,4d5,p,4d#5,p,2f5,p,2a#6,p,4d5,p,4d#5,p,2f5,p,2g#6,p,4c5,p,4d5,p,2d#5,p,2g#6,p,4c5,p,4d5,p,2d#5,p,2g6,p,4a#,p,4c5,p,2d5,p,2g6,p,4a#,p,4c5,p,2d5,p,2d#6,p,4f#,p,4g#,p,2a#,p,2d#6,p,4f#,p,4g#,p,2a#,p,2d#6,p,4f#,p,4f#,p,2d#6,p,1f6,2p,4g#,p,4g#,p,2f6,p,2c6,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c7,p,4d#5,p,4f5,p,2g5,p,2c7,p,4d#5,p,4f5,p,2g5,p,2a#6,p,4d5,p,4d#5,p,2f5,p,2a#6,p,4d5,p,4d#5,p,2f5,p,2g#6,p,4c5,p,4d5,p,2d#5,p,2g#6,p,4c5,p,4d5,p,2d#5,p,2g6,p,4a#,p,4c5,p,2d5,p,2g6,p,4a#,p,4c5,p,2d5,p,2d#6,p,4f#,p,4g#,p,2a#,p,2d#6,p,4f#,p,4g#,p,2a#,p,1d#6,p,2d#6,p,1d6,p,2d6,p,2c6,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#5,p,4f5,p,2g5,p,2c5,p,4d#7,p,4f7,p,2g7,p,2c7,p,4d#7,p,4f7,p,2g7,p,2c7,p,4d#7,p,4f7,p,2g7,p
Star Wars - The imperial March
Source code:
- Instructables: http://www.instructables.com/id/How-to-easily-play-music-with-buzzer-on-arduino-Th/
- Code from pasted: http://pasted.co/e525c1b2
- Cache version here: Star_Wars_-_The_imperial_March
Modify the code by adding the “Arduino tone and delay functions overrides” to the code. Once done, the code should be looking like this:
// NB: ALL NOTES DEFINED WITH STANDARD ENGLISH NAMES, EXCEPT FROM "A"
//THAT IS CALLED WITH THE ITALIAN NAME "LA" BECAUSE A0,A1...ARE THE ANALOG PINS ON ARDUINO.
// (Ab IS CALLED Ab AND NOT LAb)
#define C0 16.35
#define Db0 17.32
#define D0 18.35
#define Eb0 19.45
#define E0 20.60
#define F0 21.83
#define Gb0 23.12
#define G0 24.50
#define Ab0 25.96
#define LA0 27.50
#define Bb0 29.14
#define B0 30.87
#define C1 32.70
#define Db1 34.65
#define D1 36.71
#define Eb1 38.89
#define E1 41.20
#define F1 43.65
#define Gb1 46.25
#define G1 49.00
#define Ab1 51.91
#define LA1 55.00
#define Bb1 58.27
#define B1 61.74
#define C2 65.41
#define Db2 69.30
#define D2 73.42
#define Eb2 77.78
#define E2 82.41
#define F2 87.31
#define Gb2 92.50
#define G2 98.00
#define Ab2 103.83
#define LA2 110.00
#define Bb2 116.54
#define B2 123.47
#define C3 130.81
#define Db3 138.59
#define D3 146.83
#define Eb3 155.56
#define E3 164.81
#define F3 174.61
#define Gb3 185.00
#define G3 196.00
#define Ab3 207.65
#define LA3 220.00
#define Bb3 233.08
#define B3 246.94
#define C4 261.63
#define Db4 277.18
#define D4 293.66
#define Eb4 311.13
#define E4 329.63
#define F4 349.23
#define Gb4 369.99
#define G4 392.00
#define Ab4 415.30
#define LA4 440.00
#define Bb4 466.16
#define B4 493.88
#define C5 523.25
#define Db5 554.37
#define D5 587.33
#define Eb5 622.25
#define E5 659.26
#define F5 698.46
#define Gb5 739.99
#define G5 783.99
#define Ab5 830.61
#define LA5 880.00
#define Bb5 932.33
#define B5 987.77
#define C6 1046.50
#define Db6 1108.73
#define D6 1174.66
#define Eb6 1244.51
#define E6 1318.51
#define F6 1396.91
#define Gb6 1479.98
#define G6 1567.98
#define Ab6 1661.22
#define LA6 1760.00
#define Bb6 1864.66
#define B6 1975.53
#define C7 2093.00
#define Db7 2217.46
#define D7 2349.32
#define Eb7 2489.02
#define E7 2637.02
#define F7 2793.83
#define Gb7 2959.96
#define G7 3135.96
#define Ab7 3322.44
#define LA7 3520.01
#define Bb7 3729.31
#define B7 3951.07
#define C8 4186.01
#define Db8 4434.92
#define D8 4698.64
#define Eb8 4978.03
// DURATION OF THE NOTES
#define BPM 120 // you can change this value changing all the others
#define H 2*Q //half 2/4
#define Q 60000/BPM //quarter 1/4
#define E Q/2 //eighth 1/8
#define S Q/4 // sixteenth 1/16
#define W 4*Q // whole 4/4
//silence all analogWrite calls
#define analogWrite dummyAnalogWrite
void dummyAnalogWrite(int pin, int value)
{
}
//output function calls to serial port
void serialTone(byte pin, uint16_t frequency, uint32_t duration) {
Serial.print("tone(");
Serial.print(pin);
Serial.print(",");
Serial.print(frequency);
Serial.print(",");
Serial.print(duration);
Serial.println(");");
}
void serialNoTone(byte pin) {
Serial.print("noTone(");
Serial.print(pin);
Serial.println(");");
}
void serialDelay(uint32_t duration) {
Serial.print("delay(");
Serial.print(duration);
Serial.println(");");
}
#define tone serialTone
#define delay serialDelay
#define noTone serialNoTone
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
digitalWrite(9,LOW);
Serial.begin(115200);
Serial.println("START");
}
// the loop routine runs over and over again forever:
void loop() {
//tone(pin, note, duration)
tone(8,LA3,Q);
delay(1+Q); //delay duration should always be 1 ms more than the note in order to separate them.
tone(8,LA3,Q);
delay(1+Q);
tone(8,LA3,Q);
delay(1+Q);
tone(8,F3,E+S);
delay(1+E+S);
tone(8,C4,S);
delay(1+S);
tone(8,LA3,Q);
delay(1+Q);
tone(8,F3,E+S);
delay(1+E+S);
tone(8,C4,S);
delay(1+S);
tone(8,LA3,H);
delay(1+H);
tone(8,E4,Q);
delay(1+Q);
tone(8,E4,Q);
delay(1+Q);
tone(8,E4,Q);
delay(1+Q);
tone(8,F4,E+S);
delay(1+E+S);
tone(8,C4,S);
delay(1+S);
tone(8,Ab3,Q);
delay(1+Q);
tone(8,F3,E+S);
delay(1+E+S);
tone(8,C4,S);
delay(1+S);
tone(8,LA3,H);
delay(1+H);
tone(8,LA4,Q);
delay(1+Q);
tone(8,LA3,E+S);
delay(1+E+S);
tone(8,LA3,S);
delay(1+S);
tone(8,LA4,Q);
delay(1+Q);
tone(8,Ab4,E+S);
delay(1+E+S);
tone(8,G4,S);
delay(1+S);
tone(8,Gb4,S);
delay(1+S);
tone(8,E4,S);
delay(1+S);
tone(8,F4,E);
delay(1+E);
delay(1+E);//PAUSE
tone(8,Bb3,E);
delay(1+E);
tone(8,Eb4,Q);
delay(1+Q);
tone(8,D4,E+S);
delay(1+E+S);
tone(8,Db4,S);
delay(1+S);
tone(8,C4,S);
delay(1+S);
tone(8,B3,S);
delay(1+S);
tone(8,C4,E);
delay(1+E);
delay(1+E);//PAUSE QUASI FINE RIGA
tone(8,F3,E);
delay(1+E);
tone(8,Ab3,Q);
delay(1+Q);
tone(8,F3,E+S);
delay(1+E+S);
tone(8,LA3,S);
delay(1+S);
tone(8,C4,Q);
delay(1+Q);
tone(8,LA3,E+S);
delay(1+E+S);
tone(8,C4,S);
delay(1+S);
tone(8,E4,H);
delay(1+H);
tone(8,LA4,Q);
delay(1+Q);
tone(8,LA3,E+S);
delay(1+E+S);
tone(8,LA3,S);
delay(1+S);
tone(8,LA4,Q);
delay(1+Q);
tone(8,Ab4,E+S);
delay(1+E+S);
tone(8,G4,S);
delay(1+S);
tone(8,Gb4,S);
delay(1+S);
tone(8,E4,S);
delay(1+S);
tone(8,F4,E);
delay(1+E);
delay(1+E);//PAUSE
tone(8,Bb3,E);
delay(1+E);
tone(8,Eb4,Q);
delay(1+Q);
tone(8,D4,E+S);
delay(1+E+S);
tone(8,Db4,S);
delay(1+S);
tone(8,C4,S);
delay(1+S);
tone(8,B3,S);
delay(1+S);
tone(8,C4,E);
delay(1+E);
delay(1+E);//PAUSE QUASI FINE RIGA
tone(8,F3,E);
delay(1+E);
tone(8,Ab3,Q);
delay(1+Q);
tone(8,F3,E+S);
delay(1+E+S);
tone(8,C4,S);
delay(1+S);
tone(8,LA3,Q);
delay(1+Q);
tone(8,F3,E+S);
delay(1+E+S);
tone(8,C4,S);
delay(1+S);
tone(8,LA3,H);
delay(1+H);
delay(2*H);
Serial.println("END");
while(true) {
}
}
which result in the following data outputted on the serial port:
tone(8,220,500);
delay(501);
tone(8,220,500);
delay(501);
tone(8,220,500);
delay(501);
tone(8,174,375);
delay(376);
tone(8,261,125);
delay(126);
tone(8,220,500);
delay(501);
tone(8,174,375);
delay(376);
tone(8,261,125);
delay(126);
tone(8,220,1000);
delay(1001);
tone(8,329,500);
delay(501);
tone(8,329,500);
delay(501);
tone(8,329,500);
delay(501);
tone(8,349,375);
delay(376);
tone(8,261,125);
delay(126);
tone(8,207,500);
delay(501);
tone(8,174,375);
delay(376);
tone(8,261,125);
delay(126);
tone(8,220,1000);
delay(1001);
tone(8,440,500);
delay(501);
tone(8,220,375);
delay(376);
tone(8,220,125);
delay(126);
tone(8,440,500);
delay(501);
tone(8,415,375);
delay(376);
tone(8,392,125);
delay(126);
tone(8,369,125);
delay(126);
tone(8,329,125);
delay(126);
tone(8,349,250);
delay(251);
delay(251);
tone(8,233,250);
delay(251);
tone(8,311,500);
delay(501);
tone(8,293,375);
delay(376);
tone(8,277,125);
delay(126);
tone(8,261,125);
delay(126);
tone(8,246,125);
delay(126);
tone(8,261,250);
delay(251);
delay(251);
tone(8,174,250);
delay(251);
tone(8,207,500);
delay(501);
tone(8,174,375);
delay(376);
tone(8,220,125);
delay(126);
tone(8,261,500);
delay(501);
tone(8,220,375);
delay(376);
tone(8,261,125);
delay(126);
tone(8,329,1000);
delay(1001);
tone(8,440,500);
delay(501);
tone(8,220,375);
delay(376);
tone(8,220,125);
delay(126);
tone(8,440,500);
delay(501);
tone(8,415,375);
delay(376);
tone(8,392,125);
delay(126);
tone(8,369,125);
delay(126);
tone(8,329,125);
delay(126);
tone(8,349,250);
delay(251);
delay(251);
tone(8,233,250);
delay(251);
tone(8,311,500);
delay(501);
tone(8,293,375);
delay(376);
tone(8,277,125);
delay(126);
tone(8,261,125);
delay(126);
tone(8,246,125);
delay(126);
tone(8,261,250);
delay(251);
delay(251);
tone(8,174,250);
delay(251);
tone(8,207,500);
delay(501);
tone(8,174,375);
delay(376);
tone(8,261,125);
delay(126);
tone(8,220,500);
delay(501);
tone(8,174,375);
delay(376);
tone(8,261,125);
delay(126);
tone(8,220,1000);
delay(1001);
Using libRtttl gui, the above code can be converted to the following RTTTL melody:
Settings: force default, enable tone() octave offsetting
Star Wars - The imperial March RTTTL:
unknown:d=4,o=5,b=180:a.4,a.4,a.4,f4,16c.,a.4,f4,16c.,2a.4,e.,e.,e.,f,16c.,g#.4,f4,16c.,2a.4,a.,a4,16a.4,a.,g#,16g.,16f#.,16e.,8f.,8p.,8a#.4,d#.,d,16c#.,16c.,16b.4,8c.,8p.,8f.4,g#.4,f4,16a.4,c.,a4,16c.,2e.,a.,a4,16a.4,a.,g#,16g.,16f#.,16e.,8f.,8p.,8a#.4,d#.,d,16c#.,16c.,16b.4,8c.,8p.,8f.4,g#.4,f4,16c.,a.4,f4,16c.,2a.4
or the following (by enabling unofficial BPM values) which help have accurate delays between notes:
unknown:d=8,o=5,b=120:4a4,4a4,4a4,f.4,16c,4a4,f.4,16c,2a4,4e,4e,4e,f.,16c,4g#4,f.4,16c,2a4,4a,a.4,16a4,4a,g#.,16g,16f#,16e,f,p,a#4,4d#,d.,16c#,16c,16b4,c,p,f4,4g#4,f.4,16a4,4c,a.4,16c,2e,4a,a.4,16a4,4a,g#.,16g,16f#,16e,f,p,a#4,4d#,d.,16c#,16c,16b4,c,p,f4,4g#4,f.4,16c,4a4,f.4,16c,2a4
Super Mario Bros. themes
Source code:
- GitHub: https://github.com/tsukisan/Arduino/blob/master/WiiClassicSoundboard/WiiClassicSoundboard.ino
- Code from GitHub: https://raw.githubusercontent.com/tsukisan/Arduino/master/WiiClassicSoundboard/WiiClassicSoundboard.ino
- Cache version here: WiiClassicSoundboard - Super Mario Bros. themes
Modify the code by adding the “Arduino tone and delay functions overrides” to the code. Once done, the code should be looking like this:
#include "Notes.h"
#include "Wire.h"
#include "WiiClassic.h"
WiiClassic wiiClassy = WiiClassic();
//silence all analogWrite calls
#define analogWrite dummyAnalogWrite
void dummyAnalogWrite(int pin, int value)
{
}
//output function calls to serial port
void serialTone(byte pin, uint16_t frequency, uint32_t duration) {
Serial.print("tone(");
Serial.print(pin);
Serial.print(",");
Serial.print(frequency);
Serial.print(",");
Serial.print(duration);
Serial.println(");");
}
void serialNoTone(byte pin) {
Serial.print("noTone(");
Serial.print(pin);
Serial.println(");");
}
void serialDelay(uint32_t duration) {
Serial.print("delay(");
Serial.print(duration);
Serial.println(");");
}
#define tone serialTone
#define delay serialDelay
#define noTone serialNoTone
const int speakerPin = 12; // Define the pin used for the speaker
// Format for array: {number of notes, note to play, durration, note to play, durration, ...
const int theme[] = {11, // Array for Theme song
NOTE_E4, 8, NOTE_E4, 8, NOTE_H, 8, NOTE_E4, 8, NOTE_H, 8, NOTE_C4, 8, NOTE_E4, 8, NOTE_H, 8, NOTE_G4, 8, NOTE_H, 3, NOTE_G3, 8};
const int life[] = {6, // Array for 1-up sound effect
NOTE_E5, 10, NOTE_G5, 10, NOTE_E6, 10, NOTE_C6, 10, NOTE_D6, 10, NOTE_G6, 10};
const int flagpole[] = {27, // Array for Flag pole sound effect & song
NOTE_G2, 10, NOTE_C3, 10, NOTE_E3, 10, NOTE_G3, 10, NOTE_C4, 10, NOTE_E4, 10, NOTE_G4, 3, NOTE_E4, 3, NOTE_GS2, 10, NOTE_C3, 10,
NOTE_DS3, 10, NOTE_GS3, 10, NOTE_C4, 10, NOTE_DS4, 10, NOTE_GS4, 3, NOTE_DS4, 3, NOTE_AS2, 10, NOTE_D3, 10, NOTE_F3, 10,
NOTE_AS3, 10, NOTE_D4, 10, NOTE_F4, 10, NOTE_AS4, 3, NOTE_B4, 10, NOTE_B4, 10, NOTE_B4, 10, NOTE_C5, 2};
const int death[] = {17, // Array for Death sound effect & song
NOTE_C4, 32, NOTE_CS4, 32, NOTE_D4, 16, NOTE_H, 4, NOTE_H, 2, NOTE_B3, 8, NOTE_F4, 8, NOTE_H, 8, NOTE_F4, 8, NOTE_F4, 6,
NOTE_E4, 6, NOTE_D4, 6, NOTE_C4, 8, NOTE_E3, 8, NOTE_H, 8, NOTE_E3, 8, NOTE_C3, 8};
const int gameover[] = {15, // Array for Game over song
NOTE_C4, 8, NOTE_H, 8, NOTE_H, 8, NOTE_G3, 8, NOTE_H, 4, NOTE_E3, 4, NOTE_A3, 6, NOTE_B3, 6, NOTE_A3, 6, NOTE_GS3, 6, NOTE_AS3, 6,
NOTE_GS3, 6, NOTE_G3, 8, NOTE_F3, 8, NOTE_G3, 4};
void setup() {
Wire.begin(); // Begin wire connection
Serial.begin(9600); // Begin Serial on 9600 baud
wiiClassy.begin(); // Initialize the Wii Classic controller
wiiClassy.update(); // Gather data from the controller for the first time as this isually bogus
Serial.println("Mario Wii Classic Soundboard initializtion complete"); // Print basic button mapping for reference
Serial.println("---------------------------------------------------");
Serial.println("Button Mapping:");
Serial.println("Start: Theme song");
Serial.println("A: 1-up sound effect");
Serial.println("B: Flag pole sound effect & song");
Serial.println("X: Death sound effect & song");
Serial.println("Y: Game over song");
Serial.println("Home: Re-display this menu");
Serial.println("---------------------------------------------------");
}
void loop() {
wiiClassy.update(); // Poke the controller for status
if (wiiClassy.leftShoulderPressed()) { // If the Left shoulder button is fully depressed:
} else if (wiiClassy.rightShoulderPressed()) { // If the Right shoulder button is fully depressed:
} else if (wiiClassy.lzPressed()) { // If the LZ button is pressed
} else if (wiiClassy.rzPressed()) { // If the RZ button is pressed
} else if (wiiClassy.selectPressed()) { // If the Select button is pressed
} else if (wiiClassy.homePressed()) { // If the Home button is pressed
Serial.println("Button Mapping:"); // Print basic button mapping for reference
Serial.println("Start: Theme song");
Serial.println("A: 1-up sound effect");
Serial.println("B: Flag pole sound effect & song");
Serial.println("X: Death sound effect & song");
Serial.println("Y: Game over song");
Serial.println("Home: Re-display this menu");
delay(500); // Wait .5 sec to prevent repeat of printing
Serial.println("---------------------------------------------------");
} else if (wiiClassy.startPressed()) { // If the Start button is pressed
Serial.println("Start button pressed"); // Print button pressed
Serial.println("Begin playing Theme song"); // Print begin of melody
for (int thisNote = 1; thisNote < (theme[0] * 2 + 1); thisNote = thisNote + 2) { // Run through the notes one at a time
tone(speakerPin, theme[thisNote], (1000 / theme[thisNote + 1)); // Play the single note
delay((1000 / theme[thisNote + 1) * 1.30); // Delay for the specified time
noTone(speakerPin); // Silence the note that was playing
}
Serial.println("Theme song complete"); // Print that the song is complete
Serial.println("---------------------------------------------------");
} else if (wiiClassy.aPressed()) { // If the A button is pressed
Serial.println("A button pressed"); // Print button pressed
Serial.println("Begin playing 1-up sound effect"); // Print begin of melody
for (int thisNote = 1; thisNote < (life[0] * 2 + 1); thisNote = thisNote + 2) { // Run through the notes one at a time
tone(speakerPin, life[thisNote], (1000/life[thisNote + 1])); // Play the single note
delay((1000/life[thisNote + 1]) * 1.30); // Delay for the specified time
noTone(speakerPin); // Silence the note that was playing
}
Serial.println("1-up sound effect complete"); // Print that the song is complete
Serial.println("---------------------------------------------------");
} else if (wiiClassy.bPressed()) { // If the B button is pressed
Serial.println("B button pressed"); // Print button pressed
Serial.println("Begin playing Flag pole sound effect & song"); // Print begin of melody
for (int thisNote = 1; thisNote < (flagpole[0] * 2 + 1); thisNote = thisNote + 2) { // Run through the notes one at a time
tone(speakerPin, flagpole[thisNote], (1000/flagpole[thisNote + 1]));// Play the single note
delay((1000/flagpole[thisNote + 1]) * 1.30); // Delay for the specified time
noTone(speakerPin); // Silence the note that was playing
}
Serial.println("Flag pole sound effect & song complete"); // Print that the song is complete
Serial.println("---------------------------------------------------");
} else if (wiiClassy.xPressed()) { // If the X button is pressed
Serial.println("X button pressed"); // Print button pressed
Serial.println("Begin playing Death sound effect & song"); // Print begin of melody
for (int thisNote = 1; thisNote < (death[0] * 2 + 1); thisNote = thisNote + 2) { // Run through the notes one at a time
tone(speakerPin, death[thisNote], (1000/death[thisNote + 1])); // Play the single note
delay((1000/death[thisNote + 1]) * 1.30); // Delay for the specified time
noTone(speakerPin); // Silence the note that was playing
}
Serial.println("Death sound effect & song complete"); // Print that the song is complete
Serial.println("---------------------------------------------------");
} else if (wiiClassy.yPressed()) { // If the Y button is pressed
Serial.println("Y button pressed"); // Print button pressed
Serial.println("Begin playing Game over song"); // Print begin of melody
for (int thisNote = 1; thisNote < (gameover[0] * 2 + 1); thisNote = thisNote + 2) { // Run through the notes one at a time
tone(speakerPin, gameover[thisNote], (1000/gameover[thisNote + 1]));// Play the single note
delay((1000/gameover[thisNote + 1]) * 1.30); // Delay for the specified time
noTone(speakerPin); // Silence the note that was playing
}
Serial.println("Game over song complete"); // Print that the song is complete
Serial.println("---------------------------------------------------");
}
delay(1); // Delay .01 sec to not overload the controller
}
which result in the following data outputted on the serial port:
Begin playing Theme song
tone(12,330,125);
delay(162);
noTone(12);
tone(12,330,125);
delay(162);
noTone(12);
tone(12,0,125);
delay(162);
noTone(12);
tone(12,330,125);
delay(162);
noTone(12);
tone(12,0,125);
delay(162);
noTone(12);
tone(12,262,125);
delay(162);
noTone(12);
tone(12,330,125);
delay(162);
noTone(12);
tone(12,0,125);
delay(162);
noTone(12);
tone(12,392,125);
delay(162);
noTone(12);
tone(12,0,333);
delay(432);
noTone(12);
tone(12,196,125);
delay(162);
noTone(12);
Theme song complete
---------------------------------------------------
Begin playing 1-up sound effect
tone(12,659,100);
delay(130);
noTone(12);
tone(12,784,100);
delay(130);
noTone(12);
tone(12,1319,100);
delay(130);
noTone(12);
tone(12,1047,100);
delay(130);
noTone(12);
tone(12,1175,100);
delay(130);
noTone(12);
tone(12,1568,100);
delay(130);
noTone(12);
1-up sound effect complete
---------------------------------------------------
Begin playing Flag pole sound effect & song
tone(12,98,100);
delay(130);
noTone(12);
tone(12,131,100);
delay(130);
noTone(12);
tone(12,165,100);
delay(130);
noTone(12);
tone(12,196,100);
delay(130);
noTone(12);
tone(12,262,100);
delay(130);
noTone(12);
tone(12,330,100);
delay(130);
noTone(12);
tone(12,392,333);
delay(432);
noTone(12);
tone(12,330,333);
delay(432);
noTone(12);
tone(12,104,100);
delay(130);
noTone(12);
tone(12,131,100);
delay(130);
noTone(12);
tone(12,156,100);
delay(130);
noTone(12);
tone(12,208,100);
delay(130);
noTone(12);
tone(12,262,100);
delay(130);
noTone(12);
tone(12,311,100);
delay(130);
noTone(12);
tone(12,415,333);
delay(432);
noTone(12);
tone(12,311,333);
delay(432);
noTone(12);
tone(12,117,100);
delay(130);
noTone(12);
tone(12,147,100);
delay(130);
noTone(12);
tone(12,175,100);
delay(130);
noTone(12);
tone(12,233,100);
delay(130);
noTone(12);
tone(12,294,100);
delay(130);
noTone(12);
tone(12,349,100);
delay(130);
noTone(12);
tone(12,466,333);
delay(432);
noTone(12);
tone(12,494,100);
delay(130);
noTone(12);
tone(12,494,100);
delay(130);
noTone(12);
tone(12,494,100);
delay(130);
noTone(12);
tone(12,523,500);
delay(650);
noTone(12);
Flag pole sound effect & song complete
---------------------------------------------------
Begin playing Death sound effect & song
tone(12,262,31);
delay(40);
noTone(12);
tone(12,277,31);
delay(40);
noTone(12);
tone(12,294,62);
delay(80);
noTone(12);
tone(12,0,250);
delay(325);
noTone(12);
tone(12,0,500);
delay(650);
noTone(12);
tone(12,247,125);
delay(162);
noTone(12);
tone(12,349,125);
delay(162);
noTone(12);
tone(12,0,125);
delay(162);
noTone(12);
tone(12,349,125);
delay(162);
noTone(12);
tone(12,349,166);
delay(215);
noTone(12);
tone(12,330,166);
delay(215);
noTone(12);
tone(12,294,166);
delay(215);
noTone(12);
tone(12,262,125);
delay(162);
noTone(12);
tone(12,165,125);
delay(162);
noTone(12);
tone(12,0,125);
delay(162);
noTone(12);
tone(12,165,125);
delay(162);
noTone(12);
tone(12,131,125);
delay(162);
noTone(12);
Death sound effect & song complete
---------------------------------------------------
Begin playing Game over song
tone(12,262,125);
delay(162);
noTone(12);
tone(12,0,125);
delay(162);
noTone(12);
tone(12,0,125);
delay(162);
noTone(12);
tone(12,196,125);
delay(162);
noTone(12);
tone(12,0,250);
delay(325);
noTone(12);
tone(12,165,250);
delay(325);
noTone(12);
tone(12,220,166);
delay(215);
noTone(12);
tone(12,247,166);
delay(215);
noTone(12);
tone(12,220,166);
delay(215);
noTone(12);
tone(12,208,166);
delay(215);
noTone(12);
tone(12,233,166);
delay(215);
noTone(12);
tone(12,208,166);
delay(215);
noTone(12);
tone(12,196,125);
delay(162);
noTone(12);
tone(12,175,125);
delay(162);
noTone(12);
tone(12,196,250);
delay(325);
noTone(12);
Game over song complete
---------------------------------------------------
Note that output contains the following function calls: tone(12,0,something);
. Unfortunately, the libRtttl does not properly identify these lines as “silence pin 12” but they can safely be removed from the output without any issue.
Using libRtttl gui, the above code can be converted to the following RTTTL melodies:
Settings: force default, enable tone() octave offsetting
Super Mario Bros. themes RTTTL:
theme:d=8,o=4,b=355:e.5,32p.,e.5,32p.,4p,e.5,32p.,4p,c.5,32p.,e.5,32p.,4p,g.5,32p.,2p,g.,32p.
life:d=8,o=4,b=450:e.5,32p.,g.5,32p.,e.6,32p.,c.6,32p.,d.6,32p.,g.6,32p.
flagpole:d=8,o=4,b=450:f#.,32p.,c.5,32p.,e.5,32p.,g.5,32p.,c.6,32p.,e.6,32p.,2g6,p.,2e6,p.,g#.,32p.,c.5,32p.,d#.5,32p.,g#.5,32p.,c.6,32p.,d#.6,32p.,2g#6,p.,2d#6,p.,a#.,32p.,d.5,32p.,f.5,32p.,a#.5,32p.,d.6,32p.,f.6,32p.,2a#6,p.,b.6,32p.,b.6,32p.,b.6,32p.,1c7,4p
death:d=32,o=4,b=355:c.5,p,c#.5,p,16d.5,p,2p,1p,8b.,p.,8f.5,p.,4p,8f.5,p.,4f5,16p,4e5,16p,4d5,16p,8c.5,p.,8e.,p.,4p,8e.,p.,8c.,p.
gameover:d=4,o=4,b=355:8c.5,32p.,p,p,8g.,32p.,2p,e.,8p,a,16p,b,16p,a,16p,g#,16p,a#,16p,g#,16p,8g.,32p.,8f.,32p.,g.,8p
or the following (by enabling unofficial BPM values) which help have accurate delays between notes:
theme: (identical)
life: (identical)
flagpole: (identical)
death:d=16,o=4,b=706:c.5,32p,c#.5,32p,8d.5,32p.,1p,1p.,4b.,p.,4f.5,p.,2p,4f.5,p.,2f5,8p,2e5,8p,2d5,8p,4c.5,p.,4e.,p.,2p,4e.,p.,4c.,p.
gameover: (identical)
Comments