Dependencies:   mbed

Revision:
0:a1614e89369b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Sep 17 23:48:06 2009 +0000
@@ -0,0 +1,140 @@
+#include "mbed.h"
+#include "Graphics.h"
+#include "Cuboid.h"
+#include "TrimeshObject.h"
+#include "TieFighter.h"
+#include "PluckedGuitar.h"
+#include "Synth.h"
+
+Graphics g(5, 6, 7, 8, 9);
+TrimeshObject tf(tie_fighter_vertices, tie_fighter_faces, TIE_FIGHTER_NUM_FACES);
+Synth s(18);
+
+void fly_me_to_the_moon(Synth *s) {
+    //Fly me to the moon
+    s->add_note(NOTE_C5, 1.5); 
+    s->add_note(NOTE_B4, 0.5);
+    s->add_note(NOTE_A4, 0.5);
+    s->add_note(NOTE_G4, 0.5);
+    
+    s->add_note(NOTE_F4, 1.5);
+    s->add_note(NOTE_G4, 0.5);
+    s->add_note(NOTE_A4, 0.5);
+    s->add_note(NOTE_C5, 0.5);
+    
+    s->add_note(NOTE_B4, 1.5);
+    s->add_note(NOTE_A4, 0.5);
+    s->add_note(NOTE_G4, 0.5);
+    s->add_note(NOTE_F4, 0.5);
+    
+    s->add_note(NOTE_E4, 3);
+    
+    s->add_note(NOTE_A4, 1.5);
+    s->add_note(NOTE_G4, 0.5);
+    s->add_note(NOTE_F4, 0.5);
+    s->add_note(NOTE_E4, 0.5);
+    
+    s->add_note(NOTE_D4, 1.5);
+    s->add_note(NOTE_E4, 0.5);
+    s->add_note(NOTE_F4, 0.5);
+    s->add_note(NOTE_A4, 0.5);
+    
+    s->add_note(NOTE_A_FLAT4, 1.5);
+    s->add_note(NOTE_F4, 0.5);
+    s->add_note(NOTE_E4, 0.5);
+    s->add_note(NOTE_D4, 0.5);
+    
+    s->add_note(NOTE_C4, 2);
+    s->add_note(NOTE_C_SHARP4, 1);
+    
+    s->add_note(NOTE_D4, 0.5);
+    s->add_note(NOTE_A4, 0.5);
+    s->add_note(NOTE_A4, 3);
+    s->add_note(NOTE_C5, 1);
+    s->add_note(NOTE_B4, 1);
+    
+    s->add_note(NOTE_G4, 5);
+    s->add_note(NOTE_B3, 1);
+    
+    s->add_note(NOTE_C4, 0.5);
+    s->add_note(NOTE_F4, 0.5);
+    s->add_note(NOTE_F4, 3);
+    s->add_note(NOTE_A4, 1);
+    s->add_note(NOTE_G4, 1);
+    s->add_note(NOTE_F4, 1);
+    s->add_note(NOTE_E4, 5);
+    
+    s->add_note(NOTE_C5, 1.5);
+    s->add_note(NOTE_B4, 0.5);
+    s->add_note(NOTE_A4, 0.5);
+    s->add_note(NOTE_G4, 0.5);
+    
+    s->add_note(NOTE_F4, 1.5);
+    s->add_note(NOTE_G4, 0.5);
+    s->add_note(NOTE_A4, 0.5);
+    s->add_note(NOTE_C5, 0.5);
+    
+    s->add_note(NOTE_B4, 1.5);
+    s->add_note(NOTE_A4, 0.5);
+    s->add_note(NOTE_G4, 0.5);
+    s->add_note(NOTE_F4, 0.5);
+    
+    s->add_note(NOTE_E4, 3);
+    
+    s->add_note(NOTE_A4, 1.5);
+    s->add_note(NOTE_G4, 0.5);
+    s->add_note(NOTE_F4, 0.5);
+    s->add_note(NOTE_E4, 0.5);
+    
+    s->add_note(NOTE_D4, 1.5);
+    s->add_note(NOTE_E4, 0.5);
+    s->add_note(NOTE_F4, 0.5);
+    s->add_note(NOTE_G4, 0.5);
+    
+    s->add_note(NOTE_A_FLAT4, 1.5);
+    s->add_note(NOTE_F4, 0.5);
+    s->add_note(NOTE_E4, 0.5);
+    s->add_note(NOTE_D4, 0.5);
+    
+    s->add_note(NOTE_C4, 2);
+    s->add_note(NOTE_C_SHARP4, 1);
+    
+    s->add_note(NOTE_D4, 0.5);
+    s->add_note(NOTE_A4, 0.5);
+    s->add_note(NOTE_A4, 3);
+    s->add_note(NOTE_C5, 1);
+    s->add_note(NOTE_B4, 1);
+    
+    s->add_note(NOTE_G4, 5);
+    s->add_note(NOTE_A_FLAT4, 1);
+    
+    s->add_note(NOTE_A4, 0.5);
+    s->add_note(NOTE_C4, 0.5);
+    s->add_note(NOTE_C4, 3);
+    s->add_note(NOTE_C4, 1);
+    s->add_note(NOTE_D4, 1);
+    
+    s->add_note(NOTE_C4, 3);
+}
+
+
+int main() {
+    double rotx = 0, roty = 0, rotz = 0;
+    PluckedGuitar *guitar = new PluckedGuitar();
+    s.set_bpm(100);
+    s.set_instrument(guitar);
+    fly_me_to_the_moon(&s);
+    s.play();
+
+    while (1) {
+        rotx += 0.1;
+        roty += 0.08;
+        rotz += 0.05;
+        
+        tf.rotate(rotx, roty, rotz);
+        tf.colour(0xffffff);
+        tf.render(g);
+        wait(0.02);
+        g.fill(40, 40, 52, 52, 0x000000);
+    }
+}