
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:
- 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:
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:
- 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:
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)
Comments