/* Plays the first 22 tones of The Beatles - "All My Loving" Circuit: * 8-ohm speaker on digital pin 8 @version 2011-02-09 @author Patrick van Kouteren @link http://www.vankouteren.eu @license http://creativecommons.org/licenses/by/3.0/ Inspired by Tom Igoe's Tone/Melody example at http://arduino.cc/en/Tutorial/Tone */ #include "pitches.h" // notes in the melody: int melody[] = { NOTE_F4, NOTE_E4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, NOTE_B4, NOTE_A4, NOTE_E4, NOTE_A4, NOTE_A4, NOTE_A4, NOTE_G4, NOTE_F4, NOTE_E4, NOTE_D4, NOTE_C4, NOTE_D4}; // note durations: 4 = quarter note, 8 = eighth note, etc.: int noteDurations[] = { //F E D E F G A B C C B A E A A A G F E D C D 4, 4, 2, 4, 4, 8, 2, 4, 2, 8, 4, 4, 2, 4, 2, 4, 4, 4, 4, 4, 4, 1 }; void setup() { // iterate over the notes of the melody: for (int thisNote = 0; thisNote < 22; thisNote++) { // to calculate the note duration, take one second // divided by the note type. //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc. int noteDuration = 1000/noteDurations[thisNote]; tone(8, melody[thisNote],noteDuration); // to distinguish the notes, set a minimum time between them. // the note's duration + 30% seems to work well: int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); // stop the tone playing: noTone(8); } } void loop() { // no need to repeat the melody. }