Created
October 20, 2015 17:05
-
-
Save patmandenver/79916e5df91c9d65bd6a to your computer and use it in GitHub Desktop.
Arduino code to play adventure time theme music
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Adventure time Song | |
* Using Tone() | |
* | |
* Connect Positive side of buzzer to pin 11 | |
* Negative to Ground | |
* | |
* by: Patrick Bailey www.whiteboardcoder.com | |
* Last updated: 10/3/2015 | |
* | |
* Special Thanks: | |
* Dipto Prataksa for Mario Bros Tunes http://www.princetronics.com/supermariothemesong/ | |
* Mr. Celcius Sheet Music https://musescore.com/user/72834/scores/109500 | |
*/ | |
//Define notes (in Hz) | |
// see http://www.princetronics.com/supermariothemesong/ | |
// or http://www.phy.mtu.edu/~suits/notefreqs.html | |
//#define C0 16 | |
//#define CS0 17 | |
//#define D0 18 | |
//#define DS0 19 | |
//#define E0 21 | |
//#define FS0 23 | |
//#define G0 24 | |
//#define A0 27 | |
//#define AS0 29 | |
//#define B0 31 | |
//#define C1 33 | |
//#define CS1 35 | |
//#define D1 37 | |
//#define DS1 39 | |
//#define E1 41 | |
//#define F1 44 | |
//#define FS1 46 | |
//#define G1 49 | |
//#define GS1 52 | |
//#define A1 55 | |
//#define AS1 58 | |
//#define B1 62 | |
//#define C2 65 | |
//#define CS2 69 | |
//#define D2 73 | |
//#define DS2 78 | |
//#define E2 82 | |
//#define F2 87 | |
//#define FS2 93 | |
//#define G2 98 | |
//#define GS2 104 | |
//#define A2 110 | |
//#define AS2 117 | |
//#define B2 123 | |
//#define C3 131 | |
//#define CS3 139 | |
//#define D3 147 | |
//#define DS3 156 | |
//#define E3 165 | |
//#define F3 175 | |
//#define FS3 185 | |
//#define G3 196 | |
//#define GS3 208 | |
//#define A3 220 | |
//#define AS3 233 | |
//#define B3 247 | |
//#define C4 262 | |
//#define CS4 277 | |
//#define D4 294 | |
//#define DS4 311 | |
//#define E4 330 //To save space comment out | |
//#define F4 349 //notes not used :) | |
//#define FS4 370 | |
#define N_G4 392 //lowest Note in Song | |
#define N_GS4 415 | |
#define N_A4 440 | |
#define N_AS4 466 | |
#define N_B4 494 | |
#define N_C5 523 | |
#define N_CS5 554 | |
#define N_D5 587 | |
#define N_DS5 622 | |
#define N_E5 659 | |
#define N_F5 698 | |
#define N_FS5 740 | |
#define N_G5 784 | |
#define N_GS5 831 | |
#define N_A5 880 | |
#define N_AS5 932 | |
#define N_B5 988 //Highest note in song | |
//#define C6 1047 | |
//#define CS6 1109 | |
//#define D6 1175 | |
//#define DS6 1245 | |
//#define E6 1319 | |
//#define F6 1397 | |
//#define FS6 1480 | |
//#define G6 1568 | |
//#define GS6 1661 | |
//#define A6 1760 | |
//#define AS6 1865 | |
//#define B6 1976 | |
//#define C7 2093 | |
//#define CS7 2217 | |
//#define D7 2349 | |
//#define DS7 2489 | |
//#define E7 2637 | |
//#define F7 2794 | |
//#define FS7 2960 | |
//#define G7 3136 | |
//#define GS7 3322 | |
//#define A7 3520 | |
//#define AS7 3729 | |
//#define B7 3951 | |
//#define C8 4186 | |
//#define CS8 4435 | |
//#define D8 4699 | |
//#define DS8 4978 | |
//#define ES8 5247 | |
//#define F8 5587 | |
//#define FS8 5919 | |
//#define G8 6271 | |
//#define GS8 6644 | |
//#define A8 7040 | |
//#define AS8 7458 | |
//#define B8 7902 | |
#define SPEAKER_PIN 11 | |
void setup() { | |
} | |
//Play Adventure time method! | |
void adventure_time(){ | |
//Rests = 0 | |
int adventure_time_melody[] = { | |
N_D5, | |
N_G5, N_G5, N_G5, N_G5, N_FS5, | |
N_FS5, N_E5, N_D5, N_E5, N_D5, N_D5, | |
N_C5, N_B5, N_A5, N_G4, | |
0, N_C5, N_B5, N_A5, N_G4, 0, | |
N_G5, 0, N_G5, N_G5, 0, N_G5, | |
N_FS5, 0, N_E5, N_E5, N_D5, N_D5, | |
N_C5, N_C5, N_C5, N_D5, | |
N_D5, N_A5, N_B5, N_A5, N_G4, | |
N_G5 //44 | |
}; | |
// 1/8 Note = 24 | |
// 1/4 Note = 12 | |
// 3/8 Note = 8 | |
// 1/2 Note = 6 | |
int adventure_time_tempo[] = { | |
24, | |
24, 12, 12, 12, 24, | |
12, 24, 24, 24, 12, 24, | |
12, 12, 12, 12, //16 | |
24, 12, 24, 24, 12, 24, | |
24, 24, 24, 12, 24, 12, | |
24, 24, 24, 12, 12, 24, | |
8, 24, 24, 8, | |
8, 24, 12, 24, 24, | |
12 | |
}; | |
int num_notes = (sizeof(adventure_time_melody)/sizeof(adventure_time_melody[0])); | |
for (int x = 0; x < num_notes; x++){ | |
int noteDuration = 3250 / adventure_time_tempo[x]; | |
if(adventure_time_melody[x] == 0) { | |
delay(noteDuration); | |
} | |
else { | |
tone(SPEAKER_PIN, adventure_time_melody[x], noteDuration); | |
} | |
int pauseBetweenNotes = noteDuration * 1.30; | |
delay(pauseBetweenNotes); | |
} | |
} | |
void loop() { | |
//What time is it? | |
adventure_time(); | |
delay(5000); //pause 5 seconds and play again | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment