Input text while you make music

Dependencies:   PinDetect mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "PinDetect.h"
00003 
00004 PinDetect key1(D2, PullUp);
00005 PinDetect key2(D3, PullUp);
00006 PinDetect key3(D4, PullUp);
00007 PinDetect key4(D5, PullUp);
00008 PinDetect key5(D6, PullUp);
00009 PinDetect key6(D7, PullUp);
00010 PinDetect key7(D8, PullUp);
00011 DigitalOut myled(LED1);
00012 
00013 Serial pc(USBTX, USBRX);
00014 
00015 int fingers[6] = {0,0,0,0,0,0};
00016 int enter;
00017 
00018 int notes[6] = {2,3,4,5,6,7};
00019 
00020 void key1PressedHeld( void ) {
00021     enter = 1;
00022 }
00023 
00024 void key1Released( void ) {
00025     enter = 0;
00026 }
00027 
00028 void key2PressedHeld( void ) {
00029     fingers[0] = 1;
00030 }
00031 
00032 void key2Released( void ) {
00033     fingers[0] = 0;
00034 }
00035 
00036 void key3PressedHeld( void ) {
00037     fingers[1] = 1;
00038 }
00039 
00040 void key3Released( void ) {
00041     fingers[1] = 0;
00042 }
00043 
00044 void key4PressedHeld( void ) {
00045     fingers[2] = 1;
00046 }
00047 
00048 void key4Released( void ) {
00049     fingers[2] = 0;
00050 }
00051 
00052 void key5PressedHeld( void ) {
00053     fingers[3] = 1;
00054 }
00055 
00056 void key5Released( void ) {
00057     fingers[3] = 0;
00058 }
00059 
00060 void key6PressedHeld( void ) {
00061     fingers[4] = 1;
00062 }
00063 
00064 void key6Released( void ) {
00065     fingers[4] = 0;
00066 }
00067 
00068 void key7PressedHeld( void ) {
00069     fingers[5] = 1;
00070 }
00071 
00072 void key7Released( void ) {
00073     fingers[5] = 0;
00074 }
00075 int note;
00076 
00077 int noteassign(int fingers) {
00078     if (fingers == {1,1,1,1,1,1})
00079         note = 2;
00080     else if (fingers == {0,1,1,1,1,1})
00081         note = 3;
00082     else if (fingers == {0,0,1,1,1,1})
00083         note = 4;
00084     else if (fingers == {0,0,0,1,1,1})
00085         note = 5;
00086     else if (fingers == {0,0,0,0,1,1})
00087         note = 6;
00088     else if (fingers == {0,0,0,0,0,1})
00089         note = 7;
00090     return note
00091 }
00092 
00093 int notesplayed[2] = {0,0};
00094 
00095 int notescurr(int note) {
00096     notesplayed[0] = notesplayed[1];
00097     notesplayed[1] = note;
00098 }
00099 
00100 void key1PressedHeld(int notesplayed)
00101 {
00102     if (notescurr == {2,0})
00103         pc.printf("E");
00104     else if (notescurr == {3,0})
00105         pc.printf("T");
00106     else if (notescurr == {4,0})
00107         pc.printf("A");
00108     else if (notescurr == {5,0})
00109         pc.printf("O");
00110     else if (notescurr == {6,0})
00111         pc.printf("I");
00112     else if (notescurr == {7,0})
00113         pc.printf("N");
00114     else if (notescurr == {2,3})
00115         pc.printf("S");
00116     else if (notescurr == {2,4})
00117         pc.printf("H");
00118     else if (notescurr == {2,5})
00119         pc.printf("R");
00120     else if (notescurr == {2,6})
00121         pc.printf("D");
00122     else if (notescurr == {2,7})
00123         pc.printf("L");
00124     else if (notescurr == {3,2})
00125         pc.printf("C");
00126     else if (notescurr == {3,4})
00127         pc.printf("U");
00128     else if (notescurr == {3,5})
00129         pc.printf("M");
00130     else if (notescurr == {3,6})
00131         pc.printf("W");
00132     else if (notescurr == {3,7})
00133         pc.printf("F");
00134     else if (notescurr == {4,2})
00135         pc.printf("G");
00136     else if (notescurr == {4,3})
00137         pc.printf("Y");
00138     else if (notescurr == {4,5})
00139         pc.printf("P");
00140     else if (notescurr == {4,6})
00141         pc.printf("B");
00142     else if (notescurr == {4,7})
00143         pc.printf("V");
00144     else if (notescurr == {5,2})
00145         pc.printf("K");
00146     else if (notescurr == {5,3})
00147         pc.printf("J");
00148     else if (notescurr == {5,4})
00149         pc.printf("X");
00150     else if (notescurr == {5,6})
00151         pc.printf("Q");
00152     else if (notescurr == {5,7})
00153         pc.printf("Z");
00154     else if (notescurr == {0,0})
00155         pc.printf(" ");
00156 };
00157 
00158 void key1Released(void) {
00159     notesplayed[0] = 0;
00160     notesplayed[1] = 0;
00161 }
00162 
00163 int main() {
00164     key1.attach_asserted_held( &key1PressedHeld );
00165     key2.attach_asserted_held( &key2PressedHeld );
00166     key3.attach_asserted_held( &key3PressedHeld );
00167     key4.attach_asserted_held( &key4PressedHeld );
00168     key5.attach_asserted_held( &key5PressedHeld );
00169     key6.attach_asserted_held( &key6PressedHeld );
00170     key7.attach_asserted_held( &key7PressedHeld );
00171     key1.attach_deasserted( &key1Released );
00172     key2.attach_deasserted( &key2Released );
00173     key3.attach_deasserted( &key3Released );
00174     key4.attach_deasserted( &key4Released );
00175     key5.attach_deasserted( &key5Released );
00176     key6.attach_deasserted( &key6Released );
00177     key7.attach_deasserted( &key7Released );
00178 
00179 }