The project is not done yet

Dependencies:   USBHost USBHostXpad mbed-rtos mbed

Fork of Totaleprogramma by jordy morsinkhof

Committer:
juliandekker
Date:
Mon Mar 02 10:58:30 2015 +0000
Revision:
1:da390b3b1330
Parent:
0:345f76c72b9a
xbox controller robot

Who changed what in which revision?

UserRevisionLine numberNew contents of line
347467 0:345f76c72b9a 1
347467 0:345f76c72b9a 2 #include "Speaker.h"
347467 0:345f76c72b9a 3 #include <vector>
347467 0:345f76c72b9a 4
347467 0:345f76c72b9a 5 //This needs work to get threading working
347467 0:345f76c72b9a 6
347467 0:345f76c72b9a 7 class Audio{
347467 0:345f76c72b9a 8 private:
347467 0:345f76c72b9a 9 Mutex mutex;
347467 0:345f76c72b9a 10 Speaker& speaker;
347467 0:345f76c72b9a 11 bool playing;
347467 0:345f76c72b9a 12 int code; //sound code
347467 0:345f76c72b9a 13
347467 0:345f76c72b9a 14 bool getplaying(){
347467 0:345f76c72b9a 15 bool b;
347467 0:345f76c72b9a 16 mutex.lock();
347467 0:345f76c72b9a 17 b = playing;
347467 0:345f76c72b9a 18 mutex.unlock();
347467 0:345f76c72b9a 19 return b;
347467 0:345f76c72b9a 20 }
347467 0:345f76c72b9a 21 int getcode(){
347467 0:345f76c72b9a 22 int c;
347467 0:345f76c72b9a 23 mutex.lock();
347467 0:345f76c72b9a 24 c = code;
347467 0:345f76c72b9a 25 mutex.unlock();
347467 0:345f76c72b9a 26 return c;
347467 0:345f76c72b9a 27 }
347467 0:345f76c72b9a 28 public:
347467 0:345f76c72b9a 29 Audio(Speaker& ao) : speaker(ao)
347467 0:345f76c72b9a 30 {
347467 0:345f76c72b9a 31 }
347467 0:345f76c72b9a 32 void play(int code){
347467 0:345f76c72b9a 33 mutex.lock();
347467 0:345f76c72b9a 34 this->code = code;
347467 0:345f76c72b9a 35 this->playing = true;
347467 0:345f76c72b9a 36 mutex.unlock();
347467 0:345f76c72b9a 37 }
347467 0:345f76c72b9a 38 void stop(){
347467 0:345f76c72b9a 39 mutex.lock();
347467 0:345f76c72b9a 40 this->playing = false;
347467 0:345f76c72b9a 41 mutex.unlock();
347467 0:345f76c72b9a 42 }
347467 0:345f76c72b9a 43
347467 0:345f76c72b9a 44 void run(){
347467 0:345f76c72b9a 45 while(true){ //service audio requests...
347467 0:345f76c72b9a 46
347467 0:345f76c72b9a 47 //if not playing, wait fast
347467 0:345f76c72b9a 48 if(!getplaying()){
347467 0:345f76c72b9a 49 Thread::wait(1);
347467 0:345f76c72b9a 50 continue;
347467 0:345f76c72b9a 51 }
347467 0:345f76c72b9a 52
347467 0:345f76c72b9a 53
347467 0:345f76c72b9a 54 int code = getcode();
347467 0:345f76c72b9a 55
347467 0:345f76c72b9a 56 switch(code){
347467 0:345f76c72b9a 57 case 0: // up
347467 0:345f76c72b9a 58 speaker.PlayNote(500.0, 0.05, 1.0);
347467 0:345f76c72b9a 59 speaker.PlayNote(600.0, 0.05, 1.0);
347467 0:345f76c72b9a 60 speaker.PlayNote(700.0, 0.05, 1.0);
347467 0:345f76c72b9a 61 break;
347467 0:345f76c72b9a 62 case 1: // down
347467 0:345f76c72b9a 63 speaker.PlayNote(500.0, 0.05, 1.0);
347467 0:345f76c72b9a 64 speaker.PlayNote(550.0, 0.05, 1.0);
347467 0:345f76c72b9a 65 break;
347467 0:345f76c72b9a 66 case 2: //left
347467 0:345f76c72b9a 67 speaker.PlayNote(400.0, 0.1, 1.0);
347467 0:345f76c72b9a 68 speaker.PlayNote(500.0, 0.1, 1.0);
347467 0:345f76c72b9a 69 break;
347467 0:345f76c72b9a 70 case 3: // right
347467 0:345f76c72b9a 71 speaker.PlayNote(600.0, 0.05, 1.0);
347467 0:345f76c72b9a 72 speaker.PlayNote(500.0, 0.05, 1.0);
347467 0:345f76c72b9a 73 break;
347467 0:345f76c72b9a 74
347467 0:345f76c72b9a 75 // trigger sound
347467 0:345f76c72b9a 76 case 4:
347467 0:345f76c72b9a 77
347467 0:345f76c72b9a 78 speaker.PlayNote(500.0, 0.05, 1.0);
347467 0:345f76c72b9a 79 speaker.PlayNote(600.0, 0.05, 1.0);
347467 0:345f76c72b9a 80 speaker.PlayNote(700.0, 0.05, 1.0);
347467 0:345f76c72b9a 81 break;
347467 0:345f76c72b9a 82
347467 0:345f76c72b9a 83 // mario!
347467 0:345f76c72b9a 84 case 5:
347467 0:345f76c72b9a 85 playMario();
347467 0:345f76c72b9a 86 break;
347467 0:345f76c72b9a 87 default: break;
347467 0:345f76c72b9a 88 }
347467 0:345f76c72b9a 89
347467 0:345f76c72b9a 90
347467 0:345f76c72b9a 91 //Thread::wait(10);
347467 0:345f76c72b9a 92 }
347467 0:345f76c72b9a 93 }
347467 0:345f76c72b9a 94
347467 0:345f76c72b9a 95
347467 0:345f76c72b9a 96 void playNote(float a, float b, float c){
347467 0:345f76c72b9a 97 speaker.PlayNote(a,b,c);
347467 0:345f76c72b9a 98 }
347467 0:345f76c72b9a 99
347467 0:345f76c72b9a 100 public:
347467 0:345f76c72b9a 101
347467 0:345f76c72b9a 102 void playMario(){
347467 0:345f76c72b9a 103
347467 0:345f76c72b9a 104 playNote(660.0, 0.08, 1.0);
347467 0:345f76c72b9a 105 Thread::wait(113);
347467 0:345f76c72b9a 106 playNote(660.0, 0.08, 1.0);
347467 0:345f76c72b9a 107 Thread::wait(225);
347467 0:345f76c72b9a 108 playNote(660.0, 0.08, 1.0);
347467 0:345f76c72b9a 109 Thread::wait(225);
347467 0:345f76c72b9a 110 playNote(510.0, 0.08, 1.0);
347467 0:345f76c72b9a 111 Thread::wait(75);
347467 0:345f76c72b9a 112 playNote(660.0, 0.08, 1.0);
347467 0:345f76c72b9a 113 Thread::wait(225);
347467 0:345f76c72b9a 114 playNote(770.0, 0.08, 1.0);
347467 0:345f76c72b9a 115 Thread::wait(413);
347467 0:345f76c72b9a 116 playNote(380.0, 0.08, 1.0);
347467 0:345f76c72b9a 117 Thread::wait(431);
347467 0:345f76c72b9a 118 playNote(510.0, 0.08, 1.0);
347467 0:345f76c72b9a 119 Thread::wait(338);
347467 0:345f76c72b9a 120 playNote(380.0, 0.08, 1.0);
347467 0:345f76c72b9a 121 Thread::wait(300);
347467 0:345f76c72b9a 122 playNote(320.0, 0.08, 1.0);
347467 0:345f76c72b9a 123 Thread::wait(375);
347467 0:345f76c72b9a 124 playNote(440.0, 0.08, 1.0);
347467 0:345f76c72b9a 125 Thread::wait(225);
347467 0:345f76c72b9a 126 playNote(480.0, 0.06, 1.0);
347467 0:345f76c72b9a 127 Thread::wait(248);
347467 0:345f76c72b9a 128 playNote(450.0, 0.08, 1.0);
347467 0:345f76c72b9a 129 Thread::wait(113);
347467 0:345f76c72b9a 130 playNote(430.0, 0.08, 1.0);
347467 0:345f76c72b9a 131 Thread::wait(225);
347467 0:345f76c72b9a 132 playNote(380.0, 0.08, 1.0);
347467 0:345f76c72b9a 133 Thread::wait(150);
347467 0:345f76c72b9a 134 playNote(660.0, 0.06, 1.0);
347467 0:345f76c72b9a 135 Thread::wait(150);
347467 0:345f76c72b9a 136 playNote(760.0, 0.04, 1.0);
347467 0:345f76c72b9a 137 Thread::wait(113);
347467 0:345f76c72b9a 138 playNote(860.0, 0.08, 1.0);
347467 0:345f76c72b9a 139 Thread::wait(225);
347467 0:345f76c72b9a 140 playNote(700.0, 0.06, 1.0);
347467 0:345f76c72b9a 141 Thread::wait(113);
347467 0:345f76c72b9a 142 playNote(760.0, 0.04, 1.0);
347467 0:345f76c72b9a 143 Thread::wait(263);
347467 0:345f76c72b9a 144 playNote(660.0, 0.06, 1.0);
347467 0:345f76c72b9a 145 Thread::wait(225);
347467 0:345f76c72b9a 146 playNote(520.0, 0.06, 1.0);
347467 0:345f76c72b9a 147 Thread::wait(113);
347467 0:345f76c72b9a 148 playNote(580.0, 0.06, 1.0);
347467 0:345f76c72b9a 149 Thread::wait(113);
347467 0:345f76c72b9a 150 playNote(480.0, 0.06, 1.0);
347467 0:345f76c72b9a 151 Thread::wait(375);
347467 0:345f76c72b9a 152 playNote(510.0, 0.08, 1.0);
347467 0:345f76c72b9a 153 Thread::wait(338);
347467 0:345f76c72b9a 154 playNote(380.0, 0.08, 1.0);
347467 0:345f76c72b9a 155 Thread::wait(300);
347467 0:345f76c72b9a 156 playNote(320.0, 0.08, 1.0);
347467 0:345f76c72b9a 157 Thread::wait(375);
347467 0:345f76c72b9a 158 playNote(440.0, 0.08, 1.0);
347467 0:345f76c72b9a 159 Thread::wait(225);
347467 0:345f76c72b9a 160 playNote(480.0, 0.06, 1.0);
347467 0:345f76c72b9a 161 Thread::wait(248);
347467 0:345f76c72b9a 162 playNote(450.0, 0.08, 1.0);
347467 0:345f76c72b9a 163 Thread::wait(113);
347467 0:345f76c72b9a 164 playNote(430.0, 0.08, 1.0);
347467 0:345f76c72b9a 165 Thread::wait(225);
347467 0:345f76c72b9a 166 playNote(380.0, 0.08, 1.0);
347467 0:345f76c72b9a 167 Thread::wait(150);
347467 0:345f76c72b9a 168 playNote(660.0, 0.06, 1.0);
347467 0:345f76c72b9a 169 Thread::wait(150);
347467 0:345f76c72b9a 170 playNote(760.0, 0.04, 1.0);
347467 0:345f76c72b9a 171 Thread::wait(113);
347467 0:345f76c72b9a 172 playNote(860.0, 0.08, 1.0);
347467 0:345f76c72b9a 173 Thread::wait(225);
347467 0:345f76c72b9a 174 playNote(700.0, 0.06, 1.0);
347467 0:345f76c72b9a 175 Thread::wait(113);
347467 0:345f76c72b9a 176 playNote(760.0, 0.04, 1.0);
347467 0:345f76c72b9a 177 Thread::wait(263);
347467 0:345f76c72b9a 178 playNote(660.0, 0.06, 1.0);
347467 0:345f76c72b9a 179 Thread::wait(225);
347467 0:345f76c72b9a 180 playNote(520.0, 0.06, 1.0);
347467 0:345f76c72b9a 181 Thread::wait(113);
347467 0:345f76c72b9a 182 playNote(580.0, 0.06, 1.0);
347467 0:345f76c72b9a 183 Thread::wait(113);
347467 0:345f76c72b9a 184 playNote(480.0, 0.06, 1.0);
347467 0:345f76c72b9a 185 Thread::wait(375);
347467 0:345f76c72b9a 186 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 187 Thread::wait(225);
347467 0:345f76c72b9a 188 playNote(760.0, 0.08, 1.0);
347467 0:345f76c72b9a 189 Thread::wait(75);
347467 0:345f76c72b9a 190 playNote(720.0, 0.08, 1.0);
347467 0:345f76c72b9a 191 Thread::wait(113);
347467 0:345f76c72b9a 192 playNote(680.0, 0.08, 1.0);
347467 0:345f76c72b9a 193 Thread::wait(113);
347467 0:345f76c72b9a 194 playNote(620.0, 0.11, 1.0);
347467 0:345f76c72b9a 195 Thread::wait(225);
347467 0:345f76c72b9a 196 playNote(650.0, 0.11, 1.0);
347467 0:345f76c72b9a 197 Thread::wait(225);
347467 0:345f76c72b9a 198 playNote(380.0, 0.08, 1.0);
347467 0:345f76c72b9a 199 Thread::wait(113);
347467 0:345f76c72b9a 200 playNote(430.0, 0.08, 1.0);
347467 0:345f76c72b9a 201 Thread::wait(113);
347467 0:345f76c72b9a 202 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 203 Thread::wait(225);
347467 0:345f76c72b9a 204 playNote(430.0, 0.08, 1.0);
347467 0:345f76c72b9a 205 Thread::wait(113);
347467 0:345f76c72b9a 206 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 207 Thread::wait(75);
347467 0:345f76c72b9a 208 playNote(570.0, 0.08, 1.0);
347467 0:345f76c72b9a 209 Thread::wait(165);
347467 0:345f76c72b9a 210 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 211 Thread::wait(225);
347467 0:345f76c72b9a 212 playNote(760.0, 0.08, 1.0);
347467 0:345f76c72b9a 213 Thread::wait(75);
347467 0:345f76c72b9a 214 playNote(720.0, 0.08, 1.0);
347467 0:345f76c72b9a 215 Thread::wait(113);
347467 0:345f76c72b9a 216 playNote(680.0, 0.08, 1.0);
347467 0:345f76c72b9a 217 Thread::wait(113);
347467 0:345f76c72b9a 218 playNote(620.0, 0.11, 1.0);
347467 0:345f76c72b9a 219 Thread::wait(225);
347467 0:345f76c72b9a 220 playNote(650.0, 0.15, 1.0);
347467 0:345f76c72b9a 221 Thread::wait(225);
347467 0:345f76c72b9a 222 playNote(1020.0, 0.06, 1.0);
347467 0:345f76c72b9a 223 Thread::wait(225);
347467 0:345f76c72b9a 224 playNote(1020.0, 0.06, 1.0);
347467 0:345f76c72b9a 225 Thread::wait(113);
347467 0:345f76c72b9a 226 playNote(1020.0, 0.06, 1.0);
347467 0:345f76c72b9a 227 Thread::wait(225);
347467 0:345f76c72b9a 228 playNote(380.0, 0.08, 1.0);
347467 0:345f76c72b9a 229 Thread::wait(225);
347467 0:345f76c72b9a 230 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 231 Thread::wait(225);
347467 0:345f76c72b9a 232 playNote(760.0, 0.08, 1.0);
347467 0:345f76c72b9a 233 Thread::wait(75);
347467 0:345f76c72b9a 234 playNote(720.0, 0.08, 1.0);
347467 0:345f76c72b9a 235 Thread::wait(113);
347467 0:345f76c72b9a 236 playNote(680.0, 0.08, 1.0);
347467 0:345f76c72b9a 237 Thread::wait(113);
347467 0:345f76c72b9a 238 playNote(620.0, 0.11, 1.0);
347467 0:345f76c72b9a 239 Thread::wait(225);
347467 0:345f76c72b9a 240 playNote(650.0, 0.11, 1.0);
347467 0:345f76c72b9a 241 Thread::wait(225);
347467 0:345f76c72b9a 242 playNote(380.0, 0.08, 1.0);
347467 0:345f76c72b9a 243 Thread::wait(113);
347467 0:345f76c72b9a 244 playNote(430.0, 0.08, 1.0);
347467 0:345f76c72b9a 245 Thread::wait(113);
347467 0:345f76c72b9a 246 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 247 Thread::wait(225);
347467 0:345f76c72b9a 248 playNote(430.0, 0.08, 1.0);
347467 0:345f76c72b9a 249 Thread::wait(113);
347467 0:345f76c72b9a 250 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 251 Thread::wait(75);
347467 0:345f76c72b9a 252 playNote(570.0, 0.08, 1.0);
347467 0:345f76c72b9a 253 Thread::wait(315);
347467 0:345f76c72b9a 254 playNote(585.0, 0.08, 1.0);
347467 0:345f76c72b9a 255 Thread::wait(338);
347467 0:345f76c72b9a 256 playNote(550.0, 0.08, 1.0);
347467 0:345f76c72b9a 257 Thread::wait(315);
347467 0:345f76c72b9a 258 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 259 Thread::wait(270);
347467 0:345f76c72b9a 260 playNote(380.0, 0.08, 1.0);
347467 0:345f76c72b9a 261 Thread::wait(225);
347467 0:345f76c72b9a 262 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 263 Thread::wait(225);
347467 0:345f76c72b9a 264 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 265 Thread::wait(113);
347467 0:345f76c72b9a 266 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 267 Thread::wait(225);
347467 0:345f76c72b9a 268 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 269 Thread::wait(225);
347467 0:345f76c72b9a 270 playNote(760.0, 0.08, 1.0);
347467 0:345f76c72b9a 271 Thread::wait(75);
347467 0:345f76c72b9a 272 playNote(720.0, 0.08, 1.0);
347467 0:345f76c72b9a 273 Thread::wait(113);
347467 0:345f76c72b9a 274 playNote(680.0, 0.08, 1.0);
347467 0:345f76c72b9a 275 Thread::wait(113);
347467 0:345f76c72b9a 276 playNote(620.0, 0.11, 1.0);
347467 0:345f76c72b9a 277 Thread::wait(225);
347467 0:345f76c72b9a 278 playNote(650.0, 0.11, 1.0);
347467 0:345f76c72b9a 279 Thread::wait(225);
347467 0:345f76c72b9a 280 playNote(380.0, 0.08, 1.0);
347467 0:345f76c72b9a 281 Thread::wait(113);
347467 0:345f76c72b9a 282 playNote(430.0, 0.08, 1.0);
347467 0:345f76c72b9a 283 Thread::wait(113);
347467 0:345f76c72b9a 284 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 285 Thread::wait(225);
347467 0:345f76c72b9a 286 playNote(430.0, 0.08, 1.0);
347467 0:345f76c72b9a 287 Thread::wait(113);
347467 0:345f76c72b9a 288 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 289 Thread::wait(75);
347467 0:345f76c72b9a 290 playNote(570.0, 0.08, 1.0);
347467 0:345f76c72b9a 291 Thread::wait(165);
347467 0:345f76c72b9a 292 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 293 Thread::wait(225);
347467 0:345f76c72b9a 294 playNote(760.0, 0.08, 1.0);
347467 0:345f76c72b9a 295 Thread::wait(75);
347467 0:345f76c72b9a 296 playNote(720.0, 0.08, 1.0);
347467 0:345f76c72b9a 297 Thread::wait(113);
347467 0:345f76c72b9a 298 playNote(680.0, 0.08, 1.0);
347467 0:345f76c72b9a 299 Thread::wait(113);
347467 0:345f76c72b9a 300 playNote(620.0, 0.11, 1.0);
347467 0:345f76c72b9a 301 Thread::wait(225);
347467 0:345f76c72b9a 302 playNote(650.0, 0.15, 1.0);
347467 0:345f76c72b9a 303 Thread::wait(225);
347467 0:345f76c72b9a 304 playNote(1020.0, 0.06, 1.0);
347467 0:345f76c72b9a 305 Thread::wait(225);
347467 0:345f76c72b9a 306 playNote(1020.0, 0.06, 1.0);
347467 0:345f76c72b9a 307 Thread::wait(113);
347467 0:345f76c72b9a 308 playNote(1020.0, 0.06, 1.0);
347467 0:345f76c72b9a 309 Thread::wait(225);
347467 0:345f76c72b9a 310 playNote(380.0, 0.08, 1.0);
347467 0:345f76c72b9a 311 Thread::wait(225);
347467 0:345f76c72b9a 312 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 313 Thread::wait(225);
347467 0:345f76c72b9a 314 playNote(760.0, 0.08, 1.0);
347467 0:345f76c72b9a 315 Thread::wait(75);
347467 0:345f76c72b9a 316 playNote(720.0, 0.08, 1.0);
347467 0:345f76c72b9a 317 Thread::wait(113);
347467 0:345f76c72b9a 318 playNote(680.0, 0.08, 1.0);
347467 0:345f76c72b9a 319 Thread::wait(113);
347467 0:345f76c72b9a 320 playNote(620.0, 0.11, 1.0);
347467 0:345f76c72b9a 321 Thread::wait(225);
347467 0:345f76c72b9a 322 playNote(650.0, 0.11, 1.0);
347467 0:345f76c72b9a 323 Thread::wait(225);
347467 0:345f76c72b9a 324 playNote(380.0, 0.08, 1.0);
347467 0:345f76c72b9a 325 Thread::wait(113);
347467 0:345f76c72b9a 326 playNote(430.0, 0.08, 1.0);
347467 0:345f76c72b9a 327 Thread::wait(113);
347467 0:345f76c72b9a 328 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 329 Thread::wait(225);
347467 0:345f76c72b9a 330 playNote(430.0, 0.08, 1.0);
347467 0:345f76c72b9a 331 Thread::wait(113);
347467 0:345f76c72b9a 332 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 333 Thread::wait(75);
347467 0:345f76c72b9a 334 playNote(570.0, 0.08, 1.0);
347467 0:345f76c72b9a 335 Thread::wait(315);
347467 0:345f76c72b9a 336 playNote(585.0, 0.08, 1.0);
347467 0:345f76c72b9a 337 Thread::wait(338);
347467 0:345f76c72b9a 338 playNote(550.0, 0.08, 1.0);
347467 0:345f76c72b9a 339 Thread::wait(315);
347467 0:345f76c72b9a 340 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 341 Thread::wait(270);
347467 0:345f76c72b9a 342 playNote(380.0, 0.08, 1.0);
347467 0:345f76c72b9a 343 Thread::wait(225);
347467 0:345f76c72b9a 344 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 345 Thread::wait(225);
347467 0:345f76c72b9a 346 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 347 Thread::wait(113);
347467 0:345f76c72b9a 348 playNote(500.0, 0.08, 1.0);
347467 0:345f76c72b9a 349 Thread::wait(225);
347467 0:345f76c72b9a 350 playNote(500.0, 0.04, 1.0);
347467 0:345f76c72b9a 351 Thread::wait(113);
347467 0:345f76c72b9a 352 playNote(500.0, 0.06, 1.0);
347467 0:345f76c72b9a 353 Thread::wait(225);
347467 0:345f76c72b9a 354 playNote(500.0, 0.04, 1.0);
347467 0:345f76c72b9a 355 Thread::wait(263);
347467 0:345f76c72b9a 356 playNote(500.0, 0.06, 1.0);
347467 0:345f76c72b9a 357 Thread::wait(113);
347467 0:345f76c72b9a 358 playNote(580.0, 0.06, 1.0);
347467 0:345f76c72b9a 359 Thread::wait(263);
347467 0:345f76c72b9a 360 playNote(660.0, 0.06, 1.0);
347467 0:345f76c72b9a 361 Thread::wait(113);
347467 0:345f76c72b9a 362 playNote(500.0, 0.06, 1.0);
347467 0:345f76c72b9a 363 Thread::wait(225);
347467 0:345f76c72b9a 364 playNote(430.0, 0.06, 1.0);
347467 0:345f76c72b9a 365 Thread::wait(113);
347467 0:345f76c72b9a 366 playNote(380.0, 0.06, 1.0);
347467 0:345f76c72b9a 367 Thread::wait(450);
347467 0:345f76c72b9a 368 playNote(500.0, 0.04, 1.0);
347467 0:345f76c72b9a 369 Thread::wait(113);
347467 0:345f76c72b9a 370 playNote(500.0, 0.06, 1.0);
347467 0:345f76c72b9a 371 Thread::wait(225);
347467 0:345f76c72b9a 372 playNote(500.0, 0.04, 1.0);
347467 0:345f76c72b9a 373 Thread::wait(263);
347467 0:345f76c72b9a 374 playNote(500.0, 0.06, 1.0);
347467 0:345f76c72b9a 375 Thread::wait(113);
347467 0:345f76c72b9a 376 playNote(580.0, 0.06, 1.0);
347467 0:345f76c72b9a 377 Thread::wait(113);
347467 0:345f76c72b9a 378 playNote(660.0, 0.06, 1.0);
347467 0:345f76c72b9a 379 Thread::wait(413);
347467 0:345f76c72b9a 380 playNote(870.0, 0.06, 1.0);
347467 0:345f76c72b9a 381 Thread::wait(244);
347467 0:345f76c72b9a 382 playNote(760.0, 0.06, 1.0);
347467 0:345f76c72b9a 383 Thread::wait(450);
347467 0:345f76c72b9a 384 playNote(500.0, 0.04, 1.0);
347467 0:345f76c72b9a 385 Thread::wait(113);
347467 0:345f76c72b9a 386 playNote(500.0, 0.06, 1.0);
347467 0:345f76c72b9a 387 Thread::wait(225);
347467 0:345f76c72b9a 388 playNote(500.0, 0.04, 1.0);
347467 0:345f76c72b9a 389 Thread::wait(263);
347467 0:345f76c72b9a 390 playNote(500.0, 0.06, 1.0);
347467 0:345f76c72b9a 391 Thread::wait(113);
347467 0:345f76c72b9a 392 playNote(580.0, 0.06, 1.0);
347467 0:345f76c72b9a 393 Thread::wait(263);
347467 0:345f76c72b9a 394 playNote(660.0, 0.06, 1.0);
347467 0:345f76c72b9a 395 Thread::wait(113);
347467 0:345f76c72b9a 396 playNote(500.0, 0.06, 1.0);
347467 0:345f76c72b9a 397 Thread::wait(225);
347467 0:345f76c72b9a 398 playNote(430.0, 0.06, 1.0);
347467 0:345f76c72b9a 399 Thread::wait(113);
347467 0:345f76c72b9a 400 playNote(380.0, 0.06, 1.0);
347467 0:345f76c72b9a 401 Thread::wait(450);
347467 0:345f76c72b9a 402 playNote(660.0, 0.08, 1.0);
347467 0:345f76c72b9a 403 Thread::wait(113);
347467 0:345f76c72b9a 404 playNote(660.0, 0.08, 1.0);
347467 0:345f76c72b9a 405 Thread::wait(225);
347467 0:345f76c72b9a 406 playNote(660.0, 0.08, 1.0);
347467 0:345f76c72b9a 407 Thread::wait(225);
347467 0:345f76c72b9a 408 playNote(510.0, 0.08, 1.0);
347467 0:345f76c72b9a 409 Thread::wait(75);
347467 0:345f76c72b9a 410 playNote(660.0, 0.08, 1.0);
347467 0:345f76c72b9a 411 Thread::wait(225);
347467 0:345f76c72b9a 412 playNote(770.0, 0.08, 1.0);
347467 0:345f76c72b9a 413 Thread::wait(413);
347467 0:345f76c72b9a 414 playNote(380.0, 0.08, 1.0);
347467 0:345f76c72b9a 415 Thread::wait(431);
347467 0:345f76c72b9a 416
347467 0:345f76c72b9a 417 }
347467 0:345f76c72b9a 418 };