Tolu Owoso / Mbed 2 deprecated ELEC2645_Project_el18to

Dependencies:   mbed ELEC2645_Project_el18to

Committer:
Tolu__
Date:
Wed Apr 01 12:41:50 2020 +0000
Revision:
1:356eeff7b566
initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Tolu__ 1:356eeff7b566 1 #ifndef GAMEPAD_H
Tolu__ 1:356eeff7b566 2 #define GAMEPAD_H
Tolu__ 1:356eeff7b566 3
Tolu__ 1:356eeff7b566 4 #include <bitset>
Tolu__ 1:356eeff7b566 5
Tolu__ 1:356eeff7b566 6 // Forward declaration of the classes that we use from the mbed library
Tolu__ 1:356eeff7b566 7 // This avoids the need for us to include the huge mbed.h header inside our
Tolu__ 1:356eeff7b566 8 // own library API
Tolu__ 1:356eeff7b566 9 namespace mbed
Tolu__ 1:356eeff7b566 10 {
Tolu__ 1:356eeff7b566 11 class AnalogIn;
Tolu__ 1:356eeff7b566 12 class InterruptIn;
Tolu__ 1:356eeff7b566 13 class PwmOut;
Tolu__ 1:356eeff7b566 14 class AnalogOut;
Tolu__ 1:356eeff7b566 15 class Ticker;
Tolu__ 1:356eeff7b566 16 class Timeout;
Tolu__ 1:356eeff7b566 17 }
Tolu__ 1:356eeff7b566 18
Tolu__ 1:356eeff7b566 19 #define TOL 0.1f
Tolu__ 1:356eeff7b566 20 #define RAD2DEG 57.2957795131f
Tolu__ 1:356eeff7b566 21 #define PI 3.14159265359
Tolu__ 1:356eeff7b566 22
Tolu__ 1:356eeff7b566 23
Tolu__ 1:356eeff7b566 24 /** Enum for direction */
Tolu__ 1:356eeff7b566 25 enum Direction {
Tolu__ 1:356eeff7b566 26 CENTRE, /**< joystick centred */
Tolu__ 1:356eeff7b566 27 N, /**< pushed North (0)*/
Tolu__ 1:356eeff7b566 28 NE, /**< pushed North-East (45) */
Tolu__ 1:356eeff7b566 29 E, /**< pushed East (90) */
Tolu__ 1:356eeff7b566 30 SE, /**< pushed South-East (135) */
Tolu__ 1:356eeff7b566 31 S, /**< pushed South (180) */
Tolu__ 1:356eeff7b566 32 SW, /**< pushed South-West (225) */
Tolu__ 1:356eeff7b566 33 W, /**< pushed West (270) */
Tolu__ 1:356eeff7b566 34 NW /**< pushed North-West (315) */
Tolu__ 1:356eeff7b566 35 };
Tolu__ 1:356eeff7b566 36
Tolu__ 1:356eeff7b566 37 /** Vector 2D struct */
Tolu__ 1:356eeff7b566 38 struct Vector2D {
Tolu__ 1:356eeff7b566 39 float x; /**< float for x value */
Tolu__ 1:356eeff7b566 40 float y; /**< float for y value */
Tolu__ 1:356eeff7b566 41 };
Tolu__ 1:356eeff7b566 42
Tolu__ 1:356eeff7b566 43 /** Polar coordinate struct */
Tolu__ 1:356eeff7b566 44 struct Polar {
Tolu__ 1:356eeff7b566 45 float mag; /**< float for magnitude */
Tolu__ 1:356eeff7b566 46 float angle; /**< float for angle (in degrees) */
Tolu__ 1:356eeff7b566 47 };
Tolu__ 1:356eeff7b566 48
Tolu__ 1:356eeff7b566 49 /** Gamepad Class
Tolu__ 1:356eeff7b566 50 * @brief Library for interfacing with ELEC2645 Gamepad PCB, University of Leeds
Tolu__ 1:356eeff7b566 51 * @author Dr Craig A. Evans
Tolu__ 1:356eeff7b566 52 * @author Dr Alex Valavanis
Tolu__ 1:356eeff7b566 53 * @author Joshua Davy
Tolu__ 1:356eeff7b566 54 */
Tolu__ 1:356eeff7b566 55 class Gamepad
Tolu__ 1:356eeff7b566 56 {
Tolu__ 1:356eeff7b566 57
Tolu__ 1:356eeff7b566 58 private:
Tolu__ 1:356eeff7b566 59 mbed::PwmOut *_led1;
Tolu__ 1:356eeff7b566 60 mbed::PwmOut *_led2;
Tolu__ 1:356eeff7b566 61 mbed::PwmOut *_led3;
Tolu__ 1:356eeff7b566 62 mbed::PwmOut *_led4;
Tolu__ 1:356eeff7b566 63 mbed::PwmOut *_led5;
Tolu__ 1:356eeff7b566 64 mbed::PwmOut *_led6;
Tolu__ 1:356eeff7b566 65
Tolu__ 1:356eeff7b566 66 mbed::InterruptIn *_button_A;
Tolu__ 1:356eeff7b566 67 mbed::InterruptIn *_button_B;
Tolu__ 1:356eeff7b566 68 mbed::InterruptIn *_button_X;
Tolu__ 1:356eeff7b566 69 mbed::InterruptIn *_button_Y;
Tolu__ 1:356eeff7b566 70 mbed::InterruptIn *_button_start;
Tolu__ 1:356eeff7b566 71
Tolu__ 1:356eeff7b566 72 mbed::AnalogIn *_vert;
Tolu__ 1:356eeff7b566 73 mbed::AnalogIn *_horiz;
Tolu__ 1:356eeff7b566 74
Tolu__ 1:356eeff7b566 75 mbed::AnalogIn *_pot1;
Tolu__ 1:356eeff7b566 76 mbed::AnalogIn *_pot2;
Tolu__ 1:356eeff7b566 77
Tolu__ 1:356eeff7b566 78 mbed::AnalogOut *dac;
Tolu__ 1:356eeff7b566 79 mbed::Ticker *ticker;
Tolu__ 1:356eeff7b566 80 mbed::Timeout *timeout;
Tolu__ 1:356eeff7b566 81 mbed::Timeout *note_timeout;
Tolu__ 1:356eeff7b566 82
Tolu__ 1:356eeff7b566 83 // centred x,y values
Tolu__ 1:356eeff7b566 84 float _x0;
Tolu__ 1:356eeff7b566 85 float _y0;
Tolu__ 1:356eeff7b566 86
Tolu__ 1:356eeff7b566 87 float *_sample_array;
Tolu__ 1:356eeff7b566 88 const int *_notes;
Tolu__ 1:356eeff7b566 89 const int *_durations;
Tolu__ 1:356eeff7b566 90
Tolu__ 1:356eeff7b566 91 int _n;
Tolu__ 1:356eeff7b566 92 int _melody_length;
Tolu__ 1:356eeff7b566 93 volatile unsigned int _sample;
Tolu__ 1:356eeff7b566 94 volatile unsigned int _note;
Tolu__ 1:356eeff7b566 95 float _bpm;
Tolu__ 1:356eeff7b566 96 bool _repeat;
Tolu__ 1:356eeff7b566 97
Tolu__ 1:356eeff7b566 98
Tolu__ 1:356eeff7b566 99 public:
Tolu__ 1:356eeff7b566 100 /** Constructor */
Tolu__ 1:356eeff7b566 101 Gamepad();
Tolu__ 1:356eeff7b566 102
Tolu__ 1:356eeff7b566 103 /** Initialise all peripherals and configure interrupts */
Tolu__ 1:356eeff7b566 104 void init();
Tolu__ 1:356eeff7b566 105
Tolu__ 1:356eeff7b566 106 /** Turn all LEDs on */
Tolu__ 1:356eeff7b566 107 void leds_on();
Tolu__ 1:356eeff7b566 108
Tolu__ 1:356eeff7b566 109 /** Turn all LEDs off */
Tolu__ 1:356eeff7b566 110 void leds_off();
Tolu__ 1:356eeff7b566 111
Tolu__ 1:356eeff7b566 112 /** Set all LEDs to duty-cycle
Tolu__ 1:356eeff7b566 113 *@param value in range 0.0 to 1.0
Tolu__ 1:356eeff7b566 114 */
Tolu__ 1:356eeff7b566 115 void leds(float val) const;
Tolu__ 1:356eeff7b566 116
Tolu__ 1:356eeff7b566 117 /** Set LED to duty-cycle
Tolu__ 1:356eeff7b566 118 *@param led number (0 to 5)
Tolu__ 1:356eeff7b566 119 *@param value in range 0.0 to 1.0
Tolu__ 1:356eeff7b566 120 */
Tolu__ 1:356eeff7b566 121 void led(int n,float val) const;
Tolu__ 1:356eeff7b566 122
Tolu__ 1:356eeff7b566 123 /** Read potentiometer 1 value
Tolu__ 1:356eeff7b566 124 *@returns potentiometer value in range 0.0 to 1.0
Tolu__ 1:356eeff7b566 125 */
Tolu__ 1:356eeff7b566 126 float read_pot1() const;
Tolu__ 1:356eeff7b566 127
Tolu__ 1:356eeff7b566 128 /** Read potentiometer 2 value
Tolu__ 1:356eeff7b566 129 *@returns potentiometer value in range 0.0 to 1.0
Tolu__ 1:356eeff7b566 130 */
Tolu__ 1:356eeff7b566 131 float read_pot2() const;
Tolu__ 1:356eeff7b566 132
Tolu__ 1:356eeff7b566 133 /** Get magnitude of joystick movement
Tolu__ 1:356eeff7b566 134 * @returns value in range 0.0 to 1.0
Tolu__ 1:356eeff7b566 135 */
Tolu__ 1:356eeff7b566 136 float get_mag();
Tolu__ 1:356eeff7b566 137
Tolu__ 1:356eeff7b566 138 /** Get angle of joystick movement
Tolu__ 1:356eeff7b566 139 * @returns value in range 0.0 to 359.9. 0.0 corresponds to N, 180.0 to S. -1.0 is central
Tolu__ 1:356eeff7b566 140 */
Tolu__ 1:356eeff7b566 141 float get_angle();
Tolu__ 1:356eeff7b566 142
Tolu__ 1:356eeff7b566 143 /** Gets joystick direction
Tolu__ 1:356eeff7b566 144 * @returns an enum: CENTRE, N, NE, E, SE, S, SW, W, NW,
Tolu__ 1:356eeff7b566 145 */
Tolu__ 1:356eeff7b566 146 Direction get_direction(); // N,NE,E,SE etc.
Tolu__ 1:356eeff7b566 147
Tolu__ 1:356eeff7b566 148 /** Gets raw cartesian co-ordinates of joystick
Tolu__ 1:356eeff7b566 149 * @returns a struct with x,y members, each in the range 0.0 to 1.0
Tolu__ 1:356eeff7b566 150 */
Tolu__ 1:356eeff7b566 151 Vector2D get_coord(); // cartesian co-ordinates x,y
Tolu__ 1:356eeff7b566 152
Tolu__ 1:356eeff7b566 153 /** Gets cartesian coordinates mapped to circular grid
Tolu__ 1:356eeff7b566 154 * @returns a struct with x,y members, each in the range 0.0 to 1.0
Tolu__ 1:356eeff7b566 155 */
Tolu__ 1:356eeff7b566 156 Vector2D get_mapped_coord(); // x,y mapped to circle
Tolu__ 1:356eeff7b566 157
Tolu__ 1:356eeff7b566 158 /** Gets polar coordinates of the joystick
Tolu__ 1:356eeff7b566 159 * @returns a struct contains mag and angle
Tolu__ 1:356eeff7b566 160 */
Tolu__ 1:356eeff7b566 161 Polar get_polar(); // mag and angle in struct form
Tolu__ 1:356eeff7b566 162
Tolu__ 1:356eeff7b566 163
Tolu__ 1:356eeff7b566 164 /** Resets all button states. Useful for calling inbetween scenes
Tolu__ 1:356eeff7b566 165 * where you do not want button presses from the previous scene effecting
Tolu__ 1:356eeff7b566 166 * the current scene
Tolu__ 1:356eeff7b566 167 */
Tolu__ 1:356eeff7b566 168 void reset_buttons();
Tolu__ 1:356eeff7b566 169
Tolu__ 1:356eeff7b566 170 /** Returns true if A has been pressed
Tolu__ 1:356eeff7b566 171 * @returns a bool corresponding to A being pressed
Tolu__ 1:356eeff7b566 172 */
Tolu__ 1:356eeff7b566 173
Tolu__ 1:356eeff7b566 174 bool A_pressed();
Tolu__ 1:356eeff7b566 175
Tolu__ 1:356eeff7b566 176 /** Returns true if A is held
Tolu__ 1:356eeff7b566 177 * @returns a bool corresponding to A being held
Tolu__ 1:356eeff7b566 178 *
Tolu__ 1:356eeff7b566 179 */
Tolu__ 1:356eeff7b566 180 bool A_held();
Tolu__ 1:356eeff7b566 181
Tolu__ 1:356eeff7b566 182
Tolu__ 1:356eeff7b566 183 /** Returns true if B has been pressed
Tolu__ 1:356eeff7b566 184 * @returns a bool corresponding to B being pressed
Tolu__ 1:356eeff7b566 185 */
Tolu__ 1:356eeff7b566 186 bool B_pressed();
Tolu__ 1:356eeff7b566 187
Tolu__ 1:356eeff7b566 188 /** Returns true if B is held
Tolu__ 1:356eeff7b566 189 * @returns a bool corresponding to B being held
Tolu__ 1:356eeff7b566 190 *
Tolu__ 1:356eeff7b566 191 */
Tolu__ 1:356eeff7b566 192 bool B_held();
Tolu__ 1:356eeff7b566 193
Tolu__ 1:356eeff7b566 194 /** Returns true if B has been pressed
Tolu__ 1:356eeff7b566 195 * @returns a bool corresponding to B being pressed
Tolu__ 1:356eeff7b566 196 */
Tolu__ 1:356eeff7b566 197 bool X_pressed();
Tolu__ 1:356eeff7b566 198
Tolu__ 1:356eeff7b566 199 /** Returns true if X is held
Tolu__ 1:356eeff7b566 200 * @returns a bool corresponding to X being held
Tolu__ 1:356eeff7b566 201 *
Tolu__ 1:356eeff7b566 202 */
Tolu__ 1:356eeff7b566 203 bool X_held();
Tolu__ 1:356eeff7b566 204
Tolu__ 1:356eeff7b566 205 /** Returns true if Y has been pressed
Tolu__ 1:356eeff7b566 206 * @returns a bool corresponding to Y being pressed
Tolu__ 1:356eeff7b566 207 */
Tolu__ 1:356eeff7b566 208 bool Y_pressed();
Tolu__ 1:356eeff7b566 209
Tolu__ 1:356eeff7b566 210 /** Returns true if Y is held
Tolu__ 1:356eeff7b566 211 * @returns a bool corresponding to Y being held
Tolu__ 1:356eeff7b566 212 *
Tolu__ 1:356eeff7b566 213 */
Tolu__ 1:356eeff7b566 214 bool Y_held();
Tolu__ 1:356eeff7b566 215
Tolu__ 1:356eeff7b566 216
Tolu__ 1:356eeff7b566 217 /** Returns true if start has been pressed
Tolu__ 1:356eeff7b566 218 * @returns a bool corresponding to start being pressed
Tolu__ 1:356eeff7b566 219 */
Tolu__ 1:356eeff7b566 220 bool start_pressed();
Tolu__ 1:356eeff7b566 221
Tolu__ 1:356eeff7b566 222 /** Returns true if start is held
Tolu__ 1:356eeff7b566 223 * @returns a bool corresponding to start being held
Tolu__ 1:356eeff7b566 224 *
Tolu__ 1:356eeff7b566 225 */
Tolu__ 1:356eeff7b566 226 bool start_held();
Tolu__ 1:356eeff7b566 227
Tolu__ 1:356eeff7b566 228 /** Play a single tone for the specifed duration
Tolu__ 1:356eeff7b566 229 *@param note frequency (in Hz)
Tolu__ 1:356eeff7b566 230 *@param duration (in s)
Tolu__ 1:356eeff7b566 231 */
Tolu__ 1:356eeff7b566 232 void tone(const float frequency,const float duration);
Tolu__ 1:356eeff7b566 233
Tolu__ 1:356eeff7b566 234 /** Play a melody
Tolu__ 1:356eeff7b566 235 *@param length of note array
Tolu__ 1:356eeff7b566 236 *@param array of note frequencies (in Hz) - 0 treated as a rest
Tolu__ 1:356eeff7b566 237 *@param array of note durations (4 corresponds to 1/4, 8 is 1/8 etc.)
Tolu__ 1:356eeff7b566 238 *@param beats per minute
Tolu__ 1:356eeff7b566 239 *@param whether to repeat or play just once
Tolu__ 1:356eeff7b566 240 */
Tolu__ 1:356eeff7b566 241 void play_melody(int length,const int *notes,const int *durations,float bpm,bool repeat);
Tolu__ 1:356eeff7b566 242
Tolu__ 1:356eeff7b566 243 /** Set the BPM of the melody
Tolu__ 1:356eeff7b566 244 *@param beats per minute
Tolu__ 1:356eeff7b566 245 */
Tolu__ 1:356eeff7b566 246 void set_bpm(float bpm);
Tolu__ 1:356eeff7b566 247
Tolu__ 1:356eeff7b566 248 /** Write an analog voltage to the speaker
Tolu__ 1:356eeff7b566 249 *@param voltage in range 0.0 to 1.0 (corresponds 0.0 to 3.3 V)
Tolu__ 1:356eeff7b566 250 */
Tolu__ 1:356eeff7b566 251 void write_dac(float val);
Tolu__ 1:356eeff7b566 252
Tolu__ 1:356eeff7b566 253
Tolu__ 1:356eeff7b566 254
Tolu__ 1:356eeff7b566 255
Tolu__ 1:356eeff7b566 256 private:
Tolu__ 1:356eeff7b566 257
Tolu__ 1:356eeff7b566 258 volatile bool A_fall;
Tolu__ 1:356eeff7b566 259 void A_fall_interrupt();
Tolu__ 1:356eeff7b566 260
Tolu__ 1:356eeff7b566 261 volatile bool B_fall;
Tolu__ 1:356eeff7b566 262 void B_fall_interrupt();
Tolu__ 1:356eeff7b566 263
Tolu__ 1:356eeff7b566 264 volatile bool X_fall;
Tolu__ 1:356eeff7b566 265 void X_fall_interrupt();
Tolu__ 1:356eeff7b566 266
Tolu__ 1:356eeff7b566 267 volatile bool Y_fall;
Tolu__ 1:356eeff7b566 268 void Y_fall_interrupt();
Tolu__ 1:356eeff7b566 269
Tolu__ 1:356eeff7b566 270 volatile bool start_fall;
Tolu__ 1:356eeff7b566 271 void start_fall_interrupt();
Tolu__ 1:356eeff7b566 272
Tolu__ 1:356eeff7b566 273 // Tone functions
Tolu__ 1:356eeff7b566 274 void ticker_isr();
Tolu__ 1:356eeff7b566 275 void timeout_isr();
Tolu__ 1:356eeff7b566 276 void note_timeout_isr();
Tolu__ 1:356eeff7b566 277 void play_next_note();
Tolu__ 1:356eeff7b566 278
Tolu__ 1:356eeff7b566 279
Tolu__ 1:356eeff7b566 280
Tolu__ 1:356eeff7b566 281 };
Tolu__ 1:356eeff7b566 282
Tolu__ 1:356eeff7b566 283 // Note definitions from Arduino.cc
Tolu__ 1:356eeff7b566 284 #define NOTE_B0 31
Tolu__ 1:356eeff7b566 285 #define NOTE_C1 33
Tolu__ 1:356eeff7b566 286 #define NOTE_CS1 35
Tolu__ 1:356eeff7b566 287 #define NOTE_D1 37
Tolu__ 1:356eeff7b566 288 #define NOTE_DS1 39
Tolu__ 1:356eeff7b566 289 #define NOTE_E1 41
Tolu__ 1:356eeff7b566 290 #define NOTE_F1 44
Tolu__ 1:356eeff7b566 291 #define NOTE_FS1 46
Tolu__ 1:356eeff7b566 292 #define NOTE_G1 49
Tolu__ 1:356eeff7b566 293 #define NOTE_GS1 52
Tolu__ 1:356eeff7b566 294 #define NOTE_A1 55
Tolu__ 1:356eeff7b566 295 #define NOTE_AS1 58
Tolu__ 1:356eeff7b566 296 #define NOTE_B1 62
Tolu__ 1:356eeff7b566 297 #define NOTE_C2 65
Tolu__ 1:356eeff7b566 298 #define NOTE_CS2 69
Tolu__ 1:356eeff7b566 299 #define NOTE_D2 73
Tolu__ 1:356eeff7b566 300 #define NOTE_DS2 78
Tolu__ 1:356eeff7b566 301 #define NOTE_E2 82
Tolu__ 1:356eeff7b566 302 #define NOTE_F2 87
Tolu__ 1:356eeff7b566 303 #define NOTE_FS2 93
Tolu__ 1:356eeff7b566 304 #define NOTE_G2 98
Tolu__ 1:356eeff7b566 305 #define NOTE_GS2 104
Tolu__ 1:356eeff7b566 306 #define NOTE_A2 110
Tolu__ 1:356eeff7b566 307 #define NOTE_AS2 117
Tolu__ 1:356eeff7b566 308 #define NOTE_B2 123
Tolu__ 1:356eeff7b566 309 #define NOTE_C3 131
Tolu__ 1:356eeff7b566 310 #define NOTE_CS3 139
Tolu__ 1:356eeff7b566 311 #define NOTE_D3 147
Tolu__ 1:356eeff7b566 312 #define NOTE_DS3 156
Tolu__ 1:356eeff7b566 313 #define NOTE_E3 165
Tolu__ 1:356eeff7b566 314 #define NOTE_F3 175
Tolu__ 1:356eeff7b566 315 #define NOTE_FS3 185
Tolu__ 1:356eeff7b566 316 #define NOTE_G3 196
Tolu__ 1:356eeff7b566 317 #define NOTE_GS3 208
Tolu__ 1:356eeff7b566 318 #define NOTE_A3 220
Tolu__ 1:356eeff7b566 319 #define NOTE_AS3 233
Tolu__ 1:356eeff7b566 320 #define NOTE_B3 247
Tolu__ 1:356eeff7b566 321 #define NOTE_C4 262
Tolu__ 1:356eeff7b566 322 #define NOTE_CS4 277
Tolu__ 1:356eeff7b566 323 #define NOTE_D4 294
Tolu__ 1:356eeff7b566 324 #define NOTE_DS4 311
Tolu__ 1:356eeff7b566 325 #define NOTE_E4 330
Tolu__ 1:356eeff7b566 326 #define NOTE_F4 349
Tolu__ 1:356eeff7b566 327 #define NOTE_FS4 370
Tolu__ 1:356eeff7b566 328 #define NOTE_G4 392
Tolu__ 1:356eeff7b566 329 #define NOTE_GS4 415
Tolu__ 1:356eeff7b566 330 #define NOTE_A4 440
Tolu__ 1:356eeff7b566 331 #define NOTE_AS4 466
Tolu__ 1:356eeff7b566 332 #define NOTE_B4 494
Tolu__ 1:356eeff7b566 333 #define NOTE_C5 523
Tolu__ 1:356eeff7b566 334 #define NOTE_CS5 554
Tolu__ 1:356eeff7b566 335 #define NOTE_D5 587
Tolu__ 1:356eeff7b566 336 #define NOTE_DS5 622
Tolu__ 1:356eeff7b566 337 #define NOTE_E5 659
Tolu__ 1:356eeff7b566 338 #define NOTE_F5 698
Tolu__ 1:356eeff7b566 339 #define NOTE_FS5 740
Tolu__ 1:356eeff7b566 340 #define NOTE_G5 784
Tolu__ 1:356eeff7b566 341 #define NOTE_GS5 831
Tolu__ 1:356eeff7b566 342 #define NOTE_A5 880
Tolu__ 1:356eeff7b566 343 #define NOTE_AS5 932
Tolu__ 1:356eeff7b566 344 #define NOTE_B5 988
Tolu__ 1:356eeff7b566 345 #define NOTE_C6 1047
Tolu__ 1:356eeff7b566 346 #define NOTE_CS6 1109
Tolu__ 1:356eeff7b566 347 #define NOTE_D6 1175
Tolu__ 1:356eeff7b566 348 #define NOTE_DS6 1245
Tolu__ 1:356eeff7b566 349 #define NOTE_E6 1319
Tolu__ 1:356eeff7b566 350 #define NOTE_F6 1397
Tolu__ 1:356eeff7b566 351 #define NOTE_FS6 1480
Tolu__ 1:356eeff7b566 352 #define NOTE_G6 1568
Tolu__ 1:356eeff7b566 353 #define NOTE_GS6 1661
Tolu__ 1:356eeff7b566 354 #define NOTE_A6 1760
Tolu__ 1:356eeff7b566 355 #define NOTE_AS6 1865
Tolu__ 1:356eeff7b566 356 #define NOTE_B6 1976
Tolu__ 1:356eeff7b566 357 #define NOTE_C7 2093
Tolu__ 1:356eeff7b566 358 #define NOTE_CS7 2217
Tolu__ 1:356eeff7b566 359 #define NOTE_D7 2349
Tolu__ 1:356eeff7b566 360 #define NOTE_DS7 2489
Tolu__ 1:356eeff7b566 361 #define NOTE_E7 2637
Tolu__ 1:356eeff7b566 362 #define NOTE_F7 2794
Tolu__ 1:356eeff7b566 363 #define NOTE_FS7 2960
Tolu__ 1:356eeff7b566 364 #define NOTE_G7 3136
Tolu__ 1:356eeff7b566 365 #define NOTE_GS7 3322
Tolu__ 1:356eeff7b566 366 #define NOTE_A7 3520
Tolu__ 1:356eeff7b566 367 #define NOTE_AS7 3729
Tolu__ 1:356eeff7b566 368 #define NOTE_B7 3951
Tolu__ 1:356eeff7b566 369 #define NOTE_C8 4186
Tolu__ 1:356eeff7b566 370 #define NOTE_CS8 4435
Tolu__ 1:356eeff7b566 371 #define NOTE_D8 4699
Tolu__ 1:356eeff7b566 372 #define NOTE_DS8 4978
Tolu__ 1:356eeff7b566 373
Tolu__ 1:356eeff7b566 374 #endif