Input text while you make music

Dependencies:   PinDetect mbed

Committer:
bernardkim
Date:
Mon Sep 14 10:27:55 2015 +0000
Revision:
0:c9f5b34bfd8e
v0.9 Input text while making modal music

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bernardkim 0:c9f5b34bfd8e 1 #include "mbed.h"
bernardkim 0:c9f5b34bfd8e 2 #include "PinDetect.h"
bernardkim 0:c9f5b34bfd8e 3
bernardkim 0:c9f5b34bfd8e 4 PinDetect key1(D2, PullUp);
bernardkim 0:c9f5b34bfd8e 5 PinDetect key2(D3, PullUp);
bernardkim 0:c9f5b34bfd8e 6 PinDetect key3(D4, PullUp);
bernardkim 0:c9f5b34bfd8e 7 PinDetect key4(D5, PullUp);
bernardkim 0:c9f5b34bfd8e 8 PinDetect key5(D6, PullUp);
bernardkim 0:c9f5b34bfd8e 9 PinDetect key6(D7, PullUp);
bernardkim 0:c9f5b34bfd8e 10 PinDetect key7(D8, PullUp);
bernardkim 0:c9f5b34bfd8e 11 DigitalOut myled(LED1);
bernardkim 0:c9f5b34bfd8e 12
bernardkim 0:c9f5b34bfd8e 13 Serial pc(USBTX, USBRX);
bernardkim 0:c9f5b34bfd8e 14
bernardkim 0:c9f5b34bfd8e 15 int fingers[6] = {0,0,0,0,0,0};
bernardkim 0:c9f5b34bfd8e 16 int enter;
bernardkim 0:c9f5b34bfd8e 17
bernardkim 0:c9f5b34bfd8e 18 int notes[6] = {2,3,4,5,6,7};
bernardkim 0:c9f5b34bfd8e 19
bernardkim 0:c9f5b34bfd8e 20 void key1PressedHeld( void ) {
bernardkim 0:c9f5b34bfd8e 21 enter = 1;
bernardkim 0:c9f5b34bfd8e 22 }
bernardkim 0:c9f5b34bfd8e 23
bernardkim 0:c9f5b34bfd8e 24 void key1Released( void ) {
bernardkim 0:c9f5b34bfd8e 25 enter = 0;
bernardkim 0:c9f5b34bfd8e 26 }
bernardkim 0:c9f5b34bfd8e 27
bernardkim 0:c9f5b34bfd8e 28 void key2PressedHeld( void ) {
bernardkim 0:c9f5b34bfd8e 29 fingers[0] = 1;
bernardkim 0:c9f5b34bfd8e 30 }
bernardkim 0:c9f5b34bfd8e 31
bernardkim 0:c9f5b34bfd8e 32 void key2Released( void ) {
bernardkim 0:c9f5b34bfd8e 33 fingers[0] = 0;
bernardkim 0:c9f5b34bfd8e 34 }
bernardkim 0:c9f5b34bfd8e 35
bernardkim 0:c9f5b34bfd8e 36 void key3PressedHeld( void ) {
bernardkim 0:c9f5b34bfd8e 37 fingers[1] = 1;
bernardkim 0:c9f5b34bfd8e 38 }
bernardkim 0:c9f5b34bfd8e 39
bernardkim 0:c9f5b34bfd8e 40 void key3Released( void ) {
bernardkim 0:c9f5b34bfd8e 41 fingers[1] = 0;
bernardkim 0:c9f5b34bfd8e 42 }
bernardkim 0:c9f5b34bfd8e 43
bernardkim 0:c9f5b34bfd8e 44 void key4PressedHeld( void ) {
bernardkim 0:c9f5b34bfd8e 45 fingers[2] = 1;
bernardkim 0:c9f5b34bfd8e 46 }
bernardkim 0:c9f5b34bfd8e 47
bernardkim 0:c9f5b34bfd8e 48 void key4Released( void ) {
bernardkim 0:c9f5b34bfd8e 49 fingers[2] = 0;
bernardkim 0:c9f5b34bfd8e 50 }
bernardkim 0:c9f5b34bfd8e 51
bernardkim 0:c9f5b34bfd8e 52 void key5PressedHeld( void ) {
bernardkim 0:c9f5b34bfd8e 53 fingers[3] = 1;
bernardkim 0:c9f5b34bfd8e 54 }
bernardkim 0:c9f5b34bfd8e 55
bernardkim 0:c9f5b34bfd8e 56 void key5Released( void ) {
bernardkim 0:c9f5b34bfd8e 57 fingers[3] = 0;
bernardkim 0:c9f5b34bfd8e 58 }
bernardkim 0:c9f5b34bfd8e 59
bernardkim 0:c9f5b34bfd8e 60 void key6PressedHeld( void ) {
bernardkim 0:c9f5b34bfd8e 61 fingers[4] = 1;
bernardkim 0:c9f5b34bfd8e 62 }
bernardkim 0:c9f5b34bfd8e 63
bernardkim 0:c9f5b34bfd8e 64 void key6Released( void ) {
bernardkim 0:c9f5b34bfd8e 65 fingers[4] = 0;
bernardkim 0:c9f5b34bfd8e 66 }
bernardkim 0:c9f5b34bfd8e 67
bernardkim 0:c9f5b34bfd8e 68 void key7PressedHeld( void ) {
bernardkim 0:c9f5b34bfd8e 69 fingers[5] = 1;
bernardkim 0:c9f5b34bfd8e 70 }
bernardkim 0:c9f5b34bfd8e 71
bernardkim 0:c9f5b34bfd8e 72 void key7Released( void ) {
bernardkim 0:c9f5b34bfd8e 73 fingers[5] = 0;
bernardkim 0:c9f5b34bfd8e 74 }
bernardkim 0:c9f5b34bfd8e 75 int note;
bernardkim 0:c9f5b34bfd8e 76
bernardkim 0:c9f5b34bfd8e 77 int noteassign(int fingers) {
bernardkim 0:c9f5b34bfd8e 78 if (fingers == {1,1,1,1,1,1})
bernardkim 0:c9f5b34bfd8e 79 note = 2;
bernardkim 0:c9f5b34bfd8e 80 else if (fingers == {0,1,1,1,1,1})
bernardkim 0:c9f5b34bfd8e 81 note = 3;
bernardkim 0:c9f5b34bfd8e 82 else if (fingers == {0,0,1,1,1,1})
bernardkim 0:c9f5b34bfd8e 83 note = 4;
bernardkim 0:c9f5b34bfd8e 84 else if (fingers == {0,0,0,1,1,1})
bernardkim 0:c9f5b34bfd8e 85 note = 5;
bernardkim 0:c9f5b34bfd8e 86 else if (fingers == {0,0,0,0,1,1})
bernardkim 0:c9f5b34bfd8e 87 note = 6;
bernardkim 0:c9f5b34bfd8e 88 else if (fingers == {0,0,0,0,0,1})
bernardkim 0:c9f5b34bfd8e 89 note = 7;
bernardkim 0:c9f5b34bfd8e 90 return note
bernardkim 0:c9f5b34bfd8e 91 }
bernardkim 0:c9f5b34bfd8e 92
bernardkim 0:c9f5b34bfd8e 93 int notesplayed[2] = {0,0};
bernardkim 0:c9f5b34bfd8e 94
bernardkim 0:c9f5b34bfd8e 95 int notescurr(int note) {
bernardkim 0:c9f5b34bfd8e 96 notesplayed[0] = notesplayed[1];
bernardkim 0:c9f5b34bfd8e 97 notesplayed[1] = note;
bernardkim 0:c9f5b34bfd8e 98 }
bernardkim 0:c9f5b34bfd8e 99
bernardkim 0:c9f5b34bfd8e 100 void key1PressedHeld(int notesplayed)
bernardkim 0:c9f5b34bfd8e 101 {
bernardkim 0:c9f5b34bfd8e 102 if (notescurr == {2,0})
bernardkim 0:c9f5b34bfd8e 103 pc.printf("E");
bernardkim 0:c9f5b34bfd8e 104 else if (notescurr == {3,0})
bernardkim 0:c9f5b34bfd8e 105 pc.printf("T");
bernardkim 0:c9f5b34bfd8e 106 else if (notescurr == {4,0})
bernardkim 0:c9f5b34bfd8e 107 pc.printf("A");
bernardkim 0:c9f5b34bfd8e 108 else if (notescurr == {5,0})
bernardkim 0:c9f5b34bfd8e 109 pc.printf("O");
bernardkim 0:c9f5b34bfd8e 110 else if (notescurr == {6,0})
bernardkim 0:c9f5b34bfd8e 111 pc.printf("I");
bernardkim 0:c9f5b34bfd8e 112 else if (notescurr == {7,0})
bernardkim 0:c9f5b34bfd8e 113 pc.printf("N");
bernardkim 0:c9f5b34bfd8e 114 else if (notescurr == {2,3})
bernardkim 0:c9f5b34bfd8e 115 pc.printf("S");
bernardkim 0:c9f5b34bfd8e 116 else if (notescurr == {2,4})
bernardkim 0:c9f5b34bfd8e 117 pc.printf("H");
bernardkim 0:c9f5b34bfd8e 118 else if (notescurr == {2,5})
bernardkim 0:c9f5b34bfd8e 119 pc.printf("R");
bernardkim 0:c9f5b34bfd8e 120 else if (notescurr == {2,6})
bernardkim 0:c9f5b34bfd8e 121 pc.printf("D");
bernardkim 0:c9f5b34bfd8e 122 else if (notescurr == {2,7})
bernardkim 0:c9f5b34bfd8e 123 pc.printf("L");
bernardkim 0:c9f5b34bfd8e 124 else if (notescurr == {3,2})
bernardkim 0:c9f5b34bfd8e 125 pc.printf("C");
bernardkim 0:c9f5b34bfd8e 126 else if (notescurr == {3,4})
bernardkim 0:c9f5b34bfd8e 127 pc.printf("U");
bernardkim 0:c9f5b34bfd8e 128 else if (notescurr == {3,5})
bernardkim 0:c9f5b34bfd8e 129 pc.printf("M");
bernardkim 0:c9f5b34bfd8e 130 else if (notescurr == {3,6})
bernardkim 0:c9f5b34bfd8e 131 pc.printf("W");
bernardkim 0:c9f5b34bfd8e 132 else if (notescurr == {3,7})
bernardkim 0:c9f5b34bfd8e 133 pc.printf("F");
bernardkim 0:c9f5b34bfd8e 134 else if (notescurr == {4,2})
bernardkim 0:c9f5b34bfd8e 135 pc.printf("G");
bernardkim 0:c9f5b34bfd8e 136 else if (notescurr == {4,3})
bernardkim 0:c9f5b34bfd8e 137 pc.printf("Y");
bernardkim 0:c9f5b34bfd8e 138 else if (notescurr == {4,5})
bernardkim 0:c9f5b34bfd8e 139 pc.printf("P");
bernardkim 0:c9f5b34bfd8e 140 else if (notescurr == {4,6})
bernardkim 0:c9f5b34bfd8e 141 pc.printf("B");
bernardkim 0:c9f5b34bfd8e 142 else if (notescurr == {4,7})
bernardkim 0:c9f5b34bfd8e 143 pc.printf("V");
bernardkim 0:c9f5b34bfd8e 144 else if (notescurr == {5,2})
bernardkim 0:c9f5b34bfd8e 145 pc.printf("K");
bernardkim 0:c9f5b34bfd8e 146 else if (notescurr == {5,3})
bernardkim 0:c9f5b34bfd8e 147 pc.printf("J");
bernardkim 0:c9f5b34bfd8e 148 else if (notescurr == {5,4})
bernardkim 0:c9f5b34bfd8e 149 pc.printf("X");
bernardkim 0:c9f5b34bfd8e 150 else if (notescurr == {5,6})
bernardkim 0:c9f5b34bfd8e 151 pc.printf("Q");
bernardkim 0:c9f5b34bfd8e 152 else if (notescurr == {5,7})
bernardkim 0:c9f5b34bfd8e 153 pc.printf("Z");
bernardkim 0:c9f5b34bfd8e 154 else if (notescurr == {0,0})
bernardkim 0:c9f5b34bfd8e 155 pc.printf(" ");
bernardkim 0:c9f5b34bfd8e 156 };
bernardkim 0:c9f5b34bfd8e 157
bernardkim 0:c9f5b34bfd8e 158 void key1Released(void) {
bernardkim 0:c9f5b34bfd8e 159 notesplayed[0] = 0;
bernardkim 0:c9f5b34bfd8e 160 notesplayed[1] = 0;
bernardkim 0:c9f5b34bfd8e 161 }
bernardkim 0:c9f5b34bfd8e 162
bernardkim 0:c9f5b34bfd8e 163 int main() {
bernardkim 0:c9f5b34bfd8e 164 key1.attach_asserted_held( &key1PressedHeld );
bernardkim 0:c9f5b34bfd8e 165 key2.attach_asserted_held( &key2PressedHeld );
bernardkim 0:c9f5b34bfd8e 166 key3.attach_asserted_held( &key3PressedHeld );
bernardkim 0:c9f5b34bfd8e 167 key4.attach_asserted_held( &key4PressedHeld );
bernardkim 0:c9f5b34bfd8e 168 key5.attach_asserted_held( &key5PressedHeld );
bernardkim 0:c9f5b34bfd8e 169 key6.attach_asserted_held( &key6PressedHeld );
bernardkim 0:c9f5b34bfd8e 170 key7.attach_asserted_held( &key7PressedHeld );
bernardkim 0:c9f5b34bfd8e 171 key1.attach_deasserted( &key1Released );
bernardkim 0:c9f5b34bfd8e 172 key2.attach_deasserted( &key2Released );
bernardkim 0:c9f5b34bfd8e 173 key3.attach_deasserted( &key3Released );
bernardkim 0:c9f5b34bfd8e 174 key4.attach_deasserted( &key4Released );
bernardkim 0:c9f5b34bfd8e 175 key5.attach_deasserted( &key5Released );
bernardkim 0:c9f5b34bfd8e 176 key6.attach_deasserted( &key6Released );
bernardkim 0:c9f5b34bfd8e 177 key7.attach_deasserted( &key7Released );
bernardkim 0:c9f5b34bfd8e 178
bernardkim 0:c9f5b34bfd8e 179 }