Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of STM32FMSynth by
Diff: main.cpp
- Revision:
- 14:0fcc949310b7
- Parent:
- 13:29705e6bf718
- Child:
- 15:34ba7c2ef718
--- 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);
}
}
