Mike Sheldon / Mbed 2 deprecated Demo

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "Graphics.h"
00003 #include "Cuboid.h"
00004 #include "TrimeshObject.h"
00005 #include "TieFighter.h"
00006 #include "PluckedGuitar.h"
00007 #include "Synth.h"
00008 
00009 Graphics g(5, 6, 7, 8, 9);
00010 TrimeshObject tf(tie_fighter_vertices, tie_fighter_faces, TIE_FIGHTER_NUM_FACES);
00011 Synth s(18);
00012 
00013 void fly_me_to_the_moon(Synth *s) {
00014     //Fly me to the moon
00015     s->add_note(NOTE_C5, 1.5); 
00016     s->add_note(NOTE_B4, 0.5);
00017     s->add_note(NOTE_A4, 0.5);
00018     s->add_note(NOTE_G4, 0.5);
00019     
00020     s->add_note(NOTE_F4, 1.5);
00021     s->add_note(NOTE_G4, 0.5);
00022     s->add_note(NOTE_A4, 0.5);
00023     s->add_note(NOTE_C5, 0.5);
00024     
00025     s->add_note(NOTE_B4, 1.5);
00026     s->add_note(NOTE_A4, 0.5);
00027     s->add_note(NOTE_G4, 0.5);
00028     s->add_note(NOTE_F4, 0.5);
00029     
00030     s->add_note(NOTE_E4, 3);
00031     
00032     s->add_note(NOTE_A4, 1.5);
00033     s->add_note(NOTE_G4, 0.5);
00034     s->add_note(NOTE_F4, 0.5);
00035     s->add_note(NOTE_E4, 0.5);
00036     
00037     s->add_note(NOTE_D4, 1.5);
00038     s->add_note(NOTE_E4, 0.5);
00039     s->add_note(NOTE_F4, 0.5);
00040     s->add_note(NOTE_A4, 0.5);
00041     
00042     s->add_note(NOTE_A_FLAT4, 1.5);
00043     s->add_note(NOTE_F4, 0.5);
00044     s->add_note(NOTE_E4, 0.5);
00045     s->add_note(NOTE_D4, 0.5);
00046     
00047     s->add_note(NOTE_C4, 2);
00048     s->add_note(NOTE_C_SHARP4, 1);
00049     
00050     s->add_note(NOTE_D4, 0.5);
00051     s->add_note(NOTE_A4, 0.5);
00052     s->add_note(NOTE_A4, 3);
00053     s->add_note(NOTE_C5, 1);
00054     s->add_note(NOTE_B4, 1);
00055     
00056     s->add_note(NOTE_G4, 5);
00057     s->add_note(NOTE_B3, 1);
00058     
00059     s->add_note(NOTE_C4, 0.5);
00060     s->add_note(NOTE_F4, 0.5);
00061     s->add_note(NOTE_F4, 3);
00062     s->add_note(NOTE_A4, 1);
00063     s->add_note(NOTE_G4, 1);
00064     s->add_note(NOTE_F4, 1);
00065     s->add_note(NOTE_E4, 5);
00066     
00067     s->add_note(NOTE_C5, 1.5);
00068     s->add_note(NOTE_B4, 0.5);
00069     s->add_note(NOTE_A4, 0.5);
00070     s->add_note(NOTE_G4, 0.5);
00071     
00072     s->add_note(NOTE_F4, 1.5);
00073     s->add_note(NOTE_G4, 0.5);
00074     s->add_note(NOTE_A4, 0.5);
00075     s->add_note(NOTE_C5, 0.5);
00076     
00077     s->add_note(NOTE_B4, 1.5);
00078     s->add_note(NOTE_A4, 0.5);
00079     s->add_note(NOTE_G4, 0.5);
00080     s->add_note(NOTE_F4, 0.5);
00081     
00082     s->add_note(NOTE_E4, 3);
00083     
00084     s->add_note(NOTE_A4, 1.5);
00085     s->add_note(NOTE_G4, 0.5);
00086     s->add_note(NOTE_F4, 0.5);
00087     s->add_note(NOTE_E4, 0.5);
00088     
00089     s->add_note(NOTE_D4, 1.5);
00090     s->add_note(NOTE_E4, 0.5);
00091     s->add_note(NOTE_F4, 0.5);
00092     s->add_note(NOTE_G4, 0.5);
00093     
00094     s->add_note(NOTE_A_FLAT4, 1.5);
00095     s->add_note(NOTE_F4, 0.5);
00096     s->add_note(NOTE_E4, 0.5);
00097     s->add_note(NOTE_D4, 0.5);
00098     
00099     s->add_note(NOTE_C4, 2);
00100     s->add_note(NOTE_C_SHARP4, 1);
00101     
00102     s->add_note(NOTE_D4, 0.5);
00103     s->add_note(NOTE_A4, 0.5);
00104     s->add_note(NOTE_A4, 3);
00105     s->add_note(NOTE_C5, 1);
00106     s->add_note(NOTE_B4, 1);
00107     
00108     s->add_note(NOTE_G4, 5);
00109     s->add_note(NOTE_A_FLAT4, 1);
00110     
00111     s->add_note(NOTE_A4, 0.5);
00112     s->add_note(NOTE_C4, 0.5);
00113     s->add_note(NOTE_C4, 3);
00114     s->add_note(NOTE_C4, 1);
00115     s->add_note(NOTE_D4, 1);
00116     
00117     s->add_note(NOTE_C4, 3);
00118 }
00119 
00120 
00121 int main() {
00122     double rotx = 0, roty = 0, rotz = 0;
00123     PluckedGuitar *guitar = new PluckedGuitar();
00124     s.set_bpm(100);
00125     s.set_instrument(guitar);
00126     fly_me_to_the_moon(&s);
00127     s.play();
00128 
00129     while (1) {
00130         rotx += 0.1;
00131         roty += 0.08;
00132         rotz += 0.05;
00133         
00134         tf.rotate(rotx, roty, rotz);
00135         tf.colour(0xffffff);
00136         tf.render(g);
00137         wait(0.02);
00138         g.fill(40, 40, 52, 52, 0x000000);
00139     }
00140 }