Luke Cartwright / Mbed 2 deprecated ELEC2645_Project_el18loc_nearlythere

Dependencies:   mbed

Revision:
28:eb0f12304a45
Parent:
27:da783f414f67
Child:
29:207111ffd6e6
diff -r da783f414f67 -r eb0f12304a45 Front/Front.cpp
--- a/Front/Front.cpp	Sun May 24 21:13:36 2020 +0000
+++ b/Front/Front.cpp	Mon May 25 10:46:02 2020 +0000
@@ -155,13 +155,14 @@
     //printf("G_ISR_FLAG= %d\n",g_isr_flag); //DEBUG
     frontsetup(lcd, pad, submenu,0, true);  //Initialises front pannel display
     initialise(pad,lcd,submenu);
-    frequency=frequency_convert(pad);
+    frequency=frequency_convert(pad,oct);
     menuflag=1;  //sets up flags
     release_flag=silent_flag=0;
     used=1;  //initialises vairables
     filter_type=envelope_in=0;
     a=d=s=r=17; //starting adsr values (1->35)
     noteon=false;
+    oct=3;
 #ifdef CSV
     itterator=0; //sets itterator for CSV OUTPUT
 #endif
@@ -253,7 +254,7 @@
             printf("NOTE_ON\n");
             noteon=true;
             out=envelope.env_in(a,d,s,r,out,true);
-            frequency=frequency_convert(pad);
+            frequency=frequency_convert(pad,oct);
         }
         if ( pad.B_pressed())  { //NOTE OFF
             //printf("NOTE_OFF (W.release)\n");
@@ -261,12 +262,16 @@
             envelope_in=envelope.release(s,r,envelope_in,true);
             pad.reset_buttons();
         }
-        if ( pad.X_pressed())  { 
-            printf("X\n");
+        if ( pad.X_pressed())  {
+            oct--;
+            if (oct<0) {oct++;}
+            printf("OCTAVE %d\n",oct);
             pad.reset_buttons();
         }
         if ( pad.Y_pressed())  { 
-            printf("Y\n");
+            oct++;
+            if (oct>5) {oct--;}
+            printf("OCTAVE %d\n",oct);
             pad.reset_buttons();
         }
 
@@ -453,9 +458,10 @@
     return(adsr);
 }
 
-int Front::frequency_convert(Gamepad &pad)
-{
-    frequency=(440+(pad.read_pot1()*440));
+int Front::frequency_convert(Gamepad &pad,int oct)
+{   
+    frequency=55*(pow(2.0,oct));
+    frequency=(frequency+(pad.read_pot1()*frequency));
     return(frequency);
 }