IISEC / Mbed 2 deprecated sintone

Dependencies:   mbed

Revision:
2:82a0131e3c0e
Parent:
1:516ea1ca7abb
Child:
3:6c77b5c7510f
--- a/sintone.cpp	Wed May 23 01:22:50 2018 +0000
+++ b/sintone.cpp	Sun Apr 21 02:54:33 2019 +0000
@@ -1,3 +1,8 @@
+/* sinetone --multiple sin wave generator */
+/* copyright Toshihiro Matsui, IISEC, 2018 */
+/* Any use/modification/copy of this program is granted to anyone
+   as long as the above copyright is maintained*/
+
 #include <mbed.h>
 #define samplerate 16000
 #define MAXFREQS 10
@@ -7,6 +12,7 @@
 PwmOut pwm1(p21);
 AnalogOut da1(p18);
 
+// Frequencies of A, A#, B, C, C#, D, D#, E, F, F#, G, G#, totally 12
 const int scalefreqs[12*2]={440, 466,494,523,554,587,622,659,698,740,784,830,
         880,932,987,1046,1109,1175,1245,1319,1397,1480,1568,1661};
 signed char bytesintab[samplerate];
@@ -26,7 +32,7 @@
     for (i=0; i<maxfreqs; i++) {
         outval += bytesintab[seqlist[i]];
         seqlist[i] += freqlist[i];
-        seqlist[i] = seqlist[i] % samplerate; //clip at 160000
+        seqlist[i] = seqlist[i] % samplerate; //wrap around at 160000
         }        
     da1.write((outval/(256.0*maxfreqs))+0.5); }
 
@@ -40,13 +46,15 @@
     tick1.attach(&gentone, 1.0/(float)samplerate);
     while (1) {
       ch=pc.getc();
+      /* 1..7 changes chord (major, minor, 7th)*/
+      /* a..l changes the base */
       if ('a'<=ch && ch<='l') {
         setfreq(0, ch-'a');
         if (chord<=1) maxfreqs=1;
-        else if (chord>1) { setfreq(1,ch-'a'+7); maxfreqs=2;}
-        if (chord>2) { setfreq(2,ch-'a'+4); maxfreqs=3;}
-        if (chord>3) { setfreq(2,ch-'a'+3); /*minor*/ }
-        if (chord==7) { setfreq(3, ch-'a'+10); maxfreqs=4; }/*seventh*/
+        else if (chord>1) { setfreq(1,ch-'a'+7); maxfreqs=2;} /*add 5th*/
+        if (chord>2) { setfreq(2,ch-'a'+4); maxfreqs=3;} /*add major 3rd*/
+        if (chord>3) { setfreq(2,ch-'a'+3); /*minor*/ } /*add minor 3rd*/
+        if (chord==7) { setfreq(3, ch-'a'+10); maxfreqs=4; }/*7th*/
         }
       if ('1'<=ch && ch<='7') chord=ch-'0'; 
       pc.printf("%d %d\n\r", freqlist[0], chord); }