Skip to content

Instantly share code, notes, and snippets.

@patmandenver
Created October 20, 2015 17:05
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save patmandenver/79916e5df91c9d65bd6a to your computer and use it in GitHub Desktop.
Save patmandenver/79916e5df91c9d65bd6a to your computer and use it in GitHub Desktop.
Arduino code to play adventure time theme music
/*
* 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