Abel Zatarain / Mbed 2 deprecated FMSynthCSUSM

Dependencies:   mbed

Revision:
14:0fcc949310b7
Parent:
13:29705e6bf718
Child:
15:34ba7c2ef718
diff -r 29705e6bf718 -r 0fcc949310b7 main.cpp
--- a/main.cpp	Fri Dec 08 00:04:26 2017 +0000
+++ b/main.cpp	Fri Dec 08 00:33:19 2017 +0000
@@ -101,8 +101,8 @@
     
     testTone = (testTone + carrierIncrements[25]) & 0xffff;
     
-    for(int64_t i = 0ll ; i < numKeys; ++i){//for all keys
-        int64_t keymask = 0x00000001 << i;
+    for(int i = 0; i < numKeys; ++i){//for all keys
+        int64_t keymask = 0x00000001 << (long long)i;
         keypressed = (keyboard & keymask) != 0;
         CenvAmp = envelopeAmpsC[i];
         MenvAmp = envelopeAmpsM[i];
@@ -144,27 +144,12 @@
         envelopeAmpsC[i] = CenvAmp;
         envelopeAmpsM[i]= MenvAmp;
         
-        modulatorPhases[i] = (modulatorPhases[i] + ((carrierIncrements[i] * FMmult) >> 16)) & 0xffff;
-        modVal = fastSin(modulatorPhases[i]) * MenvAmp >> 16;
-        modVal = modVal * modVol >> 16;
-        
-        //debug
-        modVal = 0;
-        CenvAmp = keypressed ? 1 : 0;
-        
-        tempPhase = carrierPhases[i] + carrierIncrements[i];
-        tempPhase = (tempPhase + modVal) & 0xffff;
-        carrierPhases[i] = tempPhase;
-        
-        carVal = fastSin(tempPhase) * CenvAmp >> 16;
-        
-        volumeSum += carVal;        
+        volumeSum += carVal;
     }
     if(keyboard != 0ll)
         volumeSum += fastSin(testTone);
     volumeSum = volumeSum / numKeys;
     volumeSum = (volumeSum * Volume) >> 16;
-    //outMono.write_u16((volumeSum + Volume) > 1);
     volumeSum *= 8 * numKeys;
     volumeSum = (volumeSum > 32767) ? 32767 : volumeSum;
     volumeSum = (volumeSum < -32768) ? -32768 : volumeSum;
@@ -180,6 +165,7 @@
     
     int64_t keytemp = 0;
 
+    pc.printf("Starting up...");
     FMmult = 1;
     Volume = 0;
     modVol = 0;
@@ -204,6 +190,7 @@
     keyBank.mode(PullNone);
     synthesisClock.attach(synthesize, 0.000025);//debug
     
+    pc.printf("done.\r\n");
     while(true){
         ratNumer = 0xf & ~ numerator;
         ratDenom = 0xf & ~ denominator;
@@ -246,7 +233,7 @@
             modR = 0xffff;
         else
             modR = 0xffff / ((int)inModR.read_u16());
-        
+
         
         keytemp = 0; //zero the keys before we start ORing on top of everything
         for(int i = 0; i < 9; ++i) {
@@ -260,8 +247,6 @@
         
         keyboard = keytemp;
         
-        
-        
         wait_ms(5);
     }
 }