Mike Sheldon
/
Demo
main.cpp@0:a1614e89369b, 2009-09-17 (annotated)
- Committer:
- elleo
- Date:
- Thu Sep 17 23:48:06 2009 +0000
- Revision:
- 0:a1614e89369b
Who changed what in which revision?
User | Revision | Line number | New 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 | } |