Suzu Tomo / Mbed OS 2020_ChristmasLED

Dependencies:   WS2812B_SPI

Revision:
1:1de917dde4ed
Parent:
0:943dfa56009a
--- a/midi.h	Sat Nov 07 13:40:03 2020 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,175 +0,0 @@
-#include "AsyncSerial.h"
-
-#include <vector>
-#include <string>
-
-
-AsyncSerial ms(PA_0,PA_1,31250,500);
-//RawSerial ms(PA_0,PA_1,31250);
-
-DigitalOut clockLed_(D10);
-DigitalOut RhythmLED(D11);
-DigitalOut active(D12);
-
-volatile bool doRhythm = false;
-
-volatile int memory = 0;
-
-volatile int barClock = 0;
-volatile int beat = 4;
-
-
-const string notesName[12] = {"C ","C#","D ","D#","E ","F ","F#","G ","G#","A ","A#","B "};
-
-std::vector<char> dataByte;
-
-void MidiTh()
-{
-    if(ms.readable()) {
-        int data = ms.read();
-
-// RealTime Message ------------------------------------------------------------
-        if (data == 0xF8) { // Clock
-            barClock++;
-            if (barClock % (24 * beat) == 13) clockLed_ = 0;
-
-        } else if (data == 0xFA) { // RhythmStart
-            clockLed_ = RhythmLED = doRhythm = 1;
-            barClock =  0;
-
-        } else if (data == 0xFC) { // RhythmStop
-            RhythmLED = doRhythm = 0;
-            
-        } else if (data >= 0xF8) {
-
-// Channel Message -------------------------------------------------------------
-        } else {
-            //printf("\n\r%d..",data);
-            if (data >= 0x80 && data != 0xF7) {
-                dataByte.clear();
-                dataByte.push_back(data);
-
-            } else {
-                if ((dataByte[0] & 0xF0) == 0x90) { // NoteOFF
-                    dataByte.push_back(data);
-
-                    if (dataByte.size() == 3) {
-                        string nName = notesName[dataByte[1] % 12];
-                        int nOctave = ((int)(dataByte[1] / 12) - 2);
-
-                        //printf("%2dch Note ",(dataByte[0] & 0x0F) + 1);
-                        //if (dataByte[2] == 0) printf("OFF : %s%d\r\n",nName.c_str(),nOctave);
-                        //else printf(" ON : %s%d , Velocity : %3d\r\n",nName.c_str(),nOctave,dataByte[2]);
-                        dataByte.erase(dataByte.begin() + 1,dataByte.end());
-                        //isStatusByte = false;
-
-                        /*if (velocity == 0x00) {
-                        if (ch == 1) {
-                            LEDlight_uk[Key % 12] = false;
-                            flag_uk = true;
-                        } else if (ch == 2) {
-                            LEDlight_lk[Key % 12] = false;
-                            flag_lk = true;
-                        } else if (ch == 3) {
-                            LEDlight_pk[Key % 12] = false;
-                            flag_pk = true;
-                        }
-                        LEDwrite();
-                        } else {
-                            printf("%dch Note ON : %d InitialTouch : %d\n\r",ch,key,velocity);
-                            if (ch == 1) LEDlight_uk[Key % 12] = flag_uk = true;
-                            else if (ch == 2) LEDlight_lk[Key % 12] = flag_lk = true;
-                            else if (ch == 3) LEDlight_pk[Key % 12] = flag_pk = true;
-                            LEDw*/
-                    }
-                } else if ((dataByte[0] & 0xF0) == 0xB0) { // ExpressionPedal & VA AfterTouch
-                    dataByte.push_back(data);
-
-                    if (dataByte.size() == 3) {
-                        //printf("%2dch ",(dataByte[0] & 0x0F) + 1);
-                        if (dataByte[1] == 0x04) ;//printf("SecondExpression : %3d\r\n",dataByte[2] - (0x7F >> 1));
-                        else if (dataByte[1] == 0x0B) {
-                            //printf("Expression : %3d\r\n",dataByte[2]);
-                            if (doRhythm) {
-                                //uk.setII(dataByte[2]);
-                                //uk.write();
-                            }
-                        } else if (dataByte[1] == 0x10) ;//printf("VA AfterTouch : %3d\r\n",dataByte[2]);
-                        dataByte.erase(dataByte.begin() + 1,dataByte.end());
-                    }
-
-                } else if ((dataByte[0] & 0xF0) == 0xC0) { // Memory
-                    dataByte.push_back(data);
-                    memory = dataByte[1] + 1;
-                    //printf("Memory : %2d\r\n",memory);
-                    dataByte.erase(dataByte.begin() + 1,dataByte.end());
-
-                } else if ((dataByte[0] & 0xF0) == 0xD0) { // AfterTouch
-                    dataByte.push_back(data);
-
-                    //printf("%2dch ",(dataByte[0] & 0x0F) + 1);
-                    //printf("AfterTouch : %3d\r\n",dataByte[1]);
-                    dataByte.erase(dataByte.begin() + 1,dataByte.end());
-
-                } else if ((dataByte[0] & 0xF0) == 0xE0) { // PitchBend
-                    dataByte.push_back(data);
-
-                    if (dataByte.size() == 3) {
-                        //printf("%2dch ",(dataByte[0] & 0x0F) + 1);
-                        //printf("PitchBend : %5d\r\n",(dataByte[1] | (dataByte[2] << 7)) - 0x1FFF);
-                        dataByte.erase(dataByte.begin() + 1,dataByte.end());
-                    }
-// Exclusive Message -----------------------------------------------------------
-                } else if (dataByte[0] == 0xF0) {
-                    dataByte.push_back(data);
-                    if (data == 0xF7) {
-                        if (dataByte[1] == 0x43) {
-                            if (dataByte[2] == 0x70) {
-                                if (dataByte[3] == 0x53) printf("Model : ELS-02(Electone STAGEA 02Series Standerd)\r\n");
-                                else if (dataByte[3] == 0x54) printf("Model : ELS-02C(Electone STAGEA 02Series Custom)\r\n");
-                                else if (dataByte[3] == 0x55) printf("Model : ELS-02X(Electone STAGEA 02Series Professional)\r\n");
-                                else if (dataByte[3] == 0x70) {
-                                    if (dataByte[4] == 0x78) { // Per signal
-                                        static int clock_m = 0;
-                                        if (barClock - clock_m < 0) clock_m = 0;
-                                        beat = (barClock - clock_m) / 24;
-                                        clock_m = barClock;
-                                        clockLed_ = 1;
-                                        //printf("C %d\r\n",clock_);
-                                        //clock_ = 0;
-                                        //if (doRhythm) count = 0;
-                                    }
-                                }
-                            }
-                        }
-                        dataByte.erase(dataByte.begin() + 1,dataByte.end());
-                    }
-
-                } else { // Other
-                    printf("able %d\r\n", ms.read());
-                }
-
-            }
-        }
-    }
-}
-
-void ModelReq()
-{
-    //F0, 43, 70, 70, 30, F7
-    uint8_t sd[6] = {0xF0,0x43,0x70,0x70,0x30,0xF7};
-    ms.write(sd,6);
-
-}
-
-void Start()
-{
-    ms.write(0xFA);
-}
-
-void MDRStart()
-{
-    uint8_t sd[7] = {0xF0,0x43,0x70,0x70,0x70,0x01,0xF7};
-    ms.write(sd,7);
-
-}
\ No newline at end of file