MIDIInstrumentPAD
Dependencies: mbed DISCO_F746NG_USBDevice
main.cpp
- Committer:
- 60010649
- Date:
- 2019-05-14
- Revision:
- 0:33a7ad2adf6c
File content as of revision 0:33a7ad2adf6c:
#include "mbed.h" #include "TS_DISCO_F746NG.h" #include "LCD_DISCO_F746NG.h" #include "USBMIDI.h" #define FastSpeedInterface 0 #define HighSpeedInterface 1 AnalogIn v(A0); LCD_DISCO_F746NG lcd; TS_DISCO_F746NG ts; Serial pc(USBTX, USBRX); USBMIDI midi(FastSpeedInterface); int a0=0; int Y1=60; int Yline1=131.66; int Yline2=201.33; int Ysize=70.66; int o=0; int k=12; int main() { top: int a,b,c=0; TS_StateTypeDef TS_State; lcd.SetFont(&Font24); lcd.Clear(LCD_COLOR_DARKGREEN); lcd.SetBackColor(LCD_COLOR_DARKGREEN); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"SELECT",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); ///Block1 lcd.FillRect(0,Y1,159,212); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.SetBackColor(LCD_COLOR_TRANSPARENT); lcd.DisplayStringAt(0, LINE(6), (uint8_t *)" DRUM",LEFT_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); //////Block2 lcd.FillRect(160,Y1,159,212); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"GUITAR",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); ///Block3 lcd.FillRect(320,Y1,159,212); lcd.SetBackColor(LCD_COLOR_TRANSPARENT); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"PIANO ",RIGHT_MODE); wait(1); while(1) { ts.GetState(&TS_State); if((TS_State.touchDetected)) { if(TS_State.touchX[0] >= 0&&TS_State.touchX[0]<160&&a==0&&b==0&&c==0) { lcd.Clear(LCD_COLOR_DARKGREEN); lcd.SetBackColor(LCD_COLOR_DARKGREEN); lcd.SetBackColor(LCD_COLOR_DARKGREEN); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"DRUM",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block1 lcd.FillRect(0,60,140,Ysize); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.DisplayStringAt(0, LINE(3), (uint8_t *)" Crash",LEFT_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); //////Block2 lcd.FillRect(140,60,140,Ysize); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.SetBackColor(LCD_COLOR_TRANSPARENT); lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"Tom1 ",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block3 lcd.FillRect(280,60,140,Ysize); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"Tom2 ",RIGHT_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); ///Block4 lcd.FillRect(0,Yline1,140,Ysize); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.SetBackColor(LCD_COLOR_BLACK); lcd.DisplayStringAt(0, LINE(6), (uint8_t *)" HHOpen",LEFT_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block5 lcd.FillRect(140,Yline1,140,Ysize); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"Snare ",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); ///Block6 lcd.FillRect(280,Yline1,140,Ysize); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.SetBackColor(LCD_COLOR_BLACK); lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"Tom3 ",RIGHT_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block7 lcd.FillRect(0,Yline2,140,Ysize); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.DisplayStringAt(0, LINE(9), (uint8_t *)" HHClose",LEFT_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); ///Block8 lcd.FillRect(140,Yline2,140,Ysize); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.SetBackColor(LCD_COLOR_BLACK); lcd.DisplayStringAt(0, LINE(9), (uint8_t *)"Kick ",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block9 lcd.FillRect(280,Yline2,140,Ysize); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.DisplayStringAt(0, LINE(9), (uint8_t *)"Clap ",RIGHT_MODE); lcd.SetTextColor(LCD_COLOR_BROWN); ///BlockLeftBackToMain lcd.FillRect(420,Y1,60,212); lcd.SetBackColor(LCD_COLOR_BROWN); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"B ",RIGHT_MODE); lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"A ",RIGHT_MODE); lcd.DisplayStringAt(0, LINE(7), (uint8_t *)"C ",RIGHT_MODE); lcd.DisplayStringAt(0, LINE(9), (uint8_t *)"K ",RIGHT_MODE); a=1; } else if(a==1&&b==0&&c==0&&TS_State.touchX[0] >= 0&&TS_State.touchX[0]<140&&TS_State.touchY[0] >= 60&&TS_State.touchY[0]<Yline1) { pc.printf("a"); midi.write(MIDIMessage::NoteOn(48)); wait_ms(50); midi.write(MIDIMessage::NoteOff(48)); } else if(a==1&&b==0&&c==0&&TS_State.touchX[0] >= 140&&TS_State.touchX[0]<280&&TS_State.touchY[0] >= Y1&&TS_State.touchY[0]<Yline1) { pc.printf("b"); midi.write(MIDIMessage::NoteOn(49)); wait_ms(50); midi.write(MIDIMessage::NoteOff(49)); } else if(a==1&&b==0&&c==0&&TS_State.touchX[0] >= 280&&TS_State.touchX[0]<420&&TS_State.touchY[0] >= Y1&&TS_State.touchY[0]<Yline1) { pc.printf("c"); midi.write(MIDIMessage::NoteOn(50)); wait_ms(50); midi.write(MIDIMessage::NoteOff(50)); } else if(a==1&&b==0&&c==0&&TS_State.touchX[0] >= 0&&TS_State.touchX[0]<140&&TS_State.touchY[0] >= Yline1&&TS_State.touchY[0]<Yline2) { pc.printf("d"); midi.write(MIDIMessage::NoteOn(51)); wait_ms(50); midi.write(MIDIMessage::NoteOff(51)); } else if(a==1&&b==0&&c==0&&TS_State.touchX[0] >= 140&&TS_State.touchX[0]<280&&TS_State.touchY[0] >= Yline1&&TS_State.touchY[0]<Yline2) { pc.printf("e"); midi.write(MIDIMessage::NoteOn(52)); wait_ms(50); midi.write(MIDIMessage::NoteOff(52)); } else if(a==1&&b==0&&c==0&&TS_State.touchX[0] >= 280&&TS_State.touchX[0]<420&&TS_State.touchY[0] >= Yline1&&TS_State.touchY[0]<Yline2) { pc.printf("f"); midi.write(MIDIMessage::NoteOn(53)); wait_ms(50); midi.write(MIDIMessage::NoteOff(53)); } else if(a==1&&b==0&&c==0&&TS_State.touchX[0] >= 0&&TS_State.touchX[0]<140&&TS_State.touchY[0] >= Yline2) { midi.write(MIDIMessage::NoteOn(54)); wait_ms(50); midi.write(MIDIMessage::NoteOff(54)); } else if(a==1&&b==0&&c==0&&TS_State.touchX[0] >= 140&&TS_State.touchX[0]<280&&TS_State.touchY[0] >= Yline2) { pc.printf("h"); midi.write(MIDIMessage::NoteOn(57)); wait_ms(50); midi.write(MIDIMessage::NoteOff(57)); } else if(a==1&&b==0&&c==0&&TS_State.touchX[0] >= 280&&TS_State.touchX[0]<420&&TS_State.touchY[0] >= Yline2) { pc.printf("i"); midi.write(MIDIMessage::NoteOn(56)); wait_ms(50); midi.write(MIDIMessage::NoteOff(56)); } else if(TS_State.touchX[0] >= 420&&TS_State.touchY[0] >60&&a==1&&b==0&&c==0) { a = 0; pc.printf("bye"); goto top; } else if(TS_State.touchX[0] >= 160&&TS_State.touchX[0]<320&&a==0&&b==0&&c==0) { lcd.Clear(LCD_COLOR_DARKGREEN); lcd.SetBackColor(LCD_COLOR_DARKGREEN); lcd.SetBackColor(LCD_COLOR_DARKGREEN); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"Oc ",RIGHT_MODE); lcd.SetTextColor(LCD_COLOR_BLUE); //////- lcd.FillRect(320,0,40,60); lcd.SetTextColor(LCD_COLOR_WHITE); //////- lcd.FillRect(320,20,40,10); lcd.SetTextColor(LCD_COLOR_BLUE); //////+ lcd.FillRect(440,0,40,60); lcd.SetTextColor(LCD_COLOR_WHITE); //////- lcd.FillRect(440,20,40,20); lcd.FillRect(455,0,10,60); lcd.SetBackColor(LCD_COLOR_DARKGREEN); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"GUITAR",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); //////Block2 lcd.FillRect(105,60,105,70.667); lcd.SetBackColor(LCD_COLOR_BLACK); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"C# ",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block6 lcd.FillRect(105,130.66,105,70.667); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"F ",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); ///Block10 lcd.FillRect(105,201.32,105,70.667); lcd.SetBackColor(LCD_COLOR_BLACK); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(9), (uint8_t *)"A ",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block3 lcd.FillRect(210,60,105,70.667); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.DisplayStringAt(0, LINE(3), (uint8_t *)" D",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); ///Block7 lcd.FillRect(210,130.66,105,70.667); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.SetBackColor(LCD_COLOR_BLACK); lcd.DisplayStringAt(0, LINE(6), (uint8_t *)" F#",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block11 lcd.FillRect(210,201.32,105,70.667); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.DisplayStringAt(0, LINE(9), (uint8_t *)" Bb",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); ///Block4 lcd.FillRect(315,60,105,70.667); lcd.SetBackColor(LCD_COLOR_BLACK); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"D# ",RIGHT_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block8 lcd.FillRect(315,130.66,105,70.667); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"G ",RIGHT_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); ///Block12 lcd.FillRect(315,201.32,105,70.66); lcd.SetBackColor(LCD_COLOR_BLACK); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(9), (uint8_t *)"B ",RIGHT_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block1 lcd.FillRect(0,60,105,70.667); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.DisplayStringAt(0, LINE(3), (uint8_t *)" C",LEFT_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); ///Block5 lcd.FillRect(0,130.66,105,70.667); lcd.SetBackColor(LCD_COLOR_BLACK); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(6), (uint8_t *)" E",LEFT_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block9 lcd.FillRect(0,201.32,105,70.667); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.DisplayStringAt(0, LINE(9), (uint8_t *)" G#",LEFT_MODE); lcd.SetTextColor(LCD_COLOR_BROWN); ///BlockLeftBackToMain lcd.FillRect(420,Y1,60,212); lcd.SetBackColor(LCD_COLOR_BROWN); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"B ",RIGHT_MODE); lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"A ",RIGHT_MODE); lcd.DisplayStringAt(0, LINE(7), (uint8_t *)"C ",RIGHT_MODE); lcd.DisplayStringAt(0, LINE(9), (uint8_t *)"K ",RIGHT_MODE); b=1; midi.write(MIDIMessage::NoteOn(100)); wait_ms(50); midi.write(MIDIMessage::NoteOff(100)); } else if(a==0&&b==1&&c==0&&TS_State.touchX[0] >= 440&&TS_State.touchX[0]<480&&TS_State.touchY[0] >= 0&&TS_State.touchY[0] < 60) { o=o+1; } else if(a==0&&b==1&&c==0&&TS_State.touchX[0] >= 320&&TS_State.touchX[0]<360&&TS_State.touchY[0] >= 0&&TS_State.touchY[0] < 60) { o=o-1; } else if(a==0&&b==1&&c==0&&TS_State.touchX[0] >= 0&&TS_State.touchX[0]<105&&TS_State.touchY[0] >= 60&&TS_State.touchY[0] < 130.667) { pc.printf("1"); midi.write(MIDIMessage::NoteOn(60+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(60+(k*o))); } else if(a==0&&b==1&&c==0&&TS_State.touchX[0] >= 105&&TS_State.touchX[0]<210&&TS_State.touchY[0] >= 60&&TS_State.touchY[0] < 130.667) { pc.printf("2"); midi.write(MIDIMessage::NoteOn(61+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(61+(k*o))); } else if(a==0&&b==1&&c==0&&TS_State.touchX[0] >= 210&&TS_State.touchX[0]<315&&TS_State.touchY[0] >= 60&&TS_State.touchY[0] < 130.667) { pc.printf("3"); midi.write(MIDIMessage::NoteOn(62+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(62+(k*o))); } else if(a==0&&b==1&&c==0&&TS_State.touchX[0] >= 315&&TS_State.touchX[0]<420&&TS_State.touchY[0] >= 60&&TS_State.touchY[0] < 130.667) { pc.printf("4"); midi.write(MIDIMessage::NoteOn(63+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(63+(k*o))); } else if(a==0&&b==1&&c==0&&TS_State.touchX[0] >= 0&&TS_State.touchX[0]<105&&TS_State.touchY[0] >= 130.667 &&TS_State.touchY[0]<201.33) { pc.printf("5"); midi.write(MIDIMessage::NoteOn(64+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(64+(k*o))); } else if(a==0&&b==1&&c==0&&TS_State.touchX[0] >= 105&&TS_State.touchX[0]<210&&TS_State.touchY[0] >= 130.66 &&TS_State.touchY[0]<201.34) { pc.printf("6"); midi.write(MIDIMessage::NoteOn(65+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(65+(k*o))); } else if(a==0&&b==1&&c==0&&TS_State.touchX[0] >= 210&&TS_State.touchX[0]<315&&TS_State.touchY[0] >= 130.667 &&TS_State.touchY[0]<201.34) { pc.printf("7"); midi.write(MIDIMessage::NoteOn(66+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(66+(k*o))); } else if(a==0&&b==1&&c==0&&TS_State.touchX[0] >= 315&&TS_State.touchX[0]<420&&TS_State.touchY[0] >= 130.667 &&TS_State.touchY[0]<201.34) { pc.printf("8"); midi.write(MIDIMessage::NoteOn(67+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(67+(k*o))); } else if(a==0&&b==1&&c==0&&TS_State.touchX[0] >= 0&&TS_State.touchX[0]<105&&TS_State.touchY[0] >=201.34) { pc.printf("9"); midi.write(MIDIMessage::NoteOn(68+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(68+(k*o))); } else if(a==0&&b==1&&c==0&&TS_State.touchX[0] >= 105&&TS_State.touchX[0]<210&&TS_State.touchY[0] >=201.34) { pc.printf("10"); midi.write(MIDIMessage::NoteOn(69+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(69+(k*o))); } else if(a==0&&b==1&&c==0&&TS_State.touchX[0] >= 210&&TS_State.touchX[0]<315&&TS_State.touchY[0] >=201.34) { pc.printf("11"); midi.write(MIDIMessage::NoteOn(70+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(70+(k*o))); } else if(a==0&&b==1&&c==0&&TS_State.touchX[0] >= 315&&TS_State.touchX[0]<420&&TS_State.touchY[0] >=201.34) { pc.printf("12"); midi.write(MIDIMessage::NoteOn(71+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(71+(k*o))); } else if(TS_State.touchX[0] >= 420&&TS_State.touchY[0] >=60&&a==0&&b==1&&c==0) { b = 0; pc.printf("bye2"); midi.write(MIDIMessage::NoteOn(101)); wait_ms(50); midi.write(MIDIMessage::NoteOff(101)); goto top; } else if(TS_State.touchX[0] >= 320&&a==0&&b==0&&c==0) { lcd.Clear(LCD_COLOR_DARKGREEN); lcd.SetBackColor(LCD_COLOR_DARKGREEN); lcd.SetBackColor(LCD_COLOR_DARKGREEN); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"Oc ",RIGHT_MODE); lcd.SetTextColor(LCD_COLOR_BLUE); //////- lcd.FillRect(320,0,40,60); lcd.SetTextColor(LCD_COLOR_WHITE); //////- lcd.FillRect(320,20,40,10); lcd.SetTextColor(LCD_COLOR_BLUE); //////+ lcd.FillRect(440,0,40,60); lcd.SetTextColor(LCD_COLOR_WHITE); //////- lcd.FillRect(440,20,40,20); lcd.FillRect(455,0,10,60); lcd.SetBackColor(LCD_COLOR_DARKGREEN); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"PIANO",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); //////Block2 lcd.FillRect(105,60,105,70.667); lcd.SetBackColor(LCD_COLOR_BLACK); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"C# ",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block6 lcd.FillRect(105,130.66,105,70.667); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"F ",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); ///Block10 lcd.FillRect(105,201.32,105,70.667); lcd.SetBackColor(LCD_COLOR_BLACK); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(9), (uint8_t *)"A ",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block3 lcd.FillRect(210,60,105,70.667); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.DisplayStringAt(0, LINE(3), (uint8_t *)" D",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); ///Block7 lcd.FillRect(210,130.66,105,70.667); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.SetBackColor(LCD_COLOR_BLACK); lcd.DisplayStringAt(0, LINE(6), (uint8_t *)" F#",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block11 lcd.FillRect(210,201.32,105,70.667); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.DisplayStringAt(0, LINE(9), (uint8_t *)" Bb",CENTER_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); ///Block4 lcd.FillRect(315,60,105,70.667); lcd.SetBackColor(LCD_COLOR_BLACK); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"D# ",RIGHT_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block8 lcd.FillRect(315,130.66,105,70.667); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"G ",RIGHT_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); ///Block12 lcd.FillRect(315,201.32,105,70.66); lcd.SetBackColor(LCD_COLOR_BLACK); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(9), (uint8_t *)"B ",RIGHT_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block1 lcd.FillRect(0,60,105,70.667); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.DisplayStringAt(0, LINE(3), (uint8_t *)" C",LEFT_MODE); lcd.SetTextColor(LCD_COLOR_BLACK); ///Block5 lcd.FillRect(0,130.66,105,70.667); lcd.SetBackColor(LCD_COLOR_BLACK); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(6), (uint8_t *)" E",LEFT_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); ///Block9 lcd.FillRect(0,201.32,105,70.667); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.DisplayStringAt(0, LINE(9), (uint8_t *)" G#",LEFT_MODE); lcd.SetTextColor(LCD_COLOR_BROWN); ///BlockLeftBackToMain lcd.FillRect(420,Y1,60,212); lcd.SetBackColor(LCD_COLOR_BROWN); lcd.SetTextColor(LCD_COLOR_LIGHTYELLOW); lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"B ",RIGHT_MODE); lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"A ",RIGHT_MODE); lcd.DisplayStringAt(0, LINE(7), (uint8_t *)"C ",RIGHT_MODE); lcd.DisplayStringAt(0, LINE(9), (uint8_t *)"K ",RIGHT_MODE); c=1; midi.write(MIDIMessage::NoteOn(102)); wait_ms(50); midi.write(MIDIMessage::NoteOff(102)); } else if(a==0&&b==0&&c==1&&TS_State.touchX[0] >= 440&&TS_State.touchX[0]<480&&TS_State.touchY[0] >= 0&&TS_State.touchY[0] < 60) { o=o+1; } else if(a==0&&b==0&&c==1&&TS_State.touchX[0] >= 320&&TS_State.touchX[0]<360&&TS_State.touchY[0] >= 0&&TS_State.touchY[0] < 60) { o=o-1; } else if(a==0&&b==0&&c==1&&TS_State.touchX[0] >= 0&&TS_State.touchX[0]<105&&TS_State.touchY[0] >= 60&&TS_State.touchY[0] < 130.667) { pc.printf("0"); midi.write(MIDIMessage::NoteOn(60+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(60+(k*o))); } else if(a==0&&b==0&&c==1&&TS_State.touchX[0] >= 105&&TS_State.touchX[0]<210&&TS_State.touchY[0] >= 60&&TS_State.touchY[0] < 130.667) { pc.printf("k"); midi.write(MIDIMessage::NoteOn(61+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(61+(k*o))); } else if(a==0&&b==0&&c==1&&TS_State.touchX[0] >= 210&&TS_State.touchX[0]<315&&TS_State.touchY[0] >= 60&&TS_State.touchY[0] < 130.667) { pc.printf("d"); midi.write(MIDIMessage::NoteOn(62+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(62+(k*o))); } else if(a==0&&b==0&&c==1&&TS_State.touchX[0] >= 315&&TS_State.touchX[0]<420&&TS_State.touchY[0] >= 60&&TS_State.touchY[0] < 130.667) { pc.printf("n"); midi.write(MIDIMessage::NoteOn(63+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(63+(k*o))); } else if(a==0&&b==0&&c==1&&TS_State.touchX[0] >= 0&&TS_State.touchX[0]<105&&TS_State.touchY[0] >= 130.667 &&TS_State.touchY[0]<201.34) { pc.printf("z"); midi.write(MIDIMessage::NoteOn(64+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(64+(k*o))); } else if(a==0&&b==0&&c==1&&TS_State.touchX[0] >= 105&&TS_State.touchX[0]<210&&TS_State.touchY[0] >= 130.667 &&TS_State.touchY[0]<201.34) { pc.printf("x"); midi.write(MIDIMessage::NoteOn(65+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(65+(k*o))); } else if(a==0&&b==0&&c==1&&TS_State.touchX[0] >= 210&&TS_State.touchX[0]<315&&TS_State.touchY[0] >= 130.667 &&TS_State.touchY[0]<201.34) { pc.printf("y"); midi.write(MIDIMessage::NoteOn(66+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(66+(k*o))); } else if(a==0&&b==0&&c==1&&TS_State.touchX[0] >= 315&&TS_State.touchX[0]<420&&TS_State.touchY[0] >= 130.667 &&TS_State.touchY[0]<201.34) { pc.printf("s"); midi.write(MIDIMessage::NoteOn(67+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(67+(k*o))); } else if(a==0&&b==0&&c==1&&TS_State.touchX[0] >= 0&&TS_State.touchX[0]<105&&TS_State.touchY[0] >=201.34) { pc.printf("U"); midi.write(MIDIMessage::NoteOn(68+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(68+(k*o))); } else if(a==0&&b==0&&c==1&&TS_State.touchX[0] >= 105&&TS_State.touchX[0]<210&&TS_State.touchY[0] >=201.34) { pc.printf("N0"); midi.write(MIDIMessage::NoteOn(69+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(69+(k*o))); } else if(a==0&&b==0&&c==1&&TS_State.touchX[0] >= 210&&TS_State.touchX[0]<315&&TS_State.touchY[0] >=201.34) { pc.printf("N1"); midi.write(MIDIMessage::NoteOn(70+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(70+(k*o))); } else if(a==0&&b==0&&c==1&&TS_State.touchX[0] >= 315&&TS_State.touchX[0]<420&&TS_State.touchY[0] >=201.34) { pc.printf("N2"); midi.write(MIDIMessage::NoteOn(71+(k*o))); wait_ms(150); midi.write(MIDIMessage::NoteOff(71+(k*o))); } else if(TS_State.touchX[0] >= 420&&TS_State.touchY[0] >=60&&a==0&&b==0&&c==1) { c = 0; pc.printf("bye3"); midi.write(MIDIMessage::NoteOn(101)); wait_ms(50); midi.write(MIDIMessage::NoteOff(101)); goto top; } } a0=v.read()*127; midi.write(MIDIMessage::ControlChange(1,a0)); wait_ms(50); } }