For MAX32630FTHR Demo Board: Plays piano notes mapped to keyboard keys interfaced through serial port (puTTY or powershell).

Dependencies:   SDFileSystem max32630fthr USBDevice

Revision:
3:3a4d2d10e298
Parent:
2:93da96b41127
Child:
4:06115dc377f7
--- a/main.cpp	Tue Jul 16 09:37:41 2019 +0000
+++ b/main.cpp	Fri Jul 19 01:48:43 2019 +0000
@@ -3,10 +3,13 @@
 #include "USBSerial.h"
 #include "stdio.h"
 #include "SDFileSystem.h"
+#include "ctype.h"
 
 //still needs BITS PER SAMPLE PARSING.
 //do this like so: PWM.write(WavValue/2^BPS)
 
+//MAPPING IS WRONG. P = 440 PLZ. Y = MIDDLE D.
+
 #define BUFFER_SIZE 128
 #define HALF_BUFFER 64
 
@@ -79,7 +82,7 @@
         
         float ticker_period = (float) 1/(Track.sampleRate);
         
-        printf("\r\nTicker Period: %f\tTicker Freq: %f\r\nTarget Freq: %i\r\n\r\n",ticker_period, 1/ticker_period, PlayingFreq);
+        printf("\r\nTicker Period: %f\tTicker Freq: %f\r\nTarget Freq: %i \r\n\r\n",ticker_period, 1/ticker_period, PlayingFreq);
 
         if(attached)
         {
@@ -96,166 +99,179 @@
         switch(c)
         {
             case '1':
-                PlayingFreq = 98;
+                PlayingFreq = 73;
                 break;
             case '!':
-                PlayingFreq = 404;
+                PlayingFreq = 78;
                 break;
             case '2':
-                PlayingFreq = 110;
-                break;
-            case '@':
-                PlayingFreq = 117;
+                PlayingFreq = 82;
                 break;
             case '3':
-                PlayingFreq = 123;
+                PlayingFreq = 87;
+                break;
+            case '#':
+                PlayingFreq = 92;
                 break;
             case '4':
-                PlayingFreq = 131;
+                PlayingFreq = 98;
                 break;
             case '$':
-                PlayingFreq = 139;
+                PlayingFreq = 104;
                 break;
             case '5':
-                PlayingFreq = 147;
+                PlayingFreq = 110;
                 break;
             case '%':
-                PlayingFreq = 156;
+                PlayingFreq = 117;
                 break;
             case '6':
-                PlayingFreq = 165;
+                PlayingFreq = 123;
                 break;
             case '7':
-                PlayingFreq = 175;
-                break;
-            case '&':
-                PlayingFreq = 185;
+                PlayingFreq = 131;
                 break;
             case '8':
-                PlayingFreq = 196;
-                break;
-            case '*':
-                PlayingFreq = 208;
+                PlayingFreq = 139;
                 break;
             case '9':
-                PlayingFreq = 220;
+                PlayingFreq = 147;
                 break;
             case '(':
-                PlayingFreq = 233;
+                PlayingFreq = 156;
                 break;
             case '0':
-                PlayingFreq = 247;
+                PlayingFreq = 165;
                 break;
             case 'q':
-                PlayingFreq = 262;
+                PlayingFreq = 175;
                 break;
             case 'Q':
-                PlayingFreq = 277;
+                PlayingFreq = 185;
                 break;
             case 'w':
-                PlayingFreq = 294;
+                PlayingFreq = 196;
                 break;
             case 'W':
-                PlayingFreq = 311;
+                PlayingFreq = 208;
                 break;
             case 'e':
+                PlayingFreq = 220;
+                break;
+            case 'E':
+                PlayingFreq = 233;
+                break;
+            case 'r':
+                PlayingFreq = 247;
+                break;
+            case 't':
+                PlayingFreq = 262;
+                break;
+            case 'T':
+                PlayingFreq = 277;
+                break;
+            case 'y':
+                PlayingFreq = 294;
+                break;
+            case 'Y':
+                PlayingFreq = 311;
+                break;
+            case 'u':
                 PlayingFreq = 330;
                 break;
-            case 'r':
+            case 'i':
                 PlayingFreq = 349;
                 break;
-            case 'R':
+            case 'I':
                 PlayingFreq = 370;
                 break;
-            case 't':
+            case 'o':
                 PlayingFreq = 392;
                 break;
-            case 'T':
+            case 'O':
                 PlayingFreq = 415;
                 break;
-            case 'y':
+            case 'p':
                 PlayingFreq = 440;
                 break;
-            case 'Y':
+            case 'P':
                 PlayingFreq = 466;
                 break;
-            case 'u':
+            case 'a':
                 PlayingFreq = 494;
                 break;
-            case 'i':
+            case 's':
                 PlayingFreq = 523;
                 break;
-            case 'I':
-                PlayingFreq = 554;
-                break;
-            case 'o':
-                PlayingFreq = 587;
-                break;
-            case 'O':
-                PlayingFreq = 622;
-                break;
-            case 'p':
-                PlayingFreq = 659;
-                break;
-            case 'a':
-                PlayingFreq = 698;
-                break;
-            case 'A':
-                PlayingFreq = 740;
-                break;
-            case 's':
-                PlayingFreq = 784;
-                break;
             case 'S':
-                PlayingFreq = 831;
+                PlayingFreq = 554;
                 break;
             case 'd':
-                PlayingFreq = 880;
+                PlayingFreq = 587;
                 break;
             case 'D':
-                PlayingFreq = 932;
+                PlayingFreq = 622;
                 break;
             case 'f':
-                PlayingFreq = 988;
+                PlayingFreq = 659;
                 break;
             case 'g':
-                PlayingFreq = 1047;
+                PlayingFreq = 698;
                 break;
             case 'G':
-                PlayingFreq = 1109;
+                PlayingFreq = 740;
                 break;
             case 'h':
-                PlayingFreq = 1175;
+                PlayingFreq = 784;
                 break;
             case 'H':
-                PlayingFreq = 1245;
+                PlayingFreq = 831;
                 break;
             case 'j':
-                PlayingFreq = 1319;
+                PlayingFreq = 880;
+                break;
+            case 'J':
+                PlayingFreq = 932;
                 break;
             case 'k':
+                PlayingFreq = 988;
+                break;
+            case 'l':
+                PlayingFreq = 1047;
+                break;
+            case 'L':
+                PlayingFreq = 1109;
+                break;
+            case 'z':
+                PlayingFreq = 1175;
+                break;
+            case 'Z':
+                PlayingFreq = 1245;
+                break;
+            case 'x':
+                PlayingFreq = 1319;
+                break;
+            case 'c':
                 PlayingFreq = 1397;
                 break;
-            case 'K':
+            case 'C':
                 PlayingFreq = 1480;
                 break;
-            case 'l':
+            case 'v':
                 PlayingFreq = 1568;
                 break;
-            case 'L':
+            case 'V':
                 PlayingFreq = 1661;
                 break;
             case '\r':
                 attached = !attached;
+                gLED = !gLED;
                 break;
         }
 
         gLED = LED_OFF;
         rLED = !rLED;
-        if(attached)
-        {
-            SampleTime.detach();
-        }
+        SampleTime.detach();
         
         printf("\033[A\033[A\033[A\033[A");
     }