/*
Sidekick Basic Kit for TI LaunchPad
Play favorite songs through the buzzer!
We have:Happy Birthday, Still Dre, Mario theme song, Mario underworld theme
song, Megalovmania
Hardware Required:
* TI LaunchPad
* Breadboard
* 2x Jumper wires
* 2x DuPont wires
* Buzzer
* Tilt Switch
*/
//#include <pitches.h>
#define melodyPin 3
// define your pitch constants
// these will be notes that can be used to make a song
#define NOTE_B0 31
#define NOTE_C1 33
#define NOTE_CS1 35
#define NOTE_D1 37
#define NOTE_DS1 39
#define NOTE_E1 41
#define NOTE_F1 44
#define NOTE_FS1 46
#define NOTE_G1 49
#define NOTE_GS1 52
#define NOTE_A1 55
#define NOTE_AS1 58
#define NOTE_B1 62
#define NOTE_C2 65
#define NOTE_CS2 69
#define NOTE_D2 73
#define NOTE_DS2 78
#define NOTE_E2 82
#define NOTE_F2 87
#define NOTE_FS2 93
#define NOTE_G2 98
#define NOTE_GS2 104
#define NOTE_A2 110
#define NOTE_AS2 117
#define NOTE_B2 123
#define NOTE_C3 131
#define NOTE_CS3 139
#define NOTE_D3 147
#define NOTE_DS3 156
#define NOTE_E3 165
#define NOTE_F3 175
#define NOTE_FS3 185
#define NOTE_G3 196
#define NOTE_GS3 208
#define NOTE_A3 220
#define NOTE_AS3 233
#define NOTE_B3 247
#define NOTE_C4_1 260
#define NOTE_C4 262
#define NOTE_CS4 277
#define NOTE_D4 294
#define NOTE_DS4 311
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_FS4 370
#define NOTE_G4 392
#define NOTE_GS4 415
#define NOTE_A4 440
#define NOTE_AS4 466
#define NOTE_B4 494
#define NOTE_C5 523
#define NOTE_CS5 554
#define NOTE_D5 587
#define NOTE_DS5 622
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_FS5 740
#define NOTE_G5 784
#define NOTE_GS5 831
#define NOTE_A5 880
#define NOTE_AS5 932
#define NOTE_B5 988
#define NOTE_C6 1047
#define NOTE_CS6 1109
#define NOTE_D6 1175
#define NOTE_DS6 1245
#define NOTE_E6 1319
#define NOTE_F6 1397
#define NOTE_FS6 1480
#define NOTE_G6 1568
#define NOTE_GS6 1661
#define NOTE_A6 1760
#define NOTE_AS6 1865
#define NOTE_B6 1976
#define NOTE_C7 2093
#define NOTE_CS7 2217
#define NOTE_D7 2349
#define NOTE_DS7 2489
#define NOTE_E7 2637
#define NOTE_F7 2794
#define NOTE_FS7 2960
#define NOTE_G7 3136
#define NOTE_GS7 3322
#define NOTE_A7 3520
#define NOTE_AS7 3729
#define NOTE_B7 3951
#define NOTE_C8 4186
#define NOTE_CS8 4435
#define NOTE_D8 4699
#define NOTE_DS8 4978
#define d3 147 // 147 Hz
#define c4 261 // 261 Hz
#define d4b 277 // 277 Hz
#define d4 294 // 294 Hz
#define e4b 311 // 311 Hz
#define e4 329 // 329 Hz
#define f4 349 // 349 Hz
#define g4b 370 // 370 Hz
#define g4 392 // 392 Hz
#define a4b 415 // 415 Hz
#define a4 440 // 440 Hz
#define b4b 446 // 466 Hz
#define b4 493 // 493 Hz
#define c5 523 // 523 Hz
#define d5b 554 // 554 Hz
#define d5 587 // 587 Hz
#define e5b 622 // 622 Hz
#define e5 659 // 659 Hz
#define f5 698 // 698 Hz
#define g5b 740 // 740 Hz
#define g5 784 // 784 Hz
#define a5b 831 // 831 Hz
#define a5 880 // 880 Hz
#define b5b 932 // 932 Hz
#define b5 988 // 988 Hz
//A special note, 'R', to represent a rest
#define R 0
// Connect longer leg of buzzer to pin 19 and shorter leg to GND
// on the breadboard. The buzzer will work for any GPIO pin.
// You can switch to other pins later.
int buzzerPin = 19;
int tiltPin = 10;
// Next we will set up an Array to store our notes in the melody
// An array is way to store data in a comma seperated structure.
// notes in the birthday melody:
int hbdaymelody[] = {
NOTE_C4_1, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_F4,NOTE_E4,
NOTE_C4_1, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_G4, NOTE_F4,
NOTE_C4_1, NOTE_C4, NOTE_C5, NOTE_A4, NOTE_F4, NOTE_F4,
NOTE_E4, NOTE_D4, NOTE_AS4, NOTE_AS4, NOTE_A4,
NOTE_F4, NOTE_G4, NOTE_F4};
int hbdaynoteDurations[] = {
4, 4, 2, 2, 2, 1,
4, 4, 2, 2, 2, 1,
4, 4, 2, 2, 4, 4,
2, 1, 4, 4, 2, 2, 2, 1};
int stillDreMelody[] = {
NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6,
NOTE_B5, NOTE_B5, NOTE_B5,
NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5,
NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6, NOTE_C6,
NOTE_B5, NOTE_B5, NOTE_B5,
NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5
};
int stillDreNoteDurations[] = {
4, 4, 4, 4, 4, 4, 4,
4, 4, 4,
4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4,
4, 4, 4,
4, 4, 4, 4, 4
};
//Mario main theme melody
int mariomelody[] = {
NOTE_E7, NOTE_E7, 0, NOTE_E7,
0, NOTE_C7, NOTE_E7, 0,
NOTE_G7, 0, 0, 0,
NOTE_G6, 0, 0, 0,
NOTE_C7, 0, 0, NOTE_G6,
0, 0, NOTE_E6, 0,
0, NOTE_A6, 0, NOTE_B6,
0, NOTE_AS6, NOTE_A6, 0,
NOTE_G6, NOTE_E7, NOTE_G7,
NOTE_A7, 0, NOTE_F7, NOTE_G7,
0, NOTE_E7, 0,NOTE_C7,
NOTE_D7, NOTE_B6, 0, 0,
NOTE_C7, 0, 0, NOTE_G6,
0, 0, NOTE_E6, 0,
0, NOTE_A6, 0, NOTE_B6,
0, NOTE_AS6, NOTE_A6, 0,
NOTE_G6, NOTE_E7, NOTE_G7,
NOTE_A7, 0, NOTE_F7, NOTE_G7,
0, NOTE_E7, 0,NOTE_C7,
NOTE_D7, NOTE_B6, 0, 0
};
//Mario main them tempo
int marionoteDurations[] = {
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
9, 9, 9,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
9, 9, 9,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
};
//Underworld melody
int underworldmelody[] = {
NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4,
NOTE_AS3, NOTE_AS4, 0,
0,
NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4,
NOTE_AS3, NOTE_AS4, 0,
0,
NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4,
NOTE_DS3, NOTE_DS4, 0,
0,
NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4,
NOTE_DS3, NOTE_DS4, 0,
0, NOTE_DS4, NOTE_CS4, NOTE_D4,
NOTE_CS4, NOTE_DS4,
NOTE_DS4, NOTE_GS3,
NOTE_G3, NOTE_CS4,
NOTE_C4, NOTE_FS4,NOTE_F4, NOTE_E3, NOTE_AS4, NOTE_A4,
NOTE_GS4, NOTE_DS4, NOTE_B3,
NOTE_AS3, NOTE_A3, NOTE_GS3,
0, 0, 0
};
//Underworld tempo
int underworldnoteDurations[] = {
12, 12, 12, 12,
12, 12, 6,
3,
12, 12, 12, 12,
12, 12, 6,
3,
12, 12, 12, 12,
12, 12, 6,
3,
12, 12, 12, 12,
12, 12, 6,
6, 18, 18, 18,
6, 6,
6, 6,
6, 6,
18, 18, 18,18, 18, 18,
10, 10, 10,
10, 10, 10,
3, 3, 3
};
/* In the setup function we will set our buzzer pin to
* output. That's all we need to do at setup.
*/
int megamelody[] = {
NOTE_D3, NOTE_D3, NOTE_D4, NOTE_A3, 0, NOTE_GS3, NOTE_G3, NOTE_F3, NOTE_D3, NOTE_F3, NOTE_G3, NOTE_C3, NOTE_C3, NOTE_D4, NOTE_A3, 0, NOTE_GS3, NOTE_G3, NOTE_F3, NOTE_D3, NOTE_F3, NOTE_G3, NOTE_B2, NOTE_B2, NOTE_D4, NOTE_A3, 0, NOTE_GS3, NOTE_G3, NOTE_F3, NOTE_D3, NOTE_F3, NOTE_G3, NOTE_AS2, NOTE_AS2, NOTE_D4, NOTE_A3, 0, NOTE_GS3, NOTE_G3, NOTE_F3, NOTE_D3, NOTE_F3, NOTE_G3, NOTE_D3, NOTE_D3, NOTE_D4, NOTE_A3, 0, NOTE_GS3, NOTE_G3, NOTE_F3, NOTE_D3, NOTE_F3, NOTE_G3, NOTE_C3, NOTE_C3, NOTE_D4, NOTE_A3, 0, NOTE_GS3, NOTE_G3, NOTE_F3, NOTE_D3, NOTE_F3, NOTE_G3, NOTE_B2, NOTE_B2, NOTE_D4, NOTE_A3, 0, NOTE_GS3, NOTE_G3, NOTE_F3, NOTE_D3, NOTE_F3, NOTE_G3, NOTE_AS2, NOTE_AS2, NOTE_D4, NOTE_A3, 0, NOTE_GS3, NOTE_G3, NOTE_F3, NOTE_D3, NOTE_F3, NOTE_G3, NOTE_D4, NOTE_D4, NOTE_D5, NOTE_A4, 0, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_F4, NOTE_G4, NOTE_C4, NOTE_C4, NOTE_D5, NOTE_A4, 0, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_F4, NOTE_G4, NOTE_B3, NOTE_B3, NOTE_D5, NOTE_A4, 0, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_F4, NOTE_G4, NOTE_AS3, NOTE_AS3, NOTE_D5, NOTE_A4, 0, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_F4, NOTE_G4, NOTE_D4, NOTE_D4, NOTE_D5, NOTE_A4, 0, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_F4, NOTE_G4, NOTE_C4, NOTE_C4, NOTE_D5, NOTE_A4, 0, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_F4, NOTE_G4, NOTE_B3, NOTE_B3, NOTE_D5, NOTE_A4, 0, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_F4, NOTE_G4, NOTE_AS3, NOTE_AS3, NOTE_D5, NOTE_A4, 0, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_F4, NOTE_G4, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_G4, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_F4, NOTE_G4, 0, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_G4, NOTE_GS4, NOTE_A4, NOTE_C5, NOTE_A4, NOTE_D5, NOTE_D5, NOTE_D5, NOTE_A4, NOTE_D5, NOTE_C5, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_D4, NOTE_F4, NOTE_E4, NOTE_D4, NOTE_C4, 0, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_F3, NOTE_G3, NOTE_AS3, NOTE_C4, NOTE_D4, NOTE_F4, NOTE_C5, 0, NOTE_F4, NOTE_D4, NOTE_F4, NOTE_G4, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_GS4, NOTE_A4, NOTE_C5, NOTE_A4, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_C5, NOTE_CS5, NOTE_GS4, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_G4, NOTE_F3, NOTE_G3, NOTE_A3, NOTE_F4, NOTE_E4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_A4, NOTE_A4, NOTE_G4, NOTE_F4, NOTE_DS4, NOTE_CS4, NOTE_DS4, 0, NOTE_F4, NOTE_D4, NOTE_F4, NOTE_G4, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_GS4, NOTE_A4, NOTE_C5, NOTE_A4, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_C5, NOTE_CS5, NOTE_GS4, NOTE_GS4, NOTE_G4, NOTE_F4, NOTE_G4, NOTE_F3, NOTE_G3, NOTE_A3, NOTE_F4, NOTE_E4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_A4, NOTE_A4, NOTE_G4, NOTE_F4, NOTE_DS4, NOTE_CS4, NOTE_DS4,
};
int meganoteDurations[] = {
16, 16, 8, 6, 32, 8, 8, 8, 16, 16, 16, 16, 16, 8, 6, 32, 8, 8, 8, 16, 16, 16, 16, 16, 8, 6, 32, 8, 8, 8, 16, 16, 16, 16, 16, 8, 6, 32, 8, 8, 8, 16, 16, 16, 16, 16, 8, 6, 32, 8, 8, 8, 16, 16, 16, 16, 16, 8, 6, 32, 8, 8, 8, 16, 16, 16, 16, 16, 8, 6, 32, 8, 8, 8, 16, 16, 16, 16, 16, 8, 6, 32, 8, 8, 8, 16, 16, 16, 16, 16, 8, 6, 32, 8, 8, 8, 16, 16, 16, 16, 16, 8, 6, 32, 8, 8, 8, 16, 16, 16, 16, 16, 8, 6, 32, 8, 8, 8, 16, 16, 16, 16, 16, 8, 6, 32, 8, 8, 8, 16, 16, 16, 16, 16, 8, 6, 32, 8, 8, 8, 16, 16, 16, 16, 16, 8, 6, 32, 8, 8, 8, 16, 16, 16, 16, 16, 8, 6, 32, 8, 8, 8, 16, 16, 16, 16, 16, 8, 6, 32, 8, 8, 8, 16, 16, 16, 8, 16, 8, 8, 8, 8, 4, 16, 8, 16, 8, 8, 8, 16, 16, 16, 16, 16, 8, 8, 16, 8, 8, 8, 8, 8, 8, 8, 8, 16, 16, 16, 2, 8, 16, 8, 8, 8, 8, 4, 16, 8, 16, 8, 8, 8, 8, 8, 16, 8, 16, 8, 8, 8, 8, 8, 8, 8, 16, 8, 15, 8, 8, 2, 3, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 8, 2, 16, 8, 16, 8, 16, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 8, 16, 16, 16, 2, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 2, 8, 8, 8, 8, 2, 2, 3, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 8, 2, 16, 8, 16, 8, 16, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 8, 16, 16, 16, 2, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 2, 8, 8, 8, 8, 2, 1
};
int melody2[] = { b4b, g4b, g4b, e4, g4b, g4b, g4b, e4, g4b, g4b, g4b, b4b, R, b4b, d5b, b4, d5b, e5b, g5b, g5b, a5b, g5b, g4b, g4b, a4b, g4b, b4b, a4b, a4b, g4b, a4b, a4b, b4b, e4b, e4b }; //Tones/notes
int beats2[] = { 5, 10, 2, 2, 5, 10, 2, 2, 5, 10, 10, 10, 2, 10, 10, 5, 5, 5, 5, 5, 5, 10, 5, 5, 5, 5, 5, 10, 10, 10, 5, 5, 5, 20, 5 }; //Tone/note lengths
int MAX_COUNT2 = sizeof(melody2);
/*
void setup()
{
pinMode(buzzerPin, OUTPUT); // set buzzerPin to OUTPUT
}*/
void setup()
{
pinMode(buzzerPin, OUTPUT); // set buzzerPin to OUTPUT
pinMode(tiltPin,INPUT_PULLUP);
digitalWrite(buzzerPin, LOW);
}
/* In the loop section we will use the tone function to
* enable enable the sound. Tone needs arguments for the
* pin of the buzzer, the note, and the note duration.
*/
void loop()
{
if (digitalRead(tiltPin) == HIGH) {
digitalWrite(buzzerPin, HIGH);
}
//allStar();
marioTheme();
delay(3000);
happyBirthday();
delay(3000);
mariounderworld();
delay(3000);
stillDreTheme();
delay(3000);
megalovania();
delay(4000);
}
void happyBirthday() {
// Happy birthday
for (int thisNote = 0; thisNote < 26; thisNote++) {
// to calculate the note duration, take one second divided by the
// note type. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 1000/hbdaynoteDurations[thisNote];
tone(buzzerPin, hbdaymelody[thisNote], noteDuration);
int pauseBetweenNotes = noteDuration + 50; // delay between pulse
delay(pauseBetweenNotes);
noTone(buzzerPin); // stop the tone playing
}
}
void marioTheme() {
// Mario theme
for (int thisNote = 0; thisNote < 78; thisNote++) {
// to calculate the note duration, take one second divided by the
// note type. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int marioNoteDuration = 1000/marionoteDurations[thisNote];
tone(buzzerPin, mariomelody[thisNote], marioNoteDuration);
int pauseBetweenNotes = marioNoteDuration + 50; // delay between pulse
delay(pauseBetweenNotes);
noTone(buzzerPin); // stop the tone playing
}
}
void allStar() {
for (int thisNote = 0; thisNote < MAX_COUNT2; thisNote++) {
// to calculate the note duration, take one second divided by the
// note type. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int as = 1000/beats2[thisNote];
tone(buzzerPin, melody2[thisNote], as);
int pauseBetweenNotes = as*1.4; // delay between pulse
delay(pauseBetweenNotes);
noTone(buzzerPin); // stop the tone playing
}
}
/*
void marioTheme() {
// Mario theme
for (int thisNote = 0; thisNote < 78; thisNote++) {
// to calculate the note duration, take one second divided by the
// note type. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int marioNoteDuration = 1000/marionoteDurations[thisNote];
tone(buzzerPin, mariomelody[thisNote], marioNoteDuration);
int pauseBetweenNotes = marioNoteDuration * 1.3; // delay between pulse
delay(pauseBetweenNotes);
noTone(buzzerPin); // stop the tone playing
int digitalVal = digitalRead(2);
printf("blah %d", digitalVal);
if(HIGH == digitalVal)
{
digitalWrite(buzzerPin,LOW);//turn the led off
}
else
{
digitalWrite(buzzerPin,HIGH);//turn the led on
}
}
}
*/
void stillDreTheme() {
// Still Dre theme
for (int thisNote = 0; thisNote < 30; thisNote++) {
// to calculate the note duration, take one second divided by the
// note type. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int stillDreNoteDuration = 1000/stillDreNoteDurations[thisNote];
tone(buzzerPin, stillDreMelody[thisNote], stillDreNoteDuration);
int pauseBetweenNotes = stillDreNoteDuration + 50; // delay between pulse
delay(pauseBetweenNotes);
noTone(buzzerPin); // stop the tone playing
}
}
void megalovania() {
//megalovania
for (int thisNote = 0; thisNote < 266; thisNote++) {
// to calculate the note duration, take one second divided by the
// note type. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int megalovaniaNoteDuration = 1000/meganoteDurations[thisNote];
tone(buzzerPin, megamelody[thisNote], megalovaniaNoteDuration);
int pauseBetweenNotes = megalovaniaNoteDuration*1.5; // delay between pulse
delay(pauseBetweenNotes);
noTone(buzzerPin); // stop the tone playing
}
}
void mariounderworld() {
//megalovania
for (int thisNote = 0; thisNote < 55; thisNote++) {
// to calculate the note duration, take one second divided by the
// note type. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int underworldNoteDuration = 1000/underworldnoteDurations[thisNote];
tone(buzzerPin, underworldmelody[thisNote], underworldNoteDuration);
int pauseBetweenNotes = underworldNoteDuration*1.3; // delay between pulse
delay(pauseBetweenNotes);
noTone(buzzerPin); // stop the tone playing
}
}
/*
void loop()
{
for (int thisNote = 0; thisNote < 78; thisNote++) {
// to calculate the note duration, take one second divided by the
// note type. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 1000/noteDurations[thisNote];
tone(buzzerPin, melody[thisNote], noteDuration);
int pauseBetweenNotes = noteDuration * 1.3; // delay between pulse
delay(pauseBetweenNotes);
noTone(buzzerPin); // stop the tone playing
}
}*/
Comments
Please log in or sign up to comment.