Hey that's me

end2end zone

My life dumped to a web site

end2end

32-Minute Read

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:

1tone(8,LA4,Q);
2delay(1+Q);
3tone(8,LA3,E+S);
4delay(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.

 1//silence all analogWrite calls
 2#define analogWrite dummyAnalogWrite
 3void dummyAnalogWrite(int pin, int value)
 4{
 5}
 6 
 7//output function calls to serial port
 8void serialTone(byte pin, uint16_t frequency, uint32_t duration) {
 9  Serial.print("tone(");
10  Serial.print(pin);
11  Serial.print(",");
12  Serial.print(frequency);
13  Serial.print(",");
14  Serial.print(duration);
15  Serial.println(");");
16}
17 
18void serialNoTone(byte pin) {
19  Serial.print("noTone(");
20  Serial.print(pin);
21  Serial.println(");");
22}
23 
24void serialDelay(uint32_t duration) {
25  Serial.print("delay(");
26  Serial.print(duration);
27  Serial.println(");");
28}
29 
30#define tone serialTone
31#define delay serialDelay
32#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:

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:

Modify the code by adding the “Arduino tone and delay functions overrides” to the code. Once done, the code should be looking like this:

  1// NB: ALL NOTES DEFINED WITH STANDARD ENGLISH NAMES, EXCEPT FROM "A" 
  2//THAT IS CALLED WITH THE ITALIAN NAME "LA" BECAUSE A0,A1...ARE THE ANALOG PINS ON ARDUINO.
  3// (Ab IS CALLED Ab AND NOT LAb)
  4#define	C0 16.35
  5#define	Db0	17.32
  6#define	D0	18.35
  7#define	Eb0	19.45
  8#define	E0	20.60
  9#define	F0	21.83
 10#define	Gb0	23.12
 11#define	G0	24.50
 12#define	Ab0	25.96
 13#define	LA0	27.50
 14#define	Bb0	29.14
 15#define	B0	30.87
 16#define	C1	32.70
 17#define	Db1	34.65
 18#define	D1	36.71
 19#define	Eb1	38.89
 20#define	E1	41.20
 21#define	F1	43.65
 22#define	Gb1	46.25
 23#define	G1	49.00
 24#define	Ab1	51.91
 25#define	LA1	55.00
 26#define	Bb1	58.27
 27#define	B1	61.74
 28#define	C2	65.41
 29#define	Db2	69.30
 30#define	D2	73.42
 31#define	Eb2	77.78
 32#define	E2	82.41
 33#define	F2	87.31
 34#define	Gb2	92.50
 35#define	G2	98.00
 36#define	Ab2	103.83
 37#define	LA2	110.00
 38#define	Bb2	116.54
 39#define	B2	123.47
 40#define	C3	130.81
 41#define	Db3	138.59
 42#define	D3	146.83
 43#define	Eb3	155.56
 44#define	E3	164.81
 45#define	F3	174.61
 46#define	Gb3	185.00
 47#define	G3	196.00
 48#define	Ab3	207.65
 49#define	LA3	220.00
 50#define	Bb3	233.08
 51#define	B3	246.94
 52#define	C4	261.63
 53#define	Db4	277.18
 54#define	D4	293.66
 55#define	Eb4	311.13
 56#define	E4	329.63
 57#define	F4	349.23
 58#define	Gb4	369.99
 59#define	G4	392.00
 60#define	Ab4	415.30
 61#define	LA4	440.00
 62#define	Bb4	466.16
 63#define	B4	493.88
 64#define	C5	523.25
 65#define	Db5	554.37
 66#define	D5	587.33
 67#define	Eb5	622.25
 68#define	E5	659.26
 69#define	F5	698.46
 70#define	Gb5	739.99
 71#define	G5	783.99
 72#define	Ab5	830.61
 73#define	LA5	880.00
 74#define	Bb5	932.33
 75#define	B5	987.77
 76#define	C6	1046.50
 77#define	Db6	1108.73
 78#define	D6	1174.66
 79#define	Eb6	1244.51
 80#define	E6	1318.51
 81#define	F6	1396.91
 82#define	Gb6	1479.98
 83#define	G6	1567.98
 84#define	Ab6	1661.22
 85#define	LA6	1760.00
 86#define	Bb6	1864.66
 87#define	B6	1975.53
 88#define	C7	2093.00
 89#define	Db7	2217.46
 90#define	D7	2349.32
 91#define	Eb7	2489.02
 92#define	E7	2637.02
 93#define	F7	2793.83
 94#define	Gb7	2959.96
 95#define	G7	3135.96
 96#define	Ab7	3322.44
 97#define	LA7	3520.01
 98#define	Bb7	3729.31
 99#define	B7	3951.07
100#define	C8	4186.01
101#define	Db8	4434.92
102#define	D8	4698.64
103#define	Eb8	4978.03
104// DURATION OF THE NOTES 
105#define BPM 120    //  you can change this value changing all the others
106#define H 2*Q //half 2/4
107#define Q 60000/BPM //quarter 1/4 
108#define E Q/2   //eighth 1/8
109#define S Q/4 // sixteenth 1/16
110#define W 4*Q // whole 4/4
111
112//silence all analogWrite calls
113#define analogWrite dummyAnalogWrite
114void dummyAnalogWrite(int pin, int value)
115{
116}
117 
118//output function calls to serial port
119void serialTone(byte pin, uint16_t frequency, uint32_t duration) {
120  Serial.print("tone(");
121  Serial.print(pin);
122  Serial.print(",");
123  Serial.print(frequency);
124  Serial.print(",");
125  Serial.print(duration);
126  Serial.println(");");
127}
128 
129void serialNoTone(byte pin) {
130  Serial.print("noTone(");
131  Serial.print(pin);
132  Serial.println(");");
133}
134 
135void serialDelay(uint32_t duration) {
136  Serial.print("delay(");
137  Serial.print(duration);
138  Serial.println(");");
139}
140 
141#define tone serialTone
142#define delay serialDelay
143#define noTone serialNoTone
144 
145void setup() {     
146pinMode(8, OUTPUT);   
147pinMode(9, OUTPUT);       
148digitalWrite(9,LOW);
149
150Serial.begin(115200);
151
152Serial.println("START");
153}
154
155// the loop routine runs over and over again forever:
156void loop() {
157  //tone(pin, note, duration)
158    tone(8,LA3,Q); 
159    delay(1+Q); //delay duration should always be 1 ms more than the note in order to separate them.
160    tone(8,LA3,Q);
161    delay(1+Q);
162    tone(8,LA3,Q);
163    delay(1+Q);
164    tone(8,F3,E+S);
165    delay(1+E+S);
166    tone(8,C4,S);
167    delay(1+S);
168    
169    tone(8,LA3,Q);
170    delay(1+Q);
171    tone(8,F3,E+S);
172    delay(1+E+S);
173    tone(8,C4,S);
174    delay(1+S);
175    tone(8,LA3,H);
176    delay(1+H);
177    
178    tone(8,E4,Q); 
179    delay(1+Q); 
180    tone(8,E4,Q);
181    delay(1+Q);
182    tone(8,E4,Q);
183    delay(1+Q);
184    tone(8,F4,E+S);
185    delay(1+E+S);
186    tone(8,C4,S);
187    delay(1+S);
188    
189    tone(8,Ab3,Q);
190    delay(1+Q);
191    tone(8,F3,E+S);
192    delay(1+E+S);
193    tone(8,C4,S);
194    delay(1+S);
195    tone(8,LA3,H);
196    delay(1+H);
197    
198    tone(8,LA4,Q);
199    delay(1+Q);
200    tone(8,LA3,E+S);
201    delay(1+E+S);
202    tone(8,LA3,S);
203    delay(1+S);
204    tone(8,LA4,Q);
205    delay(1+Q);
206    tone(8,Ab4,E+S);
207    delay(1+E+S);
208    tone(8,G4,S);
209    delay(1+S);
210    
211    tone(8,Gb4,S);
212    delay(1+S);
213    tone(8,E4,S);
214    delay(1+S);
215    tone(8,F4,E);
216    delay(1+E);
217    delay(1+E);//PAUSE
218    tone(8,Bb3,E);
219    delay(1+E);
220    tone(8,Eb4,Q);
221    delay(1+Q);
222    tone(8,D4,E+S);
223    delay(1+E+S);
224    tone(8,Db4,S);
225    delay(1+S);
226    
227    tone(8,C4,S);
228    delay(1+S);
229    tone(8,B3,S);
230    delay(1+S);
231    tone(8,C4,E);
232    delay(1+E);
233    delay(1+E);//PAUSE QUASI FINE RIGA
234    tone(8,F3,E);
235    delay(1+E);
236    tone(8,Ab3,Q);
237    delay(1+Q);
238    tone(8,F3,E+S);
239    delay(1+E+S);
240    tone(8,LA3,S);
241    delay(1+S);
242    
243    tone(8,C4,Q);
244    delay(1+Q);
245     tone(8,LA3,E+S);
246    delay(1+E+S);
247    tone(8,C4,S);
248    delay(1+S);
249    tone(8,E4,H);
250    delay(1+H);
251    
252     tone(8,LA4,Q);
253    delay(1+Q);
254    tone(8,LA3,E+S);
255    delay(1+E+S);
256    tone(8,LA3,S);
257    delay(1+S);
258    tone(8,LA4,Q);
259    delay(1+Q);
260    tone(8,Ab4,E+S);
261    delay(1+E+S);
262    tone(8,G4,S);
263    delay(1+S);
264    
265    tone(8,Gb4,S);
266    delay(1+S);
267    tone(8,E4,S);
268    delay(1+S);
269    tone(8,F4,E);
270    delay(1+E);
271    delay(1+E);//PAUSE
272    tone(8,Bb3,E);
273    delay(1+E);
274    tone(8,Eb4,Q);
275    delay(1+Q);
276    tone(8,D4,E+S);
277    delay(1+E+S);
278    tone(8,Db4,S);
279    delay(1+S);
280    
281    tone(8,C4,S);
282    delay(1+S);
283    tone(8,B3,S);
284    delay(1+S);
285    tone(8,C4,E);
286    delay(1+E);
287    delay(1+E);//PAUSE QUASI FINE RIGA
288    tone(8,F3,E);
289    delay(1+E);
290    tone(8,Ab3,Q);
291    delay(1+Q);
292    tone(8,F3,E+S);
293    delay(1+E+S);
294    tone(8,C4,S);
295    delay(1+S);
296    
297    tone(8,LA3,Q);
298    delay(1+Q);
299     tone(8,F3,E+S);
300    delay(1+E+S);
301    tone(8,C4,S);
302    delay(1+S);
303    tone(8,LA3,H);
304    delay(1+H);
305    
306    delay(2*H);
307
308    Serial.println("END");
309
310    while(true) {
311    }
312    
313}

which result in the following data outputted on the serial port:

  1tone(8,220,500);
  2delay(501);
  3tone(8,220,500);
  4delay(501);
  5tone(8,220,500);
  6delay(501);
  7tone(8,174,375);
  8delay(376);
  9tone(8,261,125);
 10delay(126);
 11tone(8,220,500);
 12delay(501);
 13tone(8,174,375);
 14delay(376);
 15tone(8,261,125);
 16delay(126);
 17tone(8,220,1000);
 18delay(1001);
 19tone(8,329,500);
 20delay(501);
 21tone(8,329,500);
 22delay(501);
 23tone(8,329,500);
 24delay(501);
 25tone(8,349,375);
 26delay(376);
 27tone(8,261,125);
 28delay(126);
 29tone(8,207,500);
 30delay(501);
 31tone(8,174,375);
 32delay(376);
 33tone(8,261,125);
 34delay(126);
 35tone(8,220,1000);
 36delay(1001);
 37tone(8,440,500);
 38delay(501);
 39tone(8,220,375);
 40delay(376);
 41tone(8,220,125);
 42delay(126);
 43tone(8,440,500);
 44delay(501);
 45tone(8,415,375);
 46delay(376);
 47tone(8,392,125);
 48delay(126);
 49tone(8,369,125);
 50delay(126);
 51tone(8,329,125);
 52delay(126);
 53tone(8,349,250);
 54delay(251);
 55delay(251);
 56tone(8,233,250);
 57delay(251);
 58tone(8,311,500);
 59delay(501);
 60tone(8,293,375);
 61delay(376);
 62tone(8,277,125);
 63delay(126);
 64tone(8,261,125);
 65delay(126);
 66tone(8,246,125);
 67delay(126);
 68tone(8,261,250);
 69delay(251);
 70delay(251);
 71tone(8,174,250);
 72delay(251);
 73tone(8,207,500);
 74delay(501);
 75tone(8,174,375);
 76delay(376);
 77tone(8,220,125);
 78delay(126);
 79tone(8,261,500);
 80delay(501);
 81tone(8,220,375);
 82delay(376);
 83tone(8,261,125);
 84delay(126);
 85tone(8,329,1000);
 86delay(1001);
 87tone(8,440,500);
 88delay(501);
 89tone(8,220,375);
 90delay(376);
 91tone(8,220,125);
 92delay(126);
 93tone(8,440,500);
 94delay(501);
 95tone(8,415,375);
 96delay(376);
 97tone(8,392,125);
 98delay(126);
 99tone(8,369,125);
100delay(126);
101tone(8,329,125);
102delay(126);
103tone(8,349,250);
104delay(251);
105delay(251);
106tone(8,233,250);
107delay(251);
108tone(8,311,500);
109delay(501);
110tone(8,293,375);
111delay(376);
112tone(8,277,125);
113delay(126);
114tone(8,261,125);
115delay(126);
116tone(8,246,125);
117delay(126);
118tone(8,261,250);
119delay(251);
120delay(251);
121tone(8,174,250);
122delay(251);
123tone(8,207,500);
124delay(501);
125tone(8,174,375);
126delay(376);
127tone(8,261,125);
128delay(126);
129tone(8,220,500);
130delay(501);
131tone(8,174,375);
132delay(376);
133tone(8,261,125);
134delay(126);
135tone(8,220,1000);
136delay(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:

Modify the code by adding the “Arduino tone and delay functions overrides” to the code. Once done, the code should be looking like this:

  1#include "Notes.h"                                                        
  2#include "Wire.h"
  3#include "WiiClassic.h"
  4
  5WiiClassic wiiClassy = WiiClassic();
  6
  7//silence all analogWrite calls
  8#define analogWrite dummyAnalogWrite
  9void dummyAnalogWrite(int pin, int value)
 10{
 11}
 12 
 13//output function calls to serial port
 14void serialTone(byte pin, uint16_t frequency, uint32_t duration) {
 15  Serial.print("tone(");
 16  Serial.print(pin);
 17  Serial.print(",");
 18  Serial.print(frequency);
 19  Serial.print(",");
 20  Serial.print(duration);
 21  Serial.println(");");
 22}
 23 
 24void serialNoTone(byte pin) {
 25  Serial.print("noTone(");
 26  Serial.print(pin);
 27  Serial.println(");");
 28}
 29 
 30void serialDelay(uint32_t duration) {
 31  Serial.print("delay(");
 32  Serial.print(duration);
 33  Serial.println(");");
 34}
 35 
 36#define tone serialTone
 37#define delay serialDelay
 38#define noTone serialNoTone
 39
 40
 41const int speakerPin = 12;                                                // Define the pin used for the speaker
 42                                                                          // Format for array: {number of notes, note to play, durration, note to play, durration, ...
 43const int theme[] = {11,                                                  // Array for Theme song
 44  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};
 45const int life[] = {6,                                                    // Array for 1-up sound effect
 46  NOTE_E5, 10, NOTE_G5, 10, NOTE_E6, 10, NOTE_C6, 10, NOTE_D6, 10, NOTE_G6, 10};
 47const int flagpole[] = {27,                                               // Array for Flag pole sound effect & song
 48  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, 
 49  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, 
 50  NOTE_AS3, 10, NOTE_D4, 10, NOTE_F4, 10, NOTE_AS4, 3, NOTE_B4, 10, NOTE_B4, 10, NOTE_B4, 10, NOTE_C5, 2};
 51const int death[] = {17,                                                  // Array for Death sound effect & song
 52  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, 
 53  NOTE_E4, 6, NOTE_D4, 6, NOTE_C4, 8, NOTE_E3, 8, NOTE_H, 8, NOTE_E3, 8, NOTE_C3, 8};
 54const int gameover[] = {15,                                               // Array for Game over song
 55  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, 
 56  NOTE_GS3, 6, NOTE_G3, 8, NOTE_F3, 8, NOTE_G3, 4};
 57
 58void setup() {
 59  Wire.begin();                                                           // Begin wire connection
 60  Serial.begin(9600);                                                     // Begin Serial on 9600 baud
 61  wiiClassy.begin();                                                      // Initialize the Wii Classic controller
 62  wiiClassy.update();                                                     // Gather data from the controller for the first time as this isually bogus
 63  Serial.println("Mario Wii Classic Soundboard initializtion complete");  // Print basic button mapping for reference
 64  Serial.println("---------------------------------------------------");
 65  Serial.println("Button Mapping:");
 66  Serial.println("Start: Theme song");
 67  Serial.println("A: 1-up sound effect");
 68  Serial.println("B: Flag pole sound effect & song");
 69  Serial.println("X: Death sound effect & song");
 70  Serial.println("Y: Game over song");
 71  Serial.println("Home: Re-display this menu");
 72  Serial.println("---------------------------------------------------");
 73}
 74
 75void loop() {
 76  wiiClassy.update();                                                     // Poke the controller for status
 77  if (wiiClassy.leftShoulderPressed()) {                                  // If the Left shoulder button is fully depressed:
 78
 79  } else if (wiiClassy.rightShoulderPressed()) {                          // If the Right shoulder button is fully depressed:
 80
 81  } else if (wiiClassy.lzPressed()) {                                     // If the LZ button is pressed
 82
 83  } else if (wiiClassy.rzPressed()) {                                     // If the RZ button is pressed
 84
 85  } else if (wiiClassy.selectPressed()) {                                 // If the Select button is pressed
 86
 87  } else if (wiiClassy.homePressed()) {                                   // If the Home button is pressed
 88    Serial.println("Button Mapping:");                                    // Print basic button mapping for reference
 89    Serial.println("Start: Theme song");
 90    Serial.println("A: 1-up sound effect");
 91    Serial.println("B: Flag pole sound effect & song");
 92    Serial.println("X: Death sound effect & song");
 93    Serial.println("Y: Game over song");
 94    Serial.println("Home: Re-display this menu");
 95    delay(500);                                                           // Wait .5 sec to prevent repeat of printing
 96    Serial.println("---------------------------------------------------");
 97  } else if (wiiClassy.startPressed()) {                                  // If the Start button is pressed
 98    Serial.println("Start button pressed");                               // Print button pressed
 99    Serial.println("Begin playing Theme song");                           // Print begin of melody
100    for (int thisNote = 1; thisNote < (theme[0] * 2 + 1); thisNote = thisNote + 2) { // Run through the notes one at a time
101      tone(speakerPin, theme[thisNote], (1000 / theme[thisNote + 1));     // Play the single note
102      delay((1000 / theme[thisNote + 1) * 1.30);                          // Delay for the specified time
103      noTone(speakerPin);                                                 // Silence the note that was playing
104    }
105    Serial.println("Theme song complete");                                // Print that the song is complete
106    Serial.println("---------------------------------------------------");
107  } else if (wiiClassy.aPressed()) {                                      // If the A button is pressed
108    Serial.println("A button pressed");                                   // Print button pressed
109    Serial.println("Begin playing 1-up sound effect");                    // Print begin of melody
110    for (int thisNote = 1; thisNote < (life[0] * 2 + 1); thisNote = thisNote + 2) { // Run through the notes one at a time
111      tone(speakerPin, life[thisNote], (1000/life[thisNote + 1]));        // Play the single note
112      delay((1000/life[thisNote + 1]) * 1.30);                            // Delay for the specified time
113      noTone(speakerPin);                                                 // Silence the note that was playing
114    }
115    Serial.println("1-up sound effect complete");                         // Print that the song is complete
116    Serial.println("---------------------------------------------------");
117  } else if (wiiClassy.bPressed()) {                                      // If the B button is pressed
118    Serial.println("B button pressed");                                   // Print button pressed
119    Serial.println("Begin playing Flag pole sound effect & song");        // Print begin of melody
120    for (int thisNote = 1; thisNote < (flagpole[0] * 2 + 1); thisNote = thisNote + 2) { // Run through the notes one at a time
121      tone(speakerPin, flagpole[thisNote], (1000/flagpole[thisNote + 1]));// Play the single note
122      delay((1000/flagpole[thisNote + 1]) * 1.30);                        // Delay for the specified time
123      noTone(speakerPin);                                                 // Silence the note that was playing
124    }
125    Serial.println("Flag pole sound effect & song complete");             // Print that the song is complete
126    Serial.println("---------------------------------------------------");
127  } else if (wiiClassy.xPressed()) {                                      // If the X button is pressed
128    Serial.println("X button pressed");                                   // Print button pressed
129    Serial.println("Begin playing Death sound effect & song");            // Print begin of melody
130    for (int thisNote = 1; thisNote < (death[0] * 2 + 1); thisNote = thisNote + 2) { // Run through the notes one at a time
131      tone(speakerPin, death[thisNote], (1000/death[thisNote + 1]));      // Play the single note
132      delay((1000/death[thisNote + 1]) * 1.30);                           // Delay for the specified time
133      noTone(speakerPin);                                                 // Silence the note that was playing
134    }
135    Serial.println("Death sound effect & song complete");                 // Print that the song is complete
136    Serial.println("---------------------------------------------------");
137  } else if (wiiClassy.yPressed()) {                                      // If the Y button is pressed
138    Serial.println("Y button pressed");                                   // Print button pressed
139    Serial.println("Begin playing Game over song");                       // Print begin of melody
140    for (int thisNote = 1; thisNote < (gameover[0] * 2 + 1); thisNote = thisNote + 2) { // Run through the notes one at a time
141      tone(speakerPin, gameover[thisNote], (1000/gameover[thisNote + 1]));// Play the single note
142      delay((1000/gameover[thisNote + 1]) * 1.30);                        // Delay for the specified time
143      noTone(speakerPin);                                                 // Silence the note that was playing
144    }
145    Serial.println("Game over song complete");                            // Print that the song is complete
146    Serial.println("---------------------------------------------------");
147  }
148  delay(1);                                                               // Delay .01 sec to not overload the controller
149}

which result in the following data outputted on the serial port:

  1Begin playing Theme song
  2tone(12,330,125);
  3delay(162);
  4noTone(12);
  5tone(12,330,125);
  6delay(162);
  7noTone(12);
  8tone(12,0,125);
  9delay(162);
 10noTone(12);
 11tone(12,330,125);
 12delay(162);
 13noTone(12);
 14tone(12,0,125);
 15delay(162);
 16noTone(12);
 17tone(12,262,125);
 18delay(162);
 19noTone(12);
 20tone(12,330,125);
 21delay(162);
 22noTone(12);
 23tone(12,0,125);
 24delay(162);
 25noTone(12);
 26tone(12,392,125);
 27delay(162);
 28noTone(12);
 29tone(12,0,333);
 30delay(432);
 31noTone(12);
 32tone(12,196,125);
 33delay(162);
 34noTone(12);
 35Theme song complete
 36---------------------------------------------------
 37Begin playing 1-up sound effect
 38tone(12,659,100);
 39delay(130);
 40noTone(12);
 41tone(12,784,100);
 42delay(130);
 43noTone(12);
 44tone(12,1319,100);
 45delay(130);
 46noTone(12);
 47tone(12,1047,100);
 48delay(130);
 49noTone(12);
 50tone(12,1175,100);
 51delay(130);
 52noTone(12);
 53tone(12,1568,100);
 54delay(130);
 55noTone(12);
 561-up sound effect complete
 57---------------------------------------------------
 58Begin playing Flag pole sound effect & song
 59tone(12,98,100);
 60delay(130);
 61noTone(12);
 62tone(12,131,100);
 63delay(130);
 64noTone(12);
 65tone(12,165,100);
 66delay(130);
 67noTone(12);
 68tone(12,196,100);
 69delay(130);
 70noTone(12);
 71tone(12,262,100);
 72delay(130);
 73noTone(12);
 74tone(12,330,100);
 75delay(130);
 76noTone(12);
 77tone(12,392,333);
 78delay(432);
 79noTone(12);
 80tone(12,330,333);
 81delay(432);
 82noTone(12);
 83tone(12,104,100);
 84delay(130);
 85noTone(12);
 86tone(12,131,100);
 87delay(130);
 88noTone(12);
 89tone(12,156,100);
 90delay(130);
 91noTone(12);
 92tone(12,208,100);
 93delay(130);
 94noTone(12);
 95tone(12,262,100);
 96delay(130);
 97noTone(12);
 98tone(12,311,100);
 99delay(130);
100noTone(12);
101tone(12,415,333);
102delay(432);
103noTone(12);
104tone(12,311,333);
105delay(432);
106noTone(12);
107tone(12,117,100);
108delay(130);
109noTone(12);
110tone(12,147,100);
111delay(130);
112noTone(12);
113tone(12,175,100);
114delay(130);
115noTone(12);
116tone(12,233,100);
117delay(130);
118noTone(12);
119tone(12,294,100);
120delay(130);
121noTone(12);
122tone(12,349,100);
123delay(130);
124noTone(12);
125tone(12,466,333);
126delay(432);
127noTone(12);
128tone(12,494,100);
129delay(130);
130noTone(12);
131tone(12,494,100);
132delay(130);
133noTone(12);
134tone(12,494,100);
135delay(130);
136noTone(12);
137tone(12,523,500);
138delay(650);
139noTone(12);
140Flag pole sound effect & song complete
141---------------------------------------------------
142Begin playing Death sound effect & song
143tone(12,262,31);
144delay(40);
145noTone(12);
146tone(12,277,31);
147delay(40);
148noTone(12);
149tone(12,294,62);
150delay(80);
151noTone(12);
152tone(12,0,250);
153delay(325);
154noTone(12);
155tone(12,0,500);
156delay(650);
157noTone(12);
158tone(12,247,125);
159delay(162);
160noTone(12);
161tone(12,349,125);
162delay(162);
163noTone(12);
164tone(12,0,125);
165delay(162);
166noTone(12);
167tone(12,349,125);
168delay(162);
169noTone(12);
170tone(12,349,166);
171delay(215);
172noTone(12);
173tone(12,330,166);
174delay(215);
175noTone(12);
176tone(12,294,166);
177delay(215);
178noTone(12);
179tone(12,262,125);
180delay(162);
181noTone(12);
182tone(12,165,125);
183delay(162);
184noTone(12);
185tone(12,0,125);
186delay(162);
187noTone(12);
188tone(12,165,125);
189delay(162);
190noTone(12);
191tone(12,131,125);
192delay(162);
193noTone(12);
194Death sound effect & song complete
195---------------------------------------------------
196Begin playing Game over song
197tone(12,262,125);
198delay(162);
199noTone(12);
200tone(12,0,125);
201delay(162);
202noTone(12);
203tone(12,0,125);
204delay(162);
205noTone(12);
206tone(12,196,125);
207delay(162);
208noTone(12);
209tone(12,0,250);
210delay(325);
211noTone(12);
212tone(12,165,250);
213delay(325);
214noTone(12);
215tone(12,220,166);
216delay(215);
217noTone(12);
218tone(12,247,166);
219delay(215);
220noTone(12);
221tone(12,220,166);
222delay(215);
223noTone(12);
224tone(12,208,166);
225delay(215);
226noTone(12);
227tone(12,233,166);
228delay(215);
229noTone(12);
230tone(12,208,166);
231delay(215);
232noTone(12);
233tone(12,196,125);
234delay(162);
235noTone(12);
236tone(12,175,125);
237delay(162);
238noTone(12);
239tone(12,196,250);
240delay(325);
241noTone(12);
242Game over song complete
243---------------------------------------------------

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)

Say Something

Comments

Recent Posts

Categories

About

Hey! I'm Antoine author of end2end zone. Take a couple of minutes to get to know me a little better.