Skip to content

Instantly share code, notes, and snippets.

@Cvar1984
Created November 5, 2018 12:06
Show Gist options
  • Save Cvar1984/d3f24c94fcf6b00f882f1855b8f428e7 to your computer and use it in GitHub Desktop.
Save Cvar1984/d3f24c94fcf6b00f882f1855b8f428e7 to your computer and use it in GitHub Desktop.
/* "He's A Pirate" / "Pirates of the Caribbean" Theme Song Playing
* By Xitang 2016.06.27
* Youtube in Action: https://youtu.be/sjPAj1lXgtk
*
* INSTRUCTION: Hook up Pin 10 to the positive side of a buzzer or a microphone, hook up
* any resistor to the negative side of a buzzer (to limit current & volume & to protect the pin),
* and then connect the other end of the resistor to ground pin. Upload the sketch and enjoy!
*
* Music notes of the song obtained from Easy Music (Great website)
* Link: http://easymusic.altervista.org/recorder-hes-a-pirate-pirates-of-caribbean-sheet-music-guitar-chords/
*
* Also would like to credit Musicnotes's "How to Read Sheet Music" Guide
* Link: http://www.musicnotes.com/blog/2014/04/11/how-to-read-sheet-music/
*
* Code inspired by Chapter 5 of Jeremy Blum's book "Exploring Arduino"
* Link: http://www.exploringarduino.com/content/ch5/
*
* Music notes' frequencies obtained from arduino website
* Link: https://www.arduino.cc/en/Tutorial/toneMelody
*/
/* Output pin */
#define PIN 13
/* Change to 2 for a slower version of the song, the bigger the number the slower the song */
#define SPEED 1.3
/* Defining note frequency */
#define C4 262
#define D4 294
#define E4 330
#define F4 349
#define G4 392
#define A4 440
#define B4 494
#define C5 523
#define D5 587
#define E5 659
#define F5 698
#define G5 784
#define A5 880
#define B5 988
/* Note of the song, 0 is a rest/pulse */
int notes[] = {
E4, G4, A4, A4, 0,
A4, B4, C5, C5, 0,
C5, D5, B4, B4, 0,
A4, G4, A4, 0,
E4, G4, A4, A4, 0,
A4, B4, C5, C5, 0,
C5, D5, B4, B4, 0,
A4, G4, A4, 0,
E4, G4, A4, A4, 0,
A4, C5, D5, D5, 0,
D5, E5, F5, F5, 0,
E5, D5, E5, A4, 0,
A4, B4, C5, C5, 0,
D5, E5, A4, 0,
A4, C5, B4, B4, 0,
C5, A4, B4, 0,
A4, A4,
/* Repeat of first part */
A4, B4, C5, C5, 0,
C5, D5, B4, B4, 0,
A4, G4, A4, 0,
E4, G4, A4, A4, 0,
A4, B4, C5, C5, 0,
C5, D5, B4, B4, 0,
A4, G4, A4, 0,
E4, G4, A4, A4, 0,
A4, C5, D5, D5, 0,
D5, E5, F5, F5, 0,
E5, D5, E5, A4, 0,
A4, B4, C5, C5, 0,
D5, E5, A4, 0,
A4, C5, B4, B4, 0,
C5, A4, B4, 0,
/* End of Repeat */
E5, 0, 0, F5, 0, 0,
E5, E5, 0, G5, 0, E5, D5, 0, 0,
D5, 0, 0, C5, 0, 0,
B4, C5, 0, B4, 0, A4,
E5, 0, 0, F5, 0, 0,
E5, E5, 0, G5, 0, E5, D5, 0, 0,
D5, 0, 0, C5, 0, 0,
B4, C5, 0, B4, 0, A4
};
/* duration of each note (in ms) Quarter Note is set to 250 ms */
int durations[] = {
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 375, 125,
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 375, 125,
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 125, 250, 125,
125, 125, 250, 125, 125,
250, 125, 250, 125,
125, 125, 250, 125, 125,
125, 125, 375, 375,
250, 125,
//Rpeat of First Part
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 375, 125,
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 375, 125,
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 125, 250, 125,
125, 125, 250, 125, 125,
250, 125, 250, 125,
125, 125, 250, 125, 125,
125, 125, 375, 375,
//End of Repeat
250, 125, 375, 250, 125, 375,
125, 125, 125, 125, 125, 125, 125, 125, 375,
250, 125, 375, 250, 125, 375,
125, 125, 125, 125, 125, 500,
250, 125, 375, 250, 125, 375,
125, 125, 125, 125, 125, 125, 125, 125, 375,
250, 125, 375, 250, 125, 375,
125, 125, 125, 125, 125, 500
};
void setup() {
for (int x=0;x<203;x++){ //203 is the total number of music notes in the song
int wait = durations[x] * SPEED;
tone(PIN,notes[x],wait); //tone(pin,frequency,duration)
delay(wait);
} //delay is used so it doesn't go to the next loop before tone is finished playing
}
void loop() {
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment