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: PinDetect_KL25Z mbed-rtos mbed
Fork of ChordJoy by
Diff: main.cpp
- Revision:
- 5:1186eb1f3c2b
- Parent:
- 4:400a042e762a
diff -r 400a042e762a -r 1186eb1f3c2b main.cpp
--- a/main.cpp Mon Sep 22 02:15:15 2014 +0000
+++ b/main.cpp Mon Sep 22 06:14:29 2014 +0000
@@ -8,7 +8,7 @@
// Collection is the time that it takes after pressing one key and then reading
// all the keys to determine what the chord is.
-const int COLLECTION_MS = 500;
+const int COLLECTION_MS = 200;
Timer collectionTimer;
InterruptIn buttons [BUTTONS] = {
@@ -44,35 +44,37 @@
10000000 // inaudible pitch
};
// Possible chords that can be played.
+// Chords consist of 3 notes, and an integer for the ASCII character
+// that it will output via serial.
// Note that 7 is no button pressed, or a 'silent' pitch.
-int chords [LETTERS][BUZZERS] = {
- {0, 7, 7}, // single notes
- {1, 7, 7},
- {2, 7, 7},
- {3, 7, 7},
- {4, 7, 7},
- {5, 7, 7},
- {6, 7, 7},
- {0, 2, 7}, // diads
- {0, 3, 7},
- {0, 4, 7},
- {0, 5, 7},
- {1, 3, 7},
- {1, 4, 7},
- {1, 5, 7},
- {1, 6, 7},
- {2, 4, 7},
- {2, 5, 7},
- {2, 6, 7},
- {3, 4, 7},
- {3, 5, 7},
- {4, 6, 7},
- {0, 2, 4}, // triads
- {0, 2, 5},
- {0, 3, 5},
- {1, 4, 6},
- {1, 3, 4},
- {1, 3, 6}
+int chords [LETTERS][BUZZERS + 1] = {
+ {0, 7, 7, 114}, // single notes
+ {1, 7, 7, 32},
+ {2, 7, 7, 106},
+ {3, 7, 7, 107},
+ {4, 7, 7, 109},
+ {5, 7, 7, 113},
+ {6, 7, 7, 122},
+ {0, 2, 7, 115}, // diads
+ {0, 3, 7, 112},
+ {0, 4, 7, 110},
+ {0, 5, 7, 102},
+ {1, 3, 7, 105},
+ {1, 4, 7, 98},
+ {1, 5, 7, 103},
+ {1, 6, 7, 104},
+ {2, 4, 7, 100},
+ {2, 5, 7, 121},
+ {2, 6, 7, 120},
+ {3, 4, 7, 99},
+ {3, 5, 7, 117},
+ {4, 6, 7, 119},
+ {0, 2, 4, 101}, // triads
+ {0, 2, 5, 118},
+ {0, 3, 5, 108},
+ {1, 3, 6, 97},
+ {1, 4, 6, 116},
+ {1, 3, 4, 111}
};
void playChord(int chordIndex) {
@@ -103,7 +105,7 @@
void registerButtonInterrupts(void) {
for (int i = 0; i < BUTTONS; i++) {
- buttons[i].rise(&setFlag);
+ buttons[i].fall(&setFlag);
}
}
@@ -115,7 +117,7 @@
int firstThreeButtons[BUZZERS] = {7, 7, 7};
int pressedCount = 0;
for (int i = 0; i < BUTTONS; i++) {
- if (buttons[i].read() == 1) {
+ if (buttons[i].read() == 0) {
firstThreeButtons[pressedCount] = i;
pressedCount++;
}
@@ -137,7 +139,7 @@
break;
}
}
- pc.printf("Matched chord %d\n", matchIndex);
+ // pc.printf("Matched chord %d\n", matchIndex);
return matchIndex;
}
@@ -149,7 +151,9 @@
collectionTimer.reset();
int chordIndex = readChord();
if (chordIndex != -1) {
- playChord(chordIndex);
+ playChord(chordIndex);
+ int charAscii = chords[chordIndex][BUZZERS];
+ pc.printf("%c", charAscii);
}
}
wait_ms(10);
