![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Input text while you make music
main.cpp@0:c9f5b34bfd8e, 2015-09-14 (annotated)
- 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?
User | Revision | Line number | New 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 | } |