Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // SongArray.cpp
- //
- //
- // Created by Graham Gier on 10/9/12.
- //
- //
- #include <Myro.h>
- #include <math.h>
- #include <stdio.h>
- #include <iostream>
- #include <cstdlib>
- 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<MAX; i++)
- {
- cout << "Choose a song. 0= fight song, 1= 1812 overture, 2 = pokemon, 3= viva la vida, 4 = song of storms" << endl;
- cin >> playlist[i];
- }
- for(int i=0; i<MAX; i++)
- {
- cout << "Song " << i << " is:";
- if (playlist[i] == 0) cout<< "The Trojan Fight Song"<<endl;
- else if (playlist[i] == 1) cout<< "The 1812 Overture"<<endl;
- else if (playlist[i] == 2) cout<<"The Pokémon Fight Song"<<endl;
- else if (playlist[i] == 3) cout<<"Viva la Vida"<<endl;
- else if (playlist[i] == 4) cout<<"The Song of Storms"<<endl;
- else cout << "invalid choice"<< endl;
- }
- for( int i = 0; i<MAX; i++)
- {
- if (playlist[i] == 0) fightsong();
- if (playlist[i] == 1) eighteen();
- if (playlist[i] == 2) SingPokemon();
- if (playlist[i] == 3) Viva();
- if (playlist[i] == 4) storms();
- }
- for (int i = 0; i<MAX2; i++)
- {
- cout << "Choose a drawing. 0= Stick figure, 1 = heart, 2 = pokéball 3= random"<<endl;
- cin>>drawlist[i];
- }
- for(int i = 0; i<MAX2; i++)
- {
- cout << "Drawing " << i << " is:";
- if (drawlist[i] == 0) cout<<"A stick figure"<<endl;
- else if (drawlist[i] == 1) cout <<"A heart"<<endl;
- else if (drawlist[i] == 2) cout <<"A Pokéball"<<endl;
- else if (drawlist[i] == 3) cout <<"Random"<<endl;
- else cout<<"invalid"<<endl;
- }
- for (int i =0; i<MAX2; i++)
- {
- switch (drawlist[i])
- {
- case 0:stickman();
- break;
- case 1: heart();
- break;
- case 2: DrawPokeball();
- break;
- case 3: randomdraw();
- break;
- default: cout<<"invalid"<<endl;
- break;
- }
- }
- disconnect();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement