keypad piano project

Dependencies:   4DGL-uLCD-SE SDFileSystem Speaker mbed wave_player

Fork of Beat_Demo_full_full by James Hawkins

Committer:
UnitedHolmes
Date:
Tue Dec 08 00:45:23 2015 +0000
Revision:
1:90c01826cdb8
Parent:
0:81b352a233ca
no

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jhawkins38 0:81b352a233ca 1 #include <mbed.h>
jhawkins38 0:81b352a233ca 2 #include <mpr121.h>
jhawkins38 0:81b352a233ca 3 #include "uLCD_4DGL.h"
jhawkins38 0:81b352a233ca 4 #include "Speaker.h"
jhawkins38 0:81b352a233ca 5 #include "SDFileSystem.h"
jhawkins38 0:81b352a233ca 6 #include "wave_player.h"
UnitedHolmes 1:90c01826cdb8 7 #include "wavfile.c"
UnitedHolmes 1:90c01826cdb8 8 #include "wavfile.h"
jhawkins38 0:81b352a233ca 9
UnitedHolmes 1:90c01826cdb8 10 #include <stdio.h>
UnitedHolmes 1:90c01826cdb8 11 #include <stdlib.h>
UnitedHolmes 1:90c01826cdb8 12 #include <string.h>
UnitedHolmes 1:90c01826cdb8 13 #include "wave_player.h"
jhawkins38 0:81b352a233ca 14
jhawkins38 0:81b352a233ca 15 SDFileSystem sd(p5, p6, p7, p8,"sd"); //SD card
jhawkins38 0:81b352a233ca 16
jhawkins38 0:81b352a233ca 17 uLCD_4DGL uLCD(p13,p14,p11);
jhawkins38 0:81b352a233ca 18
jhawkins38 0:81b352a233ca 19 // Create the interrupt receiver object on pin 26
UnitedHolmes 1:90c01826cdb8 20 InterruptIn interrupt1(p26);
UnitedHolmes 1:90c01826cdb8 21 InterruptIn interrupt2(p25);
jhawkins38 0:81b352a233ca 22 // Setup the i2c bus on pins 9 and 10
UnitedHolmes 1:90c01826cdb8 23 I2C i2c1(p9, p10);
jhawkins38 0:81b352a233ca 24 I2C i2c2(p28, p27);
jhawkins38 0:81b352a233ca 25 // Setup the Mpr121:
jhawkins38 0:81b352a233ca 26 // constructor(i2c object, i2c address of the mpr121)
UnitedHolmes 1:90c01826cdb8 27 Mpr121 tones1pad(&i2c1, Mpr121::ADD_VSS);
UnitedHolmes 1:90c01826cdb8 28 Mpr121 tones2pad(&i2c2, Mpr121::ADD_VSS);
jhawkins38 0:81b352a233ca 29
UnitedHolmes 1:90c01826cdb8 30 Speaker mySpeaker(p21);
UnitedHolmes 1:90c01826cdb8 31 InterruptIn pb1(p12);
UnitedHolmes 1:90c01826cdb8 32 InterruptIn pb2(p29);
UnitedHolmes 1:90c01826cdb8 33
UnitedHolmes 1:90c01826cdb8 34 AnalogOut DACout(p18);
UnitedHolmes 1:90c01826cdb8 35 wave_player waver(&DACout);
jhawkins38 0:81b352a233ca 36
UnitedHolmes 1:90c01826cdb8 37 int key_code [2] = {88,88};
UnitedHolmes 1:90c01826cdb8 38 int touches;
UnitedHolmes 1:90c01826cdb8 39 int music [1000] = { };
UnitedHolmes 1:90c01826cdb8 40 int music2 [1000] = { };
UnitedHolmes 1:90c01826cdb8 41
UnitedHolmes 1:90c01826cdb8 42 const int NUM_SAMPLES = (WAVFILE_SAMPLES_PER_SECOND*0.2);
UnitedHolmes 1:90c01826cdb8 43 int flagPb;
UnitedHolmes 1:90c01826cdb8 44 bool flagPb2;
UnitedHolmes 1:90c01826cdb8 45 bool flagInterrupt;
jhawkins38 0:81b352a233ca 46
jhawkins38 0:81b352a233ca 47 // Key hit/release interrupt routine for 1st touchpad
UnitedHolmes 1:90c01826cdb8 48 void fallInterrupt1()
UnitedHolmes 1:90c01826cdb8 49 {
UnitedHolmes 1:90c01826cdb8 50 key_code[0]=88;
UnitedHolmes 1:90c01826cdb8 51 key_code[1]=88;
UnitedHolmes 1:90c01826cdb8 52 flagInterrupt = true;
jhawkins38 0:81b352a233ca 53
UnitedHolmes 1:90c01826cdb8 54 int value=tones1pad.read(0x00);
UnitedHolmes 1:90c01826cdb8 55 value +=tones1pad.read(0x01)<<8;
jhawkins38 0:81b352a233ca 56
UnitedHolmes 1:90c01826cdb8 57 int k = 0;
jhawkins38 0:81b352a233ca 58 for(int i=0; i<12; i++)
UnitedHolmes 1:90c01826cdb8 59 {
jhawkins38 0:81b352a233ca 60 if(((value>>i)&0x01) == 1)
jhawkins38 0:81b352a233ca 61 {
UnitedHolmes 1:90c01826cdb8 62 key_code[k] = i;
UnitedHolmes 1:90c01826cdb8 63 if (k < 1){
UnitedHolmes 1:90c01826cdb8 64 k=k+1;
UnitedHolmes 1:90c01826cdb8 65 }
UnitedHolmes 1:90c01826cdb8 66 }
jhawkins38 0:81b352a233ca 67 }
UnitedHolmes 1:90c01826cdb8 68 uLCD.locate(1,2);
UnitedHolmes 1:90c01826cdb8 69 //uLCD.printf("%2D%2D",key_code[0],key_code[1]);
UnitedHolmes 1:90c01826cdb8 70 touches = touches + 1;
jhawkins38 0:81b352a233ca 71 }
jhawkins38 0:81b352a233ca 72
jhawkins38 0:81b352a233ca 73 //sets up interrupts for 2nd toucpad
jhawkins38 0:81b352a233ca 74 void fallInterrupt2() {
UnitedHolmes 1:90c01826cdb8 75 key_code[0]=88;
UnitedHolmes 1:90c01826cdb8 76 key_code[1]=88;
UnitedHolmes 1:90c01826cdb8 77 flagInterrupt = true;
UnitedHolmes 1:90c01826cdb8 78
UnitedHolmes 1:90c01826cdb8 79 int value2=tones2pad.read(0x00);
UnitedHolmes 1:90c01826cdb8 80 value2 +=tones2pad.read(0x01)<<8;
jhawkins38 0:81b352a233ca 81
jhawkins38 0:81b352a233ca 82 // puts key number out to LEDs for demo
UnitedHolmes 1:90c01826cdb8 83 int k = 0;
jhawkins38 0:81b352a233ca 84 for(int j=0; j<12; j++)
UnitedHolmes 1:90c01826cdb8 85 {
jhawkins38 0:81b352a233ca 86 if(((value2>>j)&0x01) == 1)
jhawkins38 0:81b352a233ca 87 {
UnitedHolmes 1:90c01826cdb8 88 key_code [k] = j +12;
UnitedHolmes 1:90c01826cdb8 89 if (k < 1){
UnitedHolmes 1:90c01826cdb8 90 k=k+1;
UnitedHolmes 1:90c01826cdb8 91 }
jhawkins38 0:81b352a233ca 92 }
jhawkins38 0:81b352a233ca 93 }
jhawkins38 0:81b352a233ca 94
jhawkins38 0:81b352a233ca 95 uLCD.locate(1,3);
UnitedHolmes 1:90c01826cdb8 96 //uLCD.printf("%2D%2D",key_code[0],key_code[1]);
UnitedHolmes 1:90c01826cdb8 97 touches = touches + 1;
jhawkins38 0:81b352a233ca 98 }
UnitedHolmes 1:90c01826cdb8 99
UnitedHolmes 1:90c01826cdb8 100 void pb1_hit_interrupt (void)
UnitedHolmes 1:90c01826cdb8 101 {
UnitedHolmes 1:90c01826cdb8 102 if (flagPb == 0)
UnitedHolmes 1:90c01826cdb8 103 {
UnitedHolmes 1:90c01826cdb8 104 touches = 0;
UnitedHolmes 1:90c01826cdb8 105
UnitedHolmes 1:90c01826cdb8 106 uLCD.locate(1,1);
UnitedHolmes 1:90c01826cdb8 107 uLCD.printf("Start Recording");
UnitedHolmes 1:90c01826cdb8 108 uLCD.locate(1,5);
UnitedHolmes 1:90c01826cdb8 109 uLCD.printf("Waiting");
UnitedHolmes 1:90c01826cdb8 110 flagPb = 1;
UnitedHolmes 1:90c01826cdb8 111
UnitedHolmes 1:90c01826cdb8 112 }
UnitedHolmes 1:90c01826cdb8 113 else if (flagPb == 1)
UnitedHolmes 1:90c01826cdb8 114 {
UnitedHolmes 1:90c01826cdb8 115 FILE * f = wavfile_open("/sd/Example14.wav");
UnitedHolmes 1:90c01826cdb8 116 uLCD.locate(1,1);
UnitedHolmes 1:90c01826cdb8 117 uLCD.printf("Recording ended");
UnitedHolmes 1:90c01826cdb8 118 uLCD.locate(1,4);
UnitedHolmes 1:90c01826cdb8 119 uLCD.printf("touches = %d",touches);
UnitedHolmes 1:90c01826cdb8 120 uLCD.locate(1,6);
UnitedHolmes 1:90c01826cdb8 121 /*
UnitedHolmes 1:90c01826cdb8 122 for (int k = 0; k<=touches; k++)
UnitedHolmes 1:90c01826cdb8 123 {
UnitedHolmes 1:90c01826cdb8 124 uLCD.printf("%d",music[k]);
UnitedHolmes 1:90c01826cdb8 125 }
UnitedHolmes 1:90c01826cdb8 126 */
UnitedHolmes 1:90c01826cdb8 127 for (int k = 0; k<=touches; k++){
UnitedHolmes 1:90c01826cdb8 128 short waveform[NUM_SAMPLES];
UnitedHolmes 1:90c01826cdb8 129 double frequency = music[k]; //880.0;
UnitedHolmes 1:90c01826cdb8 130 double frequency2 = music2[k];
UnitedHolmes 1:90c01826cdb8 131 int volume = 32000;
UnitedHolmes 1:90c01826cdb8 132 int length = NUM_SAMPLES;
UnitedHolmes 1:90c01826cdb8 133 int i;
UnitedHolmes 1:90c01826cdb8 134 for(i=0;i<length;i++) {
UnitedHolmes 1:90c01826cdb8 135 double t = (double) i / WAVFILE_SAMPLES_PER_SECOND;
UnitedHolmes 1:90c01826cdb8 136 if (frequency2 == 0)
UnitedHolmes 1:90c01826cdb8 137 {
UnitedHolmes 1:90c01826cdb8 138 waveform[i] = volume*sin(frequency*t*2*3.1415926);
UnitedHolmes 1:90c01826cdb8 139 }
UnitedHolmes 1:90c01826cdb8 140 else if (frequency2 != 0)
UnitedHolmes 1:90c01826cdb8 141 {
UnitedHolmes 1:90c01826cdb8 142 waveform[i] = volume*(sin(frequency*t*2*3.1415926)+sin(frequency2*t*2*3.1415926))/2;
UnitedHolmes 1:90c01826cdb8 143 }
UnitedHolmes 1:90c01826cdb8 144 }
UnitedHolmes 1:90c01826cdb8 145 if (music[k] == 0)
UnitedHolmes 1:90c01826cdb8 146 {
UnitedHolmes 1:90c01826cdb8 147 int length_short = length*2/9;
UnitedHolmes 1:90c01826cdb8 148 fwrite(waveform,sizeof(short),length_short,f);
UnitedHolmes 1:90c01826cdb8 149 }
UnitedHolmes 1:90c01826cdb8 150 else if (music[k] != 0)
UnitedHolmes 1:90c01826cdb8 151 {
UnitedHolmes 1:90c01826cdb8 152 fwrite(waveform,sizeof(short),length,f);
UnitedHolmes 1:90c01826cdb8 153 }
UnitedHolmes 1:90c01826cdb8 154 }
UnitedHolmes 1:90c01826cdb8 155 wavfile_close(f);
UnitedHolmes 1:90c01826cdb8 156
UnitedHolmes 1:90c01826cdb8 157 uLCD.locate(1,5);
UnitedHolmes 1:90c01826cdb8 158 uLCD.printf("Done ");
UnitedHolmes 1:90c01826cdb8 159 flagPb = 0;
UnitedHolmes 1:90c01826cdb8 160 }
UnitedHolmes 1:90c01826cdb8 161 }
UnitedHolmes 1:90c01826cdb8 162
UnitedHolmes 1:90c01826cdb8 163 void pb2_hit_interrupt (void)
UnitedHolmes 1:90c01826cdb8 164 {
UnitedHolmes 1:90c01826cdb8 165 flagPb2 = true;
UnitedHolmes 1:90c01826cdb8 166 uLCD.cls();
UnitedHolmes 1:90c01826cdb8 167 uLCD.locate(1,1);
UnitedHolmes 1:90c01826cdb8 168 uLCD.printf("Let the fun begin\n");
jhawkins38 0:81b352a233ca 169 }
jhawkins38 0:81b352a233ca 170
UnitedHolmes 1:90c01826cdb8 171 int main()
UnitedHolmes 1:90c01826cdb8 172 {
UnitedHolmes 1:90c01826cdb8 173 touches = -1;
UnitedHolmes 1:90c01826cdb8 174 flagPb = 0;
UnitedHolmes 1:90c01826cdb8 175 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 176
UnitedHolmes 1:90c01826cdb8 177 key_code[0] = 88;
UnitedHolmes 1:90c01826cdb8 178 key_code[1] = 88;
UnitedHolmes 1:90c01826cdb8 179
UnitedHolmes 1:90c01826cdb8 180 pb1.fall(&pb1_hit_interrupt);
UnitedHolmes 1:90c01826cdb8 181 wait(.2);
UnitedHolmes 1:90c01826cdb8 182 pb1.mode(PullUp);
UnitedHolmes 1:90c01826cdb8 183 wait(.2);
UnitedHolmes 1:90c01826cdb8 184
UnitedHolmes 1:90c01826cdb8 185 pb2.mode(PullUp);
UnitedHolmes 1:90c01826cdb8 186 wait(.2);
UnitedHolmes 1:90c01826cdb8 187 pb2.fall(&pb2_hit_interrupt);
UnitedHolmes 1:90c01826cdb8 188 wait(.2);
UnitedHolmes 1:90c01826cdb8 189
UnitedHolmes 1:90c01826cdb8 190 interrupt2.fall(&fallInterrupt2);
UnitedHolmes 1:90c01826cdb8 191 interrupt2.mode(PullUp);
UnitedHolmes 1:90c01826cdb8 192 interrupt1.fall(&fallInterrupt1);
UnitedHolmes 1:90c01826cdb8 193 interrupt1.mode(PullUp);
UnitedHolmes 1:90c01826cdb8 194
UnitedHolmes 1:90c01826cdb8 195 while(1)
UnitedHolmes 1:90c01826cdb8 196 {
UnitedHolmes 1:90c01826cdb8 197
UnitedHolmes 1:90c01826cdb8 198 if ( (flagPb == 1) && (flagInterrupt == false ))
UnitedHolmes 1:90c01826cdb8 199 {
UnitedHolmes 1:90c01826cdb8 200
UnitedHolmes 1:90c01826cdb8 201 touches = touches + 1;
UnitedHolmes 1:90c01826cdb8 202 music[touches] = 0;
UnitedHolmes 1:90c01826cdb8 203 music2[touches] = 0;
UnitedHolmes 1:90c01826cdb8 204 wait(0.05);
UnitedHolmes 1:90c01826cdb8 205 //flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 206 }
UnitedHolmes 1:90c01826cdb8 207
UnitedHolmes 1:90c01826cdb8 208 if (flagPb2 == true)
UnitedHolmes 1:90c01826cdb8 209 {
UnitedHolmes 1:90c01826cdb8 210 FILE *wave_file;
UnitedHolmes 1:90c01826cdb8 211 uLCD.locate(1,6);
UnitedHolmes 1:90c01826cdb8 212 uLCD.printf("Playing");
UnitedHolmes 1:90c01826cdb8 213 wave_file=fopen("/sd/Example14.wav","r");
UnitedHolmes 1:90c01826cdb8 214 waver.play(wave_file);
UnitedHolmes 1:90c01826cdb8 215 fclose(wave_file);
UnitedHolmes 1:90c01826cdb8 216 flagPb2 = false;
UnitedHolmes 1:90c01826cdb8 217 uLCD.locate(1,7);
UnitedHolmes 1:90c01826cdb8 218 uLCD.printf("Playing Ended");
UnitedHolmes 1:90c01826cdb8 219 }
UnitedHolmes 1:90c01826cdb8 220
UnitedHolmes 1:90c01826cdb8 221 if (key_code[1] == 88)
UnitedHolmes 1:90c01826cdb8 222 {
UnitedHolmes 1:90c01826cdb8 223 music2[touches] = 0;
UnitedHolmes 1:90c01826cdb8 224 switch(key_code[0]) //uses a case for each individual touch sensor
UnitedHolmes 1:90c01826cdb8 225 {
UnitedHolmes 1:90c01826cdb8 226 case 0:
UnitedHolmes 1:90c01826cdb8 227 mySpeaker.PlayNote(262,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 228 music[touches] = 262;
UnitedHolmes 1:90c01826cdb8 229 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 230 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 231 break;
UnitedHolmes 1:90c01826cdb8 232 case 1:
UnitedHolmes 1:90c01826cdb8 233 mySpeaker.PlayNote(277,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 234 music[touches] = 277;
UnitedHolmes 1:90c01826cdb8 235 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 236 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 237 break;
UnitedHolmes 1:90c01826cdb8 238 case 2:
UnitedHolmes 1:90c01826cdb8 239 mySpeaker.PlayNote(294,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 240 music[touches] = 294;
UnitedHolmes 1:90c01826cdb8 241 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 242 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 243 break;
UnitedHolmes 1:90c01826cdb8 244 case 3:
UnitedHolmes 1:90c01826cdb8 245 mySpeaker.PlayNote(311,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 246 music[touches] = 311;
UnitedHolmes 1:90c01826cdb8 247 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 248 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 249 break;
UnitedHolmes 1:90c01826cdb8 250 case 4:
UnitedHolmes 1:90c01826cdb8 251 mySpeaker.PlayNote(330,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 252 music[touches] = 330;
UnitedHolmes 1:90c01826cdb8 253 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 254 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 255 break;
UnitedHolmes 1:90c01826cdb8 256 case 5:
UnitedHolmes 1:90c01826cdb8 257 mySpeaker.PlayNote(349,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 258 music[touches] = 349;
UnitedHolmes 1:90c01826cdb8 259 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 260 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 261 break;
UnitedHolmes 1:90c01826cdb8 262 case 6:
UnitedHolmes 1:90c01826cdb8 263 mySpeaker.PlayNote(370,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 264 music[touches] = 370;
UnitedHolmes 1:90c01826cdb8 265 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 266 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 267 break;
UnitedHolmes 1:90c01826cdb8 268 case 7:
UnitedHolmes 1:90c01826cdb8 269 mySpeaker.PlayNote(392,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 270 music[touches] = 392;
UnitedHolmes 1:90c01826cdb8 271 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 272 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 273 break;
UnitedHolmes 1:90c01826cdb8 274 case 8:
UnitedHolmes 1:90c01826cdb8 275 mySpeaker.PlayNote(415,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 276 music[touches] = 415;
UnitedHolmes 1:90c01826cdb8 277 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 278 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 279 break;
UnitedHolmes 1:90c01826cdb8 280 case 9:
UnitedHolmes 1:90c01826cdb8 281 mySpeaker.PlayNote(440,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 282 music[touches] = 440;
UnitedHolmes 1:90c01826cdb8 283 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 284 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 285 break;
UnitedHolmes 1:90c01826cdb8 286 case 10:
UnitedHolmes 1:90c01826cdb8 287 mySpeaker.PlayNote(466,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 288 music[touches] = 466;
UnitedHolmes 1:90c01826cdb8 289 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 290 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 291 break;
UnitedHolmes 1:90c01826cdb8 292 case 11:
UnitedHolmes 1:90c01826cdb8 293 mySpeaker.PlayNote(494,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 294 music[touches] = 494;
UnitedHolmes 1:90c01826cdb8 295 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 296 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 297 break;
UnitedHolmes 1:90c01826cdb8 298 case 12:
UnitedHolmes 1:90c01826cdb8 299 mySpeaker.PlayNote(523,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 300 music[touches] = 523;
UnitedHolmes 1:90c01826cdb8 301 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 302 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 303 break;
UnitedHolmes 1:90c01826cdb8 304 case 13:
UnitedHolmes 1:90c01826cdb8 305 mySpeaker.PlayNote(554,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 306 music[touches] = 554;
UnitedHolmes 1:90c01826cdb8 307 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 308 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 309 break;
UnitedHolmes 1:90c01826cdb8 310 case 14:
UnitedHolmes 1:90c01826cdb8 311 mySpeaker.PlayNote(587,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 312 music[touches] = 587;
UnitedHolmes 1:90c01826cdb8 313 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 314 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 315 break;
UnitedHolmes 1:90c01826cdb8 316 case 15:
UnitedHolmes 1:90c01826cdb8 317 mySpeaker.PlayNote(622,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 318 music[touches] = 622;
UnitedHolmes 1:90c01826cdb8 319 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 320 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 321 break;
UnitedHolmes 1:90c01826cdb8 322 case 16:
UnitedHolmes 1:90c01826cdb8 323 mySpeaker.PlayNote(659,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 324 music[touches] = 659;
UnitedHolmes 1:90c01826cdb8 325 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 326 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 327 break;
UnitedHolmes 1:90c01826cdb8 328 case 17:
UnitedHolmes 1:90c01826cdb8 329 mySpeaker.PlayNote(698,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 330 music[touches] = 698;
UnitedHolmes 1:90c01826cdb8 331 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 332 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 333 break;
UnitedHolmes 1:90c01826cdb8 334 case 18:
UnitedHolmes 1:90c01826cdb8 335 mySpeaker.PlayNote(740,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 336 music[touches] = 740;
UnitedHolmes 1:90c01826cdb8 337 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 338 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 339 break;
UnitedHolmes 1:90c01826cdb8 340 case 19:
UnitedHolmes 1:90c01826cdb8 341 mySpeaker.PlayNote(784,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 342 music[touches] = 784;
UnitedHolmes 1:90c01826cdb8 343 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 344 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 345 break;
UnitedHolmes 1:90c01826cdb8 346 case 20:
UnitedHolmes 1:90c01826cdb8 347 mySpeaker.PlayNote(830,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 348 music[touches] = 830;
UnitedHolmes 1:90c01826cdb8 349 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 350 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 351 break;
UnitedHolmes 1:90c01826cdb8 352 case 21:
UnitedHolmes 1:90c01826cdb8 353 mySpeaker.PlayNote(880,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 354 music[touches] = 830;
UnitedHolmes 1:90c01826cdb8 355 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 356 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 357 break;
UnitedHolmes 1:90c01826cdb8 358 case 22:
UnitedHolmes 1:90c01826cdb8 359 mySpeaker.PlayNote(932,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 360 music[touches] = 932;
UnitedHolmes 1:90c01826cdb8 361 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 362 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 363 break;
UnitedHolmes 1:90c01826cdb8 364 case 23:
UnitedHolmes 1:90c01826cdb8 365 mySpeaker.PlayNote(988,0,0.2,1);
UnitedHolmes 1:90c01826cdb8 366 music[touches] = 988;
UnitedHolmes 1:90c01826cdb8 367 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 368 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 369 break;
UnitedHolmes 1:90c01826cdb8 370
UnitedHolmes 1:90c01826cdb8 371 default:
UnitedHolmes 1:90c01826cdb8 372 music[touches] = 0;
UnitedHolmes 1:90c01826cdb8 373 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 374
UnitedHolmes 1:90c01826cdb8 375 }
UnitedHolmes 1:90c01826cdb8 376 }
UnitedHolmes 1:90c01826cdb8 377
UnitedHolmes 1:90c01826cdb8 378 if (key_code[1] != 88) //Overtunes
UnitedHolmes 1:90c01826cdb8 379 {
UnitedHolmes 1:90c01826cdb8 380 switch(key_code[0]) //uses a case for each individual touch sensor
UnitedHolmes 1:90c01826cdb8 381 {
UnitedHolmes 1:90c01826cdb8 382 case 0:
UnitedHolmes 1:90c01826cdb8 383 music[touches] = 262;
UnitedHolmes 1:90c01826cdb8 384 break;
UnitedHolmes 1:90c01826cdb8 385 case 1:
UnitedHolmes 1:90c01826cdb8 386 music[touches] = 277;
UnitedHolmes 1:90c01826cdb8 387 break;
UnitedHolmes 1:90c01826cdb8 388 case 2:
UnitedHolmes 1:90c01826cdb8 389 music[touches] = 294;
UnitedHolmes 1:90c01826cdb8 390 break;
UnitedHolmes 1:90c01826cdb8 391 case 3:
UnitedHolmes 1:90c01826cdb8 392 music[touches] = 311;
UnitedHolmes 1:90c01826cdb8 393 break;
UnitedHolmes 1:90c01826cdb8 394 case 4:
UnitedHolmes 1:90c01826cdb8 395 music[touches] = 330;
UnitedHolmes 1:90c01826cdb8 396 break;
UnitedHolmes 1:90c01826cdb8 397 case 5:
UnitedHolmes 1:90c01826cdb8 398 music[touches] = 349;
UnitedHolmes 1:90c01826cdb8 399 break;
UnitedHolmes 1:90c01826cdb8 400 case 6:
UnitedHolmes 1:90c01826cdb8 401 music[touches] = 370;
UnitedHolmes 1:90c01826cdb8 402 break;
UnitedHolmes 1:90c01826cdb8 403 case 7:
UnitedHolmes 1:90c01826cdb8 404 music[touches] = 392;
UnitedHolmes 1:90c01826cdb8 405 break;
UnitedHolmes 1:90c01826cdb8 406 case 8:
UnitedHolmes 1:90c01826cdb8 407 music[touches] = 415;
UnitedHolmes 1:90c01826cdb8 408 break;
UnitedHolmes 1:90c01826cdb8 409 case 9:
UnitedHolmes 1:90c01826cdb8 410 music[touches] = 440;
UnitedHolmes 1:90c01826cdb8 411 break;
UnitedHolmes 1:90c01826cdb8 412 case 10:
UnitedHolmes 1:90c01826cdb8 413 music[touches] = 466;
UnitedHolmes 1:90c01826cdb8 414 break;
UnitedHolmes 1:90c01826cdb8 415 case 11:
UnitedHolmes 1:90c01826cdb8 416 music[touches] = 494;
UnitedHolmes 1:90c01826cdb8 417 break;
UnitedHolmes 1:90c01826cdb8 418 case 12:
UnitedHolmes 1:90c01826cdb8 419 music[touches] = 523;
UnitedHolmes 1:90c01826cdb8 420 break;
UnitedHolmes 1:90c01826cdb8 421 case 13:
UnitedHolmes 1:90c01826cdb8 422 music[touches] = 554;
UnitedHolmes 1:90c01826cdb8 423 break;
UnitedHolmes 1:90c01826cdb8 424 case 14:
UnitedHolmes 1:90c01826cdb8 425 music[touches] = 587;
UnitedHolmes 1:90c01826cdb8 426 break;
UnitedHolmes 1:90c01826cdb8 427 case 15:
UnitedHolmes 1:90c01826cdb8 428 music[touches] = 622;
UnitedHolmes 1:90c01826cdb8 429 break;
UnitedHolmes 1:90c01826cdb8 430 case 16:
UnitedHolmes 1:90c01826cdb8 431 music[touches] = 659;
UnitedHolmes 1:90c01826cdb8 432 break;
UnitedHolmes 1:90c01826cdb8 433 case 17:
UnitedHolmes 1:90c01826cdb8 434 music[touches] = 698;
UnitedHolmes 1:90c01826cdb8 435 break;
UnitedHolmes 1:90c01826cdb8 436 case 18:
UnitedHolmes 1:90c01826cdb8 437 music[touches] = 740;
UnitedHolmes 1:90c01826cdb8 438 break;
UnitedHolmes 1:90c01826cdb8 439 case 19:
UnitedHolmes 1:90c01826cdb8 440 music[touches] = 784;
UnitedHolmes 1:90c01826cdb8 441 break;
UnitedHolmes 1:90c01826cdb8 442 case 20:
UnitedHolmes 1:90c01826cdb8 443 music[touches] = 830;
UnitedHolmes 1:90c01826cdb8 444 break;
UnitedHolmes 1:90c01826cdb8 445 case 21:
UnitedHolmes 1:90c01826cdb8 446 music[touches] = 830;
UnitedHolmes 1:90c01826cdb8 447 break;
UnitedHolmes 1:90c01826cdb8 448 case 22:
UnitedHolmes 1:90c01826cdb8 449 music[touches] = 932;
UnitedHolmes 1:90c01826cdb8 450 break;
UnitedHolmes 1:90c01826cdb8 451 case 23:
UnitedHolmes 1:90c01826cdb8 452 music[touches] = 988;
UnitedHolmes 1:90c01826cdb8 453 break;
UnitedHolmes 1:90c01826cdb8 454
UnitedHolmes 1:90c01826cdb8 455 default:
UnitedHolmes 1:90c01826cdb8 456 music[touches] = 0;
UnitedHolmes 1:90c01826cdb8 457
UnitedHolmes 1:90c01826cdb8 458 }
UnitedHolmes 1:90c01826cdb8 459
UnitedHolmes 1:90c01826cdb8 460 switch(key_code[1]) //uses a case for each individual touch sensor
UnitedHolmes 1:90c01826cdb8 461 {
UnitedHolmes 1:90c01826cdb8 462 case 0:
UnitedHolmes 1:90c01826cdb8 463 mySpeaker.PlayNote(music[touches],262,0.2,1);
UnitedHolmes 1:90c01826cdb8 464 music2[touches] = 262;
UnitedHolmes 1:90c01826cdb8 465 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 466 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 467 break;
UnitedHolmes 1:90c01826cdb8 468 case 1:
UnitedHolmes 1:90c01826cdb8 469 mySpeaker.PlayNote(music[touches],277,0.2,1);
UnitedHolmes 1:90c01826cdb8 470 music2[touches] = 277;
UnitedHolmes 1:90c01826cdb8 471 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 472 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 473 break;
UnitedHolmes 1:90c01826cdb8 474 case 2:
UnitedHolmes 1:90c01826cdb8 475 mySpeaker.PlayNote(music[touches],294,0.2,1);
UnitedHolmes 1:90c01826cdb8 476 music2[touches] = 294;
UnitedHolmes 1:90c01826cdb8 477 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 478 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 479 break;
UnitedHolmes 1:90c01826cdb8 480 case 3:
UnitedHolmes 1:90c01826cdb8 481 mySpeaker.PlayNote(music[touches],311,0.2,1);
UnitedHolmes 1:90c01826cdb8 482 music2[touches] = 311;
UnitedHolmes 1:90c01826cdb8 483 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 484 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 485 break;
UnitedHolmes 1:90c01826cdb8 486 case 4:
UnitedHolmes 1:90c01826cdb8 487 mySpeaker.PlayNote(music[touches],330,0.2,1);
UnitedHolmes 1:90c01826cdb8 488 music2[touches] = 330;
UnitedHolmes 1:90c01826cdb8 489 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 490 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 491 break;
UnitedHolmes 1:90c01826cdb8 492 case 5:
UnitedHolmes 1:90c01826cdb8 493 mySpeaker.PlayNote(music[touches],349,0.2,1);
UnitedHolmes 1:90c01826cdb8 494 music2[touches] = 349;
UnitedHolmes 1:90c01826cdb8 495 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 496 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 497 break;
UnitedHolmes 1:90c01826cdb8 498 case 6:
UnitedHolmes 1:90c01826cdb8 499 mySpeaker.PlayNote(music[touches],370,0.2,1);
UnitedHolmes 1:90c01826cdb8 500 music2[touches] = 370;
UnitedHolmes 1:90c01826cdb8 501 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 502 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 503 break;
UnitedHolmes 1:90c01826cdb8 504 case 7:
UnitedHolmes 1:90c01826cdb8 505 mySpeaker.PlayNote(music[touches],392,0.2,1);
UnitedHolmes 1:90c01826cdb8 506 music2[touches] = 392;
UnitedHolmes 1:90c01826cdb8 507 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 508 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 509 break;
UnitedHolmes 1:90c01826cdb8 510 case 8:
UnitedHolmes 1:90c01826cdb8 511 mySpeaker.PlayNote(music[touches],415,0.2,1);
UnitedHolmes 1:90c01826cdb8 512 music2[touches] = 415;
UnitedHolmes 1:90c01826cdb8 513 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 514 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 515 break;
UnitedHolmes 1:90c01826cdb8 516 case 9:
UnitedHolmes 1:90c01826cdb8 517 mySpeaker.PlayNote(music[touches],440,0.2,1);
UnitedHolmes 1:90c01826cdb8 518 music2[touches] = 440;
UnitedHolmes 1:90c01826cdb8 519 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 520 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 521 break;
UnitedHolmes 1:90c01826cdb8 522 case 10:
UnitedHolmes 1:90c01826cdb8 523 mySpeaker.PlayNote(music[touches],466,0.2,1);
UnitedHolmes 1:90c01826cdb8 524 music2[touches] = 466;
UnitedHolmes 1:90c01826cdb8 525 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 526 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 527 break;
UnitedHolmes 1:90c01826cdb8 528 case 11:
UnitedHolmes 1:90c01826cdb8 529 mySpeaker.PlayNote(music[touches],494,0.2,1);
UnitedHolmes 1:90c01826cdb8 530 music2[touches] = 494;
UnitedHolmes 1:90c01826cdb8 531 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 532 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 533 break;
UnitedHolmes 1:90c01826cdb8 534 case 12:
UnitedHolmes 1:90c01826cdb8 535 mySpeaker.PlayNote(music[touches],523,0.2,1);
UnitedHolmes 1:90c01826cdb8 536 music2[touches] = 523;
UnitedHolmes 1:90c01826cdb8 537 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 538 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 539 break;
UnitedHolmes 1:90c01826cdb8 540 case 13:
UnitedHolmes 1:90c01826cdb8 541 mySpeaker.PlayNote(music[touches],554,0.2,1);
UnitedHolmes 1:90c01826cdb8 542 music2[touches] = 554;
UnitedHolmes 1:90c01826cdb8 543 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 544 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 545 break;
UnitedHolmes 1:90c01826cdb8 546 case 14:
UnitedHolmes 1:90c01826cdb8 547 mySpeaker.PlayNote(music[touches],587,0.2,1);
UnitedHolmes 1:90c01826cdb8 548 music2[touches] = 587;
UnitedHolmes 1:90c01826cdb8 549 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 550 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 551 break;
UnitedHolmes 1:90c01826cdb8 552 case 15:
UnitedHolmes 1:90c01826cdb8 553 mySpeaker.PlayNote(music[touches],622,0.2,1);
UnitedHolmes 1:90c01826cdb8 554 music2[touches] = 622;
UnitedHolmes 1:90c01826cdb8 555 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 556 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 557 break;
UnitedHolmes 1:90c01826cdb8 558 case 16:
UnitedHolmes 1:90c01826cdb8 559 mySpeaker.PlayNote(music[touches],659,0.2,1);
UnitedHolmes 1:90c01826cdb8 560 music2[touches] = 659;
UnitedHolmes 1:90c01826cdb8 561 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 562 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 563 break;
UnitedHolmes 1:90c01826cdb8 564 case 17:
UnitedHolmes 1:90c01826cdb8 565 mySpeaker.PlayNote(music[touches],698,0.2,1);
UnitedHolmes 1:90c01826cdb8 566 music2[touches] = 698;
UnitedHolmes 1:90c01826cdb8 567 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 568 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 569 break;
UnitedHolmes 1:90c01826cdb8 570 case 18:
UnitedHolmes 1:90c01826cdb8 571 mySpeaker.PlayNote(music[touches],740,0.2,1);
UnitedHolmes 1:90c01826cdb8 572 music2[touches] = 740;
UnitedHolmes 1:90c01826cdb8 573 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 574 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 575 break;
UnitedHolmes 1:90c01826cdb8 576 case 19:
UnitedHolmes 1:90c01826cdb8 577 mySpeaker.PlayNote(music[touches],784,0.2,1);
UnitedHolmes 1:90c01826cdb8 578 music2[touches] = 784;
UnitedHolmes 1:90c01826cdb8 579 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 580 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 581 break;
UnitedHolmes 1:90c01826cdb8 582 case 20:
UnitedHolmes 1:90c01826cdb8 583 mySpeaker.PlayNote(music[touches],830,0.2,1);
UnitedHolmes 1:90c01826cdb8 584 music2[touches] = 830;
UnitedHolmes 1:90c01826cdb8 585 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 586 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 587 break;
UnitedHolmes 1:90c01826cdb8 588 case 21:
UnitedHolmes 1:90c01826cdb8 589 mySpeaker.PlayNote(music[touches],880,0.2,1);
UnitedHolmes 1:90c01826cdb8 590 music2[touches] = 830;
UnitedHolmes 1:90c01826cdb8 591 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 592 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 593 break;
UnitedHolmes 1:90c01826cdb8 594 case 22:
UnitedHolmes 1:90c01826cdb8 595 mySpeaker.PlayNote(music[touches],932,0.2,1);
UnitedHolmes 1:90c01826cdb8 596 music2[touches] = 932;
UnitedHolmes 1:90c01826cdb8 597 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 598 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 599 break;
UnitedHolmes 1:90c01826cdb8 600 case 23:
UnitedHolmes 1:90c01826cdb8 601 mySpeaker.PlayNote(music[touches],988,0.2,1);
UnitedHolmes 1:90c01826cdb8 602 music2[touches] = 988;
UnitedHolmes 1:90c01826cdb8 603 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 604 mySpeaker.StopPlaying();
UnitedHolmes 1:90c01826cdb8 605 break;
UnitedHolmes 1:90c01826cdb8 606
UnitedHolmes 1:90c01826cdb8 607 default:
UnitedHolmes 1:90c01826cdb8 608 music2[touches] = 0;
UnitedHolmes 1:90c01826cdb8 609 flagInterrupt = false;
UnitedHolmes 1:90c01826cdb8 610
UnitedHolmes 1:90c01826cdb8 611 }
UnitedHolmes 1:90c01826cdb8 612 }
UnitedHolmes 1:90c01826cdb8 613 }
UnitedHolmes 1:90c01826cdb8 614 }
UnitedHolmes 1:90c01826cdb8 615