/*
* Bach Cantata Number 147
*
* Uses a LilyPad speaker (buzzer) to play Bach Cantata No. 147,
* a.k.a. Jesu, Joy of Man's Desiring.
*
* Programmed by Cindy Brooman
* Christmas 2009
* How this works: connect the speaker's - to pin 4 and its + to pin 5. The cantata is
* called from the setup, and the loop does nothing but repeat a delay. This has
* the effect of making the music play once and then stop. (Believe me, it quickly
* becomes tiresome hearing it in a loop!) To play it again, just press the reset
* button.
*/
int ledPin = 13; // LED is connected to digital pin 13
int speakerPin = 5; // speaker connected to digital pin 9
int groundPin = 4; // define an extra ground petal
void setup()
{
pinMode(ledPin, OUTPUT); // sets the ledPin to be an output
pinMode(speakerPin, OUTPUT); // sets the speakerPin to be an output
pinMode(groundPin, OUTPUT); // sets the extra ground pin to be an output
digitalWrite(groundPin, LOW); // sets the extra ground pin to 0 volts
jesu();
}
void loop()
{
delay(1000); // delay for 1 second
}
void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds) // the sound producing function
{
int x;
long delayAmount = (long)(1000000/frequencyInHertz);
long loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2));
for (x=0;x<loopTime;x++)
{
digitalWrite(speakerPin,HIGH);
delayMicroseconds(delayAmount);
digitalWrite(speakerPin,LOW);
delayMicroseconds(delayAmount);
}
}
void jesu ()
{
digitalWrite(ledPin,HIGH); //turn on the LED
beep(speakerPin,2093,300); //C
beep(speakerPin,2349,300); //D
beep(speakerPin,2637,300); //E
beep(speakerPin,3136,300); //G
beep(speakerPin,2793,300); //F
beep(speakerPin,2793,300); //F
beep(speakerPin,3520,300); //A
beep(speakerPin,3136,300); //G
//
beep(speakerPin,3136,300); //G
beep(speakerPin,4186,300); //C HI
beep(speakerPin,3951,300); //B
beep(speakerPin,4186,300); //C HI
beep(speakerPin,3136,300); //G
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
beep(speakerPin,2349,300); //D
beep(speakerPin,2637,300); //E
//
beep(speakerPin,2793,300); //F
beep(speakerPin,3136,300); //G
beep(speakerPin,3520,300); //A
beep(speakerPin,3136,300); //G
beep(speakerPin,2793,300); //F
beep(speakerPin,2637,300); //E
beep(speakerPin,2349,300); //D
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
//
beep(speakerPin,1975,300); //B LO
beep(speakerPin,2093,300); //C
beep(speakerPin,2349,300); //D
beep(speakerPin,1568,300); //G LO
beep(speakerPin,1975,300); //B LO
beep(speakerPin,2349,300); //D
beep(speakerPin,2793,300); //F
beep(speakerPin,2637,300); //E
beep(speakerPin,2349,300); //D
//
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
beep(speakerPin,2349,300); //D
beep(speakerPin,2637,300); //E
beep(speakerPin,3136,300); //G
beep(speakerPin,2793,300); //F
beep(speakerPin,2793,300); //F
beep(speakerPin,3520,300); //A
beep(speakerPin,3136,300); //G
//
beep(speakerPin,3136,300); //G
beep(speakerPin,4186,300); //C HI
beep(speakerPin,3951,300); //B
beep(speakerPin,4186,300); //C HI
beep(speakerPin,3136,300); //G
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
beep(speakerPin,2349,300); //D
beep(speakerPin,2637,300); //E
//
beep(speakerPin,1760,300); //A LO
beep(speakerPin,3136,300); //G
beep(speakerPin,2793,300); //F
beep(speakerPin,2637,300); //E
beep(speakerPin,2349,300); //D
beep(speakerPin,2093,300); //C
beep(speakerPin,1568,300); //G LO
beep(speakerPin,2093,300); //C
beep(speakerPin,1975,300); //B LO
//
beep(speakerPin,2093,300); //C
beep(speakerPin,2637,300); //E
beep(speakerPin,3136,300); //G
beep(speakerPin,4186,300); //C HI
beep(speakerPin,3136,300); //G
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
// Repeat first eight bars
beep(speakerPin,2093,300); //C
beep(speakerPin,2349,300); //D
beep(speakerPin,2637,300); //E
beep(speakerPin,3136,300); //G
beep(speakerPin,2793,300); //F
beep(speakerPin,2793,300); //F
beep(speakerPin,3520,300); //A
beep(speakerPin,3136,300); //G
//
beep(speakerPin,3136,300); //G
beep(speakerPin,4186,300); //C HI
beep(speakerPin,3951,300); //B
beep(speakerPin,4186,300); //C HI
beep(speakerPin,3136,300); //G
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
beep(speakerPin,2349,300); //D
beep(speakerPin,2637,300); //E
//
beep(speakerPin,2793,300); //F
beep(speakerPin,3136,300); //G
beep(speakerPin,3520,300); //A
beep(speakerPin,3136,300); //G
beep(speakerPin,2793,300); //F
beep(speakerPin,2637,300); //E
beep(speakerPin,2349,300); //D
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
//
beep(speakerPin,1975,300); //B LO
beep(speakerPin,2093,300); //C
beep(speakerPin,2349,300); //D
beep(speakerPin,1568,300); //G LO
beep(speakerPin,1975,300); //B LO
beep(speakerPin,2349,300); //D
beep(speakerPin,2793,300); //F
beep(speakerPin,2637,300); //E
beep(speakerPin,2349,300); //D
//
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
beep(speakerPin,2349,300); //D
beep(speakerPin,2637,300); //E
beep(speakerPin,3136,300); //G
beep(speakerPin,2793,300); //F
beep(speakerPin,2793,300); //F
beep(speakerPin,3520,300); //A
beep(speakerPin,3136,300); //G
//
beep(speakerPin,3136,300); //G
beep(speakerPin,4186,300); //C HI
beep(speakerPin,3951,300); //B
beep(speakerPin,4186,300); //C HI
beep(speakerPin,3136,300); //G
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
beep(speakerPin,2349,300); //D
beep(speakerPin,2637,300); //E
//
beep(speakerPin,1760,300); //A LO
beep(speakerPin,3136,300); //G
beep(speakerPin,2793,300); //F
beep(speakerPin,2637,300); //E
beep(speakerPin,2349,300); //D
beep(speakerPin,2093,300); //C
beep(speakerPin,1568,300); //G LO
beep(speakerPin,2093,300); //C
beep(speakerPin,1975,300); //B LO
//
beep(speakerPin,2093,300); //C
beep(speakerPin,2637,300); //E
beep(speakerPin,3136,300); //G
beep(speakerPin,4186,300); //C HI
beep(speakerPin,3136,300); //G
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
beep(speakerPin,2637,300); //E
beep(speakerPin,3136,300); //G
// End of Repeat
beep(speakerPin,3729,300); //B FLAT
beep(speakerPin,3136,300); //G
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
beep(speakerPin,2637,300); //E
beep(speakerPin,3136,300); //G
beep(speakerPin,3520,300); //A
beep(speakerPin,2793,300); //F
beep(speakerPin,2349,300); //D
//
beep(speakerPin,1975,300); //B LO
beep(speakerPin,2349,300); //D
beep(speakerPin,2793,300); //F
beep(speakerPin,3136,300); //G
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
beep(speakerPin,1760,300); //A LO
beep(speakerPin,2093,300); //C
beep(speakerPin,2637,300); //E
//
beep(speakerPin,2793,300); //F
beep(speakerPin,2349,300); //D
beep(speakerPin,1975,300); //B LO
beep(speakerPin,1568,300); //G LO
beep(speakerPin,1975,300); //B LO
beep(speakerPin,2349,300); //D
beep(speakerPin,2793,300); //F
beep(speakerPin,2637,300); //E
beep(speakerPin,2349,300); //D
//
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
beep(speakerPin,2349,300); //D
beep(speakerPin,2637,300); //E
beep(speakerPin,3136,300); //G
beep(speakerPin,2793,300); //F
beep(speakerPin,2793,300); //F
beep(speakerPin,3520,300); //A
beep(speakerPin,3136,300); //G
//
beep(speakerPin,3136,300); //G
beep(speakerPin,4186,300); //C HI
beep(speakerPin,3951,300); //B
beep(speakerPin,4186,300); //C HI
beep(speakerPin,3136,300); //G
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
beep(speakerPin,2349,300); //D
beep(speakerPin,2637,300); //E
//
beep(speakerPin,2793,300); //F
beep(speakerPin,3136,300); //G
beep(speakerPin,3520,300); //A
beep(speakerPin,3136,300); //G
beep(speakerPin,2793,300); //F
beep(speakerPin,2637,300); //E
beep(speakerPin,2349,300); //D
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
//
beep(speakerPin,1975,300); //B LO
beep(speakerPin,2093,300); //C
beep(speakerPin,2349,300); //D
beep(speakerPin,1568,300); //G LO
beep(speakerPin,1975,300); //B LO
beep(speakerPin,2349,300); //D
beep(speakerPin,2793,300); //F
beep(speakerPin,2637,300); //E
beep(speakerPin,2349,300); //D
//
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
beep(speakerPin,2349,300); //D
beep(speakerPin,2637,300); //E
beep(speakerPin,3136,300); //G
beep(speakerPin,2793,300); //F
beep(speakerPin,2793,300); //F
beep(speakerPin,3520,300); //A
beep(speakerPin,3136,300); //G
//
beep(speakerPin,3136,300); //G
beep(speakerPin,4186,300); //C HI
beep(speakerPin,3951,300); //B
beep(speakerPin,4186,300); //C HI
beep(speakerPin,3136,300); //G
beep(speakerPin,2637,300); //E
beep(speakerPin,2093,300); //C
beep(speakerPin,2349,300); //D
beep(speakerPin,2637,300); //E
//
beep(speakerPin,1760,300); //A LO
beep(speakerPin,3136,300); //G
beep(speakerPin,2793,300); //F
beep(speakerPin,2637,300); //E
beep(speakerPin,2349,300); //D
beep(speakerPin,2093,300); //C
beep(speakerPin,1568,300); //G LO
beep(speakerPin,2093,300); //C
beep(speakerPin,1975,300); //B LO
//
beep(speakerPin,2093,3000); //C
//End
digitalWrite(ledPin,LOW); //turn off the LED
}
© 2012 Created by Syuzi.
