// // SongArray.cpp // // // Created by Graham Gier on 10/9/12. // // #include #include #include #include #include using namespace std; void fightsong(); void eighteen(); void SingPokemon(); void storms(); void Viva(); void PlayNote(string note, string duration); int main(); double a = 880; double b= 987.77; double c = 1046.5; double d = 1174.66; double e = 1318.51; double f = 1396.9; double g = 1567.98; double beat = (60.0/176); float D5 = 587.33; float Eb5 = 622.25; float E5 = 659.26; float F5 = 698.46; float Gb5 = 739.99; float G5 = 783.99; float Ab5 = 830.61; float A5 = 880.00; float Bb5 = 932.33; float B5 = 984.77; float C6 = 1046.50; float Db6 = 1108.73; float D6 = 1174.66; float Eb6 = 1244.51; float E6 = 1318.51; float F6 = 1396.91; float Gb6 = 1479.98; float G6 = 1567.98; float Ab6 = 1661.22; float A6 = 1760.00; float Bb6 = 1864.66; float B6 = 1975.53; float C7 = 2093.00; float Db7 = 2217.46; float D7 = 2349.32; float Eb7 = 2489.02; float E7 = 2637.02; float F7 = 2793.83; float uBPM; const int MAX = 5; const int MAX2 = 4; void fightsong() { robot.beep((1.0/3.0)*beat,1046.50); robot.beep((2.0/3.0)*beat,0.0); //1 robot.beep((2.0)*beat,1046.50); robot.beep((2.0/3.0)*beat,0.0); robot.beep((1.0/3.0)*beat,880.000); robot.beep((0)*beat,0.0); robot.beep((1.0/3.0)*beat,932.328); robot.beep((1.0/3.0)*beat,0.0); robot.beep((1.0/3.0)*beat,783.991); robot.beep((0)*beat,0.0); //2 robot.beep((2)*beat,880.000); robot.beep((2.0/3.0)*beat,0.0); robot.beep((1.0/3.0)*beat,698.456); robot.beep((0)*beat,0.0); robot.beep((1.0/3.0)*beat,659.255); robot.beep((1.0/3.0)*beat,0.0); robot.beep((1.0/3.0)*beat,587.330); robot.beep((0)*beat,0.0); //3 robot.beep((2)*beat,523.251); robot.beep((2.0/3.0)*beat,0.0); robot.beep((1.0/3.0)*beat,880.000); robot.beep((0)*beat,0.0); robot.beep((1.0/3.0)*beat,932.328); robot.beep((1.0/3.0)*beat,0.0); robot.beep((1.0/3.0)*beat,659.255); robot.beep((0)*beat,0.0); //4 robot.beep((2)*beat,698.456); robot.beep((1)*beat,0.0); robot.beep((1.0/3.0)*beat,1046.50); robot.beep((2.0/3.0)*beat,0.0); //5 robot.beep((2)*beat,1046.50); robot.beep((2.0/3.0)*beat,0.0); robot.beep((1.0/3.0)*beat,880.000); robot.beep((0)*beat,0.0); robot.beep((1.0/3.0)*beat,932.328); robot.beep((1.0/3.0)*beat,0.0); robot.beep((1.0/3.0)*beat,783.991); robot.beep((0)*beat,0.0); //6 robot.beep((2)*beat,880.000); robot.beep((2.0/3.0)*beat,0.0); robot.beep((1.0/3.0)*beat,698.456); robot.beep((0)*beat,0.0); robot.beep((1.0/3.0)*beat,659.255); robot.beep((1.0/3.0)*beat,0.0); robot.beep((1.0/3.0)*beat,587.330); robot.beep((0)*beat,0.0); //7 robot.beep((2)*beat,523.251); robot.beep((2.0/3.0)*beat,0.0); robot.beep((1.0/3.0)*beat,880.000); robot.beep((0)*beat,0.0); robot.beep((1.0/3.0)*beat,932.328); robot.beep((1.0/3.0)*beat,0.0); robot.beep((1.0/3.0)*beat,659.255); robot.beep((0)*beat,0.0); //8 robot.beep((1.0/3.0)*beat,698.456); robot.beep((1.0/3.0)*beat,0.0); robot.beep((1.0/3.0)*beat,523.251); robot.beep((0)*beat,0.0); robot.beep((1.0/3.0)*beat,698.456); robot.beep((1.0/3.0)*beat,0.0); robot.beep((1.0/3.0)*beat,880.000); robot.beep((0)*beat,0.0); robot.beep((1.0/3.0)*beat,1046.50); robot.beep((2.0/3.0)*beat,0.0); robot.beep((5.0/6.0)*beat,659.255); robot.beep((1.0/6.0)*beat,0.0); //9 robot.beep((1.0/3.0)*beat,698.456); robot.beep((1.0/3.0)*beat,0.0); robot.beep((1.0/3.0)*beat,523.251); robot.beep((0)*beat,0.0); robot.beep((1.0/3.0)*beat,698.456); robot.beep((1.0/3.0)*beat,0.0); robot.beep((1.0/3.0)*beat,880.000); robot.beep((0)*beat,0.0); robot.beep((1.0/3.0)*beat,1046.50); robot.beep((2.0/3.0)*beat,0.0); robot.beep((5.0/6.0)*beat,659.255); robot.beep((1.0/6.0)*beat,0.0); //10 robot.beep((2)*beat,698.456); return; } void eighteen() { robot.beep(.2, 783); robot.beep(.2, 1046.5); robot.beep(.2, 1174.66); robot.beep(.2, 1318.5); robot.beep(.2, 1174.66); robot.beep(.2, c); robot.beep(.2, 1174.66); robot.beep(.4, e); robot.beep(.4, c); robot.beep(.8, c); wait(.2); robot.beep(.2, 783); robot.beep(.2, 1046.5); robot.beep(.2, 1174.66); robot.beep(.2, 1318.5); robot.beep(.2, 1174.66); robot.beep(.2, c); robot.beep(.2, 1174.66); robot.beep(.4, e); robot.beep(.4, c); robot.beep(.8, c); wait(.2); robot.beep(.2, a); robot.beep(.2, d); robot.beep(.2, e); robot.beep(.2, d); robot.beep(.2, a); robot.beep(.2, 698.46); robot.beep(.2, a); robot.beep(.2, d); robot.beep(.2, a); robot.beep(.2, 698.46); robot.beep(.2, a); robot.beep(.8,d); wait(.2); robot.beep(.2,783.99); robot.beep(.2, c); robot.beep(.2, d); robot.beep(.2, e); robot.beep(.2, d); robot.beep(.2, c); robot.beep(.2, d); robot.beep(.4, e); robot.beep(.4, c); robot.beep(.8, c); wait(.2); robot.beep(.2, 783); robot.beep(.2, 1046.5); robot.beep(.2, 1174.66); robot.beep(.2, 1318.5); robot.beep(.2, 1174.66); robot.beep(.2, c); robot.beep(.2, 1174.66); robot.beep(.4, e); robot.beep(.4, c); robot.beep(.8, c); wait(.2); robot.beep(.133333, a); robot.beep(.133333, a); robot.beep(.133333, a); robot.beep(.4, c); robot.beep(.4, a); wait(.4); robot.beep(.133333, a);robot.beep(.133333, a);robot.beep(.133333, a); robot.beep(.4, b); robot.beep(.4, 783.99); wait(.4); robot.beep(.133333, a);robot.beep(.133333, a);robot.beep(.133333, a); robot.beep(.4, 932.33); robot.beep(.4, a); robot.beep(.4, c); robot.beep(.4, b); robot.beep(.4, d); robot.beep(.4, c); robot.beep(.2666666, g); robot.beep(.2666666, 1479.98); robot.beep(.2666666, f); robot.beep(.2666666,e); robot.beep(.2666666, 1244.51); robot.beep(.2666666,d); robot.beep(.2666666, 1108.73); robot.beep(.2666666, c); robot.beep(.2666666, b); robot.beep(.2666666, 932.33); robot.beep(.2666666, a); robot.beep(.2666666, 830.61); robot.beep(.2666666, 783.99); wait(.4); robot.beep(.4, 830.61); wait(.4); robot.beep(.4, a); wait(.4); robot.beep(.4, b); wait(.4); robot.beep(.2, c); robot.beep(.2, 783.99); robot.beep(.2, c); robot.beep(.2, d); robot.beep(.2, e); robot.beep(.2, d); robot.beep(.2, c); robot.beep(.2, d); robot.beep(.4, e); wait(.4); robot.beep(.4, e); robot.beep(.6, c); return; } void PlayNote(string note, string duration) { double freq; double time; // freq if (note == "G5") { freq = 783.99; } else if (note == "B5") { freq = 987.77; } else if (note == "C6") { freq = 1046.50; } else if (note == "D6") { freq = 1174.66; } else if (note == "D#6") { freq = 1244.51; } else if (note == "E6") { freq = 1318.51; } else if (note == "F6") { freq = 1396.91; } else if (note == "G6") { freq = 1567.98; } else if (note == "A6") { freq = 1760.00; } else if (note == "A#6") { freq = 1864.66; } else if (note == "B6") { freq = 1975.53; } else if (note == "C7") { freq = 2093.00; } else if (note == "C#7") { freq = 2217.46; } else if (note == "D7") { freq = 2349.32; } else if (note == "Rest") { freq = 0.0; } // time if (duration == "1/16") { time = 0.1; } else if (duration == "1/8") { time = 0.2; } else if (duration == "1/4") { time = 0.4; } else if (duration == "3/8") { time = 0.6; } else if (duration == "1/2") { time = 0.8; } else if (duration == "5/8") { time = 1.0; } else if (duration == "3/4") { time = 1.2; } else if (duration == "1") { time = 1.6; } else if (duration == "2") { time = 3.2; } robot.beep(time, freq); } void SingPokemon() { PlayNote("G5", "3/8"); PlayNote("B5", "1/16"); PlayNote("D6", "1"); PlayNote("F6", "3/8"); PlayNote("E6", "1/16"); PlayNote("D#6", "1/16"); PlayNote("D6", "1"); PlayNote("Rest", "1"); PlayNote("G5", "3/8"); PlayNote("B5", "1/16"); PlayNote("D6", "1"); PlayNote("F6", "1/4"); PlayNote("E6", "1/8"); PlayNote("F6", "1/8"); PlayNote("G6", "3/8"); PlayNote("A6", "1/4"); PlayNote("G6", "1"); PlayNote("Rest", "1"); return; } void Viva() { for(int i = 0; i < 2; i++) { robot.beep(0.3,698.46); robot.beep(0.3,698.46); robot.beep(0.2,698.46); robot.beep(0.2,659.26); robot.beep(0.2,698.46); robot.beep(0.5,659.26); robot.beep(0.2,698.46); robot.beep(0.3,493.88); robot.beep(1,554.37); wait(1); robot.beep(0.3,659.26); robot.beep(0.3,659.26); robot.beep(0.2,659.26); robot.beep(0.2,493.88); robot.beep(0.2,659.26); robot.beep(0.5,493.88); robot.beep(0.2,369.99); robot.beep(0.3,415.30); wait(1); } robot.beep(0.3,698.46); robot.beep(0.3,698.46); robot.beep(0.2,698.46); robot.beep(0.2,659.26); robot.beep(0.5,783.99); robot.beep(0.2,783.99); robot.beep(0.2,783.99); robot.beep(0.5,783.99); wait(1); robot.beep(0.3,659.26); robot.beep(0.3,659.26); robot.beep(0.3,659.26); robot.beep(0.2,587.33); robot.beep(0.2,554.37); robot.beep(0.5,554.37); wait(1); robot.beep(0.2,659.26); robot.beep(0.3,554.37); robot.beep(0.3,554.37); robot.beep(0.5,554.37); robot.beep(0.2,587.33); robot.beep(1,493.88); wait(1); robot.beep(0.2,369.99); robot.beep(0.2,493.88); robot.beep(0.2,440.00); robot.beep(0.2,369.99); robot.beep(0.5,369.99); robot.beep(0.5,493.88); robot.beep(0.2,369.99); robot.beep(1,440.00); wait(5); return; } void storms() { float qNote = 60/uBPM; float eNote = 30/uBPM; float hNote = 120/uBPM; float dqNote = 180/uBPM; wait(2); //Begin song of storms robot.beep(eNote, D6);//Measure 1 robot.beep(eNote, F6); robot.beep(hNote, D7); robot.beep(eNote, D6); robot.beep(eNote, F6); robot.beep(hNote, D7); robot.beep(qNote, E7); wait(eNote); robot.beep(eNote, F7); robot.beep(eNote, E7); robot.beep(eNote, F7); robot.beep(eNote, E7); robot.beep(eNote, C7); robot.beep(hNote, A6);//end of line 3 robot.beep(qNote, A6); robot.beep(qNote, D6); robot.beep(eNote, F6); robot.beep(eNote, G6); robot.beep(dqNote, A6); robot.beep(qNote, A6); robot.beep(qNote, D6); robot.beep(eNote, F6); robot.beep(eNote, G6); robot.beep(dqNote, E6);//first ending robot.beep(eNote, D6);//Measure 1, second repeat robot.beep(eNote, F6); robot.beep(hNote, D7); robot.beep(eNote, D6); robot.beep(eNote, F6); robot.beep(hNote, D7); robot.beep(qNote, E7); wait(eNote); robot.beep(eNote, F7); robot.beep(eNote, E7); robot.beep(eNote, F7); robot.beep(eNote, E7); robot.beep(eNote, C7); robot.beep(hNote, A6);//end of line 3, second repeat robot.beep(qNote, A6); robot.beep(qNote, D6); robot.beep(eNote, F6); robot.beep(eNote, G6); robot.beep(hNote, A6); robot.beep(qNote, A6); robot.beep(dqNote, D6); wait(dqNote*3); //end of Section 1, Rehearsal B robot.beep(eNote, D5);//Rehearsal C robot.beep(eNote, F5); robot.beep(hNote, D6); robot.beep(eNote, D5); robot.beep(eNote, F5); robot.beep(hNote, D6); robot.beep(qNote, E6); wait(eNote); robot.beep(eNote, F6); robot.beep(eNote, E6); robot.beep(eNote, F6); robot.beep(eNote, E6); robot.beep(eNote, C6); robot.beep(hNote, A5);//end of line 3, second page robot.beep(qNote, A5); robot.beep(qNote, D5); robot.beep(eNote, F5); robot.beep(eNote, G5); robot.beep(dqNote, A5); robot.beep(qNote, A5); robot.beep(qNote, D5); robot.beep(eNote, F5); robot.beep(eNote, G5); robot.beep(dqNote, E5);//first ending, second page robot.beep(eNote, D5);//Rehearsal C, second repeat robot.beep(eNote, F5); robot.beep(hNote, D6); robot.beep(eNote, D5); robot.beep(eNote, F5); robot.beep(hNote, D6); robot.beep(qNote, E6); wait(eNote); robot.beep(eNote, F6); robot.beep(eNote, E6); robot.beep(eNote, F6); robot.beep(eNote, E6); robot.beep(eNote, C6); robot.beep(hNote, A5);//end of line 3, second repeat, second page robot.beep(qNote, A5); robot.beep(qNote, D5); robot.beep(eNote, F5); robot.beep(eNote, G5); robot.beep(hNote, A5); robot.beep(qNote, A5); robot.beep(dqNote, D5); wait(2); return; } void stickman() { //legs robot.forward(1, 1); robot.turnRight(1, 1); robot.forward(1, 1); robot.turnLeft(1, 1.55); robot.forward(1, 1); robot.turnRight(1, .3); //body robot.forward(1, 1.25); //arms robot.turnRight(1, 1); robot.forward(1,.7); robot.turnLeft(1, 1.55); robot.forward(1,.7); robot.turnRight(1, .55); robot.turnLeft(1,1); robot.forward(1,.7); robot.turnRight(1, 1.55); robot.forward(1,.7); //head robot.motors(-.5, 1); wait(4); robot.motors(0,0); return; } void heart() { connect("/dev/rfcomm0"); robot.motors(1.0, 1.0); wait(1); robot.motors(0, 1.0); wait(3.0); robot.motors(1.0, -1.0); wait(0.8); robot.motors(0, 1.0); wait(3.2); robot.motors(1.0, 1.0); wait(1.1); cout << "Disconnecting" << endl; disconnect(); return; } void DrawPokeball() { cout << "Moving\n"; robot.motors(1.0/7.0, 1); wait(7.0*3.14159/3.0); robot.turnLeft(1, 0.75); robot.forward(1, 0.4); robot.turnRight(1, 0.75); robot.motors(-.5, 1); wait(2.0*3.14159); robot.turnRight(1, 0.75); robot.forward(1, 0.4); robot.stop(); return; } void randomdraw() { for(int i=0; i<20; i++) { robot.forward(rand()); robot.turnRight((double) rand()); robot.backward(rand()); } } int main() { srand (time(NULL)); connect("/dev/tty.Fluke2-0221-Fluke2"); int playlist[MAX]; int drawlist[MAX2]; for(int i =0; i> playlist[i]; } for(int i=0; i>drawlist[i]; } for(int i = 0; i