Dependencies:   mbed

Committer:
elleo
Date:
Thu Sep 17 23:48:06 2009 +0000
Revision:
0:a1614e89369b

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
elleo 0:a1614e89369b 1 #include "mbed.h"
elleo 0:a1614e89369b 2 #include "Graphics.h"
elleo 0:a1614e89369b 3 #include "Cuboid.h"
elleo 0:a1614e89369b 4 #include "TrimeshObject.h"
elleo 0:a1614e89369b 5 #include "TieFighter.h"
elleo 0:a1614e89369b 6 #include "PluckedGuitar.h"
elleo 0:a1614e89369b 7 #include "Synth.h"
elleo 0:a1614e89369b 8
elleo 0:a1614e89369b 9 Graphics g(5, 6, 7, 8, 9);
elleo 0:a1614e89369b 10 TrimeshObject tf(tie_fighter_vertices, tie_fighter_faces, TIE_FIGHTER_NUM_FACES);
elleo 0:a1614e89369b 11 Synth s(18);
elleo 0:a1614e89369b 12
elleo 0:a1614e89369b 13 void fly_me_to_the_moon(Synth *s) {
elleo 0:a1614e89369b 14 //Fly me to the moon
elleo 0:a1614e89369b 15 s->add_note(NOTE_C5, 1.5);
elleo 0:a1614e89369b 16 s->add_note(NOTE_B4, 0.5);
elleo 0:a1614e89369b 17 s->add_note(NOTE_A4, 0.5);
elleo 0:a1614e89369b 18 s->add_note(NOTE_G4, 0.5);
elleo 0:a1614e89369b 19
elleo 0:a1614e89369b 20 s->add_note(NOTE_F4, 1.5);
elleo 0:a1614e89369b 21 s->add_note(NOTE_G4, 0.5);
elleo 0:a1614e89369b 22 s->add_note(NOTE_A4, 0.5);
elleo 0:a1614e89369b 23 s->add_note(NOTE_C5, 0.5);
elleo 0:a1614e89369b 24
elleo 0:a1614e89369b 25 s->add_note(NOTE_B4, 1.5);
elleo 0:a1614e89369b 26 s->add_note(NOTE_A4, 0.5);
elleo 0:a1614e89369b 27 s->add_note(NOTE_G4, 0.5);
elleo 0:a1614e89369b 28 s->add_note(NOTE_F4, 0.5);
elleo 0:a1614e89369b 29
elleo 0:a1614e89369b 30 s->add_note(NOTE_E4, 3);
elleo 0:a1614e89369b 31
elleo 0:a1614e89369b 32 s->add_note(NOTE_A4, 1.5);
elleo 0:a1614e89369b 33 s->add_note(NOTE_G4, 0.5);
elleo 0:a1614e89369b 34 s->add_note(NOTE_F4, 0.5);
elleo 0:a1614e89369b 35 s->add_note(NOTE_E4, 0.5);
elleo 0:a1614e89369b 36
elleo 0:a1614e89369b 37 s->add_note(NOTE_D4, 1.5);
elleo 0:a1614e89369b 38 s->add_note(NOTE_E4, 0.5);
elleo 0:a1614e89369b 39 s->add_note(NOTE_F4, 0.5);
elleo 0:a1614e89369b 40 s->add_note(NOTE_A4, 0.5);
elleo 0:a1614e89369b 41
elleo 0:a1614e89369b 42 s->add_note(NOTE_A_FLAT4, 1.5);
elleo 0:a1614e89369b 43 s->add_note(NOTE_F4, 0.5);
elleo 0:a1614e89369b 44 s->add_note(NOTE_E4, 0.5);
elleo 0:a1614e89369b 45 s->add_note(NOTE_D4, 0.5);
elleo 0:a1614e89369b 46
elleo 0:a1614e89369b 47 s->add_note(NOTE_C4, 2);
elleo 0:a1614e89369b 48 s->add_note(NOTE_C_SHARP4, 1);
elleo 0:a1614e89369b 49
elleo 0:a1614e89369b 50 s->add_note(NOTE_D4, 0.5);
elleo 0:a1614e89369b 51 s->add_note(NOTE_A4, 0.5);
elleo 0:a1614e89369b 52 s->add_note(NOTE_A4, 3);
elleo 0:a1614e89369b 53 s->add_note(NOTE_C5, 1);
elleo 0:a1614e89369b 54 s->add_note(NOTE_B4, 1);
elleo 0:a1614e89369b 55
elleo 0:a1614e89369b 56 s->add_note(NOTE_G4, 5);
elleo 0:a1614e89369b 57 s->add_note(NOTE_B3, 1);
elleo 0:a1614e89369b 58
elleo 0:a1614e89369b 59 s->add_note(NOTE_C4, 0.5);
elleo 0:a1614e89369b 60 s->add_note(NOTE_F4, 0.5);
elleo 0:a1614e89369b 61 s->add_note(NOTE_F4, 3);
elleo 0:a1614e89369b 62 s->add_note(NOTE_A4, 1);
elleo 0:a1614e89369b 63 s->add_note(NOTE_G4, 1);
elleo 0:a1614e89369b 64 s->add_note(NOTE_F4, 1);
elleo 0:a1614e89369b 65 s->add_note(NOTE_E4, 5);
elleo 0:a1614e89369b 66
elleo 0:a1614e89369b 67 s->add_note(NOTE_C5, 1.5);
elleo 0:a1614e89369b 68 s->add_note(NOTE_B4, 0.5);
elleo 0:a1614e89369b 69 s->add_note(NOTE_A4, 0.5);
elleo 0:a1614e89369b 70 s->add_note(NOTE_G4, 0.5);
elleo 0:a1614e89369b 71
elleo 0:a1614e89369b 72 s->add_note(NOTE_F4, 1.5);
elleo 0:a1614e89369b 73 s->add_note(NOTE_G4, 0.5);
elleo 0:a1614e89369b 74 s->add_note(NOTE_A4, 0.5);
elleo 0:a1614e89369b 75 s->add_note(NOTE_C5, 0.5);
elleo 0:a1614e89369b 76
elleo 0:a1614e89369b 77 s->add_note(NOTE_B4, 1.5);
elleo 0:a1614e89369b 78 s->add_note(NOTE_A4, 0.5);
elleo 0:a1614e89369b 79 s->add_note(NOTE_G4, 0.5);
elleo 0:a1614e89369b 80 s->add_note(NOTE_F4, 0.5);
elleo 0:a1614e89369b 81
elleo 0:a1614e89369b 82 s->add_note(NOTE_E4, 3);
elleo 0:a1614e89369b 83
elleo 0:a1614e89369b 84 s->add_note(NOTE_A4, 1.5);
elleo 0:a1614e89369b 85 s->add_note(NOTE_G4, 0.5);
elleo 0:a1614e89369b 86 s->add_note(NOTE_F4, 0.5);
elleo 0:a1614e89369b 87 s->add_note(NOTE_E4, 0.5);
elleo 0:a1614e89369b 88
elleo 0:a1614e89369b 89 s->add_note(NOTE_D4, 1.5);
elleo 0:a1614e89369b 90 s->add_note(NOTE_E4, 0.5);
elleo 0:a1614e89369b 91 s->add_note(NOTE_F4, 0.5);
elleo 0:a1614e89369b 92 s->add_note(NOTE_G4, 0.5);
elleo 0:a1614e89369b 93
elleo 0:a1614e89369b 94 s->add_note(NOTE_A_FLAT4, 1.5);
elleo 0:a1614e89369b 95 s->add_note(NOTE_F4, 0.5);
elleo 0:a1614e89369b 96 s->add_note(NOTE_E4, 0.5);
elleo 0:a1614e89369b 97 s->add_note(NOTE_D4, 0.5);
elleo 0:a1614e89369b 98
elleo 0:a1614e89369b 99 s->add_note(NOTE_C4, 2);
elleo 0:a1614e89369b 100 s->add_note(NOTE_C_SHARP4, 1);
elleo 0:a1614e89369b 101
elleo 0:a1614e89369b 102 s->add_note(NOTE_D4, 0.5);
elleo 0:a1614e89369b 103 s->add_note(NOTE_A4, 0.5);
elleo 0:a1614e89369b 104 s->add_note(NOTE_A4, 3);
elleo 0:a1614e89369b 105 s->add_note(NOTE_C5, 1);
elleo 0:a1614e89369b 106 s->add_note(NOTE_B4, 1);
elleo 0:a1614e89369b 107
elleo 0:a1614e89369b 108 s->add_note(NOTE_G4, 5);
elleo 0:a1614e89369b 109 s->add_note(NOTE_A_FLAT4, 1);
elleo 0:a1614e89369b 110
elleo 0:a1614e89369b 111 s->add_note(NOTE_A4, 0.5);
elleo 0:a1614e89369b 112 s->add_note(NOTE_C4, 0.5);
elleo 0:a1614e89369b 113 s->add_note(NOTE_C4, 3);
elleo 0:a1614e89369b 114 s->add_note(NOTE_C4, 1);
elleo 0:a1614e89369b 115 s->add_note(NOTE_D4, 1);
elleo 0:a1614e89369b 116
elleo 0:a1614e89369b 117 s->add_note(NOTE_C4, 3);
elleo 0:a1614e89369b 118 }
elleo 0:a1614e89369b 119
elleo 0:a1614e89369b 120
elleo 0:a1614e89369b 121 int main() {
elleo 0:a1614e89369b 122 double rotx = 0, roty = 0, rotz = 0;
elleo 0:a1614e89369b 123 PluckedGuitar *guitar = new PluckedGuitar();
elleo 0:a1614e89369b 124 s.set_bpm(100);
elleo 0:a1614e89369b 125 s.set_instrument(guitar);
elleo 0:a1614e89369b 126 fly_me_to_the_moon(&s);
elleo 0:a1614e89369b 127 s.play();
elleo 0:a1614e89369b 128
elleo 0:a1614e89369b 129 while (1) {
elleo 0:a1614e89369b 130 rotx += 0.1;
elleo 0:a1614e89369b 131 roty += 0.08;
elleo 0:a1614e89369b 132 rotz += 0.05;
elleo 0:a1614e89369b 133
elleo 0:a1614e89369b 134 tf.rotate(rotx, roty, rotz);
elleo 0:a1614e89369b 135 tf.colour(0xffffff);
elleo 0:a1614e89369b 136 tf.render(g);
elleo 0:a1614e89369b 137 wait(0.02);
elleo 0:a1614e89369b 138 g.fill(40, 40, 52, 52, 0x000000);
elleo 0:a1614e89369b 139 }
elleo 0:a1614e89369b 140 }