
a MIDI-to-Morse code application.
Dependencies: MIDI REnc button mbed morse
Revision 9:09fc839da416, committed 2014-07-26
- Comitter:
- ChuckTimber
- Date:
- Sat Jul 26 22:49:43 2014 +0000
- Parent:
- 8:96f4614a46ba
- Child:
- 10:57bbdc516590
- Commit message:
- rotary encoder introduced
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/REnc.lib Sat Jul 26 22:49:43 2014 +0000 @@ -0,0 +1,1 @@ +REnc#c905f9e6866f
--- a/main.cpp Sat Jul 19 09:43:12 2014 +0000 +++ b/main.cpp Sat Jul 26 22:49:43 2014 +0000 @@ -1,18 +1,23 @@ #include "mbed.h" #include "button.h" +#include "REnc.h" #include "morse.h" #include "MIDI.h" +// alphabet 26-charactor + 1-space char* codes[] = { ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", " " }; + +// 10-number char* nums[] = { "-----", ".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----." }; +// 15-marks char* marks[] = { ".-.-.-", // '.' "--..--", // ',' "..--..", // '?' @@ -30,23 +35,27 @@ "........" // 'HH' }; -float rate[] = { 0.50000000, 0.50544464, 0.51094857, 0.51651244, 0.52213689, 0.52782259, 0.53357020, 0.53938040, - 0.54525387, 0.55119129, 0.55719337, 0.56326081, 0.56939432, 0.57559461, 0.58186243, 0.58819850, - 0.59460356, 0.60107837, 0.60762368, 0.61424027, 0.62092891, 0.62769038, 0.63452548, 0.64143501, - 0.64841978, 0.65548061, 0.66261832, 0.66983376, 0.67712777, 0.68450121, 0.69195494, 0.69948984, - 0.70710678, 0.71480667, 0.72259040, 0.73045890, 0.73841307, 0.74645386, 0.75458221, 0.76279908, - 0.77110541, 0.77950220, 0.78799042, 0.79657108, 0.80524517, 0.81401371, 0.82287774, 0.83183829, - 0.84089642, 0.85005318, 0.85930965, 0.86866692, 0.87812608, 0.88768825, 0.89735454, 0.90712609, - 0.91700404, 0.92698956, 0.93708382, 0.94728799, 0.95760328, 0.96803090, 0.97857206, 0.98922801 }; +// 6-hybrid +char* hybrid[] = { ".-...", // 'AS' + ".-.-.", // 'AR' + "-...-.-", // 'BK' + "-...-", // 'BT' + "-.--.", // 'KN' + "...-.-" // 'VA' + }; + void proc_NoteOn(byte channel, byte note, byte velocity); void proc_ControlChange(byte channel, byte number, byte value); +void proc_REnc_right(void); +void proc_REnc_left(void); BTN btn(dp13); Morse morse; MIDI midi(dp16, dp15); +REnc renc(dp1, dp2); int main() { @@ -59,6 +68,9 @@ midi.setHandleNoteOn(&proc_NoteOn); midi.setHandleControlChange(&proc_ControlChange); + + renc.setHandleRight(&proc_REnc_right); + renc.setHandleLeft(&proc_REnc_left); midi.begin(); wait(1.0); @@ -66,6 +78,15 @@ while(1) { midi.read(); +/* + if (renc.CMD == FORWARD) { + morse.incidx(); + renc.CMD = IDLE; + } else if (renc.CMD == BACKWARD) { + morse.decidx(); + renc.CMD = IDLE; + } +*/ if(btn.CMD) { mode++; btn.CMD = 0; @@ -77,8 +98,6 @@ morse.code(codes[value % 26]); } morse.code(codes[26]); - //} else { - // for (i = 0; i < 27; i++) morse.code(codes[i]); } } } @@ -92,14 +111,17 @@ void proc_ControlChange(byte channel, byte number, byte value) { - float ftmp; - - ftmp = 0.08; // default CW tick if (number == 16) { // General Purpose Controller 1 - if (value >= 64) { - morse.settick(ftmp * 2. * rate[value-64]); - } else { - morse.settick(ftmp * rate[value]); - } + morse.setidx(value); } -} \ No newline at end of file +} + +void proc_REnc_right(void) +{ + morse.incidx(); +} + +void proc_REnc_left(void) +{ + morse.decidx(); +}
--- a/morse.lib Sat Jul 19 09:43:12 2014 +0000 +++ b/morse.lib Sat Jul 26 22:49:43 2014 +0000 @@ -1,1 +1,1 @@ -morse#27c38e4d6e4e +morse#e377d081edea