Microprocessor and embedded system 2/2018 project

Dependencies:   mbed BSP_DISCO_F746NG DISCO_F746NG_USBDevice

Revision:
0:2256ced8af52
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat May 11 04:49:19 2019 +0000
@@ -0,0 +1,859 @@
+#include "mbed.h"
+#include "LCD_DISCO_F746NG.h"
+#include "USBMIDI.h"
+
+#define FastSpeedInterface 0
+#define HighSpeedInterface 1
+
+Serial pc(USBTX, USBRX);
+LCD_DISCO_F746NG lcd;
+
+USBMIDI midi(FastSpeedInterface);
+AnalogIn Ain(A0);
+
+int main()
+{
+    char ch;
+    pc.baud(9600);
+    pc.format(8, SerialBase::None, 1); //default
+    pc.printf("\n\r"); //Newline
+    pc.printf("This is Keyboard to the Keyboard"); //Transmit a string
+    pc.printf("\n\r"); 
+    pc.printf("By Tar, Gift, Tarn"); 
+    pc.printf("\n\r"); 
+    pc.printf("LCD will shows sign that you press on the key board"); 
+    pc.printf("\n\r");
+    pc.printf("Color LIGHTBLUE is for Octave 1,"); 
+    pc.printf("\n\r"); 
+    pc.printf("Color LIGHTRED is for Octave 2,"); 
+    pc.printf("\n\r"); 
+    pc.printf("Color LIGHTMAGENTE is for Octave 3,"); 
+    pc.printf("\n\r"); 
+    pc.printf("Color LIGHTGREEN is for Octave 4,"); 
+    pc.printf("\n\r"); 
+    pc.printf("Color ORANGE is for Octave 5,"); 
+    pc.printf("\n\r"); 
+    pc.printf("AND Color YELLOW is for Octave 6"); 
+    pc.printf("\n\r"); 
+    pc.printf("ENJOY :)"); 
+    pc.printf("\n\r"); 
+    while(1)
+    {
+        char str1[1];
+        int i;
+        lcd.Clear(LCD_COLOR_BLACK);
+        lcd.SetBackColor(LCD_COLOR_BLACK);
+        lcd.SetTextColor(LCD_COLOR_WHITE);
+        
+        ch = pc.getc();
+        pc.putc(ch);
+        sprintf(str1,"%c",ch);
+        lcd.DisplayStringAt(0, LINE(2), (uint8_t *) str1, CENTER_MODE);
+        
+       //firstblock without shift
+        if(ch=='s')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTBLUE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKBLUE); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"C 1", CENTER_MODE);
+            i=24;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='c')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTBLUE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKBLUE); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Db 1", CENTER_MODE);
+            i=25;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='d')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTBLUE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKBLUE); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"D 1", CENTER_MODE);
+            i=26;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='3')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTBLUE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKBLUE); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Eb 1", CENTER_MODE);
+            i=27;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='e')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTBLUE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKBLUE); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"E 1", CENTER_MODE);
+            i=28;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='w')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTBLUE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKBLUE); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"F 1", CENTER_MODE);
+            i=29;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='2')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTBLUE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKBLUE); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"F# 1", CENTER_MODE);
+            i=30;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='q')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTBLUE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKBLUE); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"G 1", CENTER_MODE);
+            i=31;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='1')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTBLUE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKBLUE); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"G# 1", CENTER_MODE);
+            i=32;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='a')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTBLUE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKBLUE); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"A 1", CENTER_MODE);
+            i=33;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='z')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTBLUE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKBLUE); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Bb 1", CENTER_MODE);
+            i=34;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='x')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTBLUE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKBLUE); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"B 1", CENTER_MODE);
+            i=35;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        
+        //firstblock with shift
+        if(ch=='S')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTGREEN); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKGREEN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"C 4", CENTER_MODE);
+            i=60;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='C')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTGREEN); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKGREEN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Db 4", CENTER_MODE);
+            i=61;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='D')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTGREEN); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKGREEN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"D 4", CENTER_MODE);
+            i=62;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='#')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTGREEN); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKGREEN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Eb 4", CENTER_MODE);
+            i=63;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='E')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTGREEN); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKGREEN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"E 4", CENTER_MODE);
+            i=64;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='W')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTGREEN); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKGREEN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"F 4", CENTER_MODE);
+            i=65;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='@')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTGREEN); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKGREEN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"F# 4", CENTER_MODE);
+            i=66;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='Q')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTGREEN); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_WHITE); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"G 4", CENTER_MODE);
+            i=67;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='!')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTGREEN); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKGREEN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"G# 4", CENTER_MODE);
+            i=68;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='A')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTGREEN); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKGREEN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"A 4", CENTER_MODE);
+            i=69;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='Z')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTGREEN); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKGREEN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Bb 4", CENTER_MODE);
+            i=70;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='X')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTGREEN); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKGREEN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"B 4", CENTER_MODE);
+            i=71;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        
+        //second block without shift
+        if(ch=='g')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTRED); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKRED); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"C 2", CENTER_MODE);
+            i=36;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='n')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTRED); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKRED); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Db 2", CENTER_MODE);
+            i=37;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='h')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTRED); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKRED); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"D 2", CENTER_MODE);
+            i=38;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='6')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTRED); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKRED); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Eb 2", CENTER_MODE);
+            i=39;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='y')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTRED); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKRED); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"E 2", CENTER_MODE);
+            i=40;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='t')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTRED); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKRED); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"F 2", CENTER_MODE);
+            i=41;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='5')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTRED); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKRED); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"F# 2", CENTER_MODE);
+            i=42;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='r')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTRED); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKRED); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"G 2", CENTER_MODE);
+            i=43;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='4')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTRED); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKRED); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"G# 2", CENTER_MODE);
+            i=44;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='f')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTRED); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKRED); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"A 2", CENTER_MODE);
+            i=45;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='v')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTRED); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKRED); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Bb 2", CENTER_MODE);
+            i=46;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='b')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTRED); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKRED); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"B 2", CENTER_MODE);
+            i=47;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        
+        //secondblock with shift
+        if(ch=='G')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_ORANGE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_BROWN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"C 5", CENTER_MODE);
+            i=72;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='N')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_ORANGE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_BROWN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Db 5", CENTER_MODE);
+            i=73;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='H')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_ORANGE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_BROWN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"D 5", CENTER_MODE);
+            i=74;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='^')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_ORANGE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_BROWN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Eb 5", CENTER_MODE);
+            i=75;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='Y')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_ORANGE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_BROWN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"E 5", CENTER_MODE);
+            i=76;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='T')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_ORANGE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_BROWN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"F 5", CENTER_MODE);
+            i=77;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='%')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_ORANGE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_BROWN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"F# 5", CENTER_MODE);
+            i=78;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='R')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_ORANGE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_BROWN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"G 5", CENTER_MODE);
+            i=79;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='$')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_ORANGE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_BROWN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"G# 5", CENTER_MODE);
+            i=80;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='F')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_ORANGE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_BROWN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"A 5", CENTER_MODE);
+            i=81;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='V')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_ORANGE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_BROWN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Bb 5", CENTER_MODE);
+            i=82;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='B')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_ORANGE); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_BROWN); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"B 5", CENTER_MODE);
+            i=83;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        
+        //thirdblock without shift
+        if(ch=='k')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"C 3", CENTER_MODE);
+            i=48;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='.')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Db 3", CENTER_MODE);
+            i=49;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='l')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"D 3", CENTER_MODE);
+            i=50;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='9')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Eb 3", CENTER_MODE);
+            i=51;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='o')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"E 3", CENTER_MODE);
+            i=52;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='i')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"F 3", CENTER_MODE);
+            i=53;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='8')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"F# 3", CENTER_MODE);
+            i=54;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='u')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"G 3", CENTER_MODE);
+            i=55;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='7')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"G# 3", CENTER_MODE);
+            i=56;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='j')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"A 3", CENTER_MODE);
+            i=57;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='m')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Bb 3", CENTER_MODE);
+            i=58;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch==',')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"B 3", CENTER_MODE);
+            i=59;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        
+        //thirdblock with shift
+        if(ch=='K')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTYELLOW); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKYELLOW); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"C 6", CENTER_MODE);
+            i=84;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='>')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTYELLOW); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKYELLOW); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Db 6", CENTER_MODE);
+            i=85;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='L')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTYELLOW); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKYELLOW); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"D 6", CENTER_MODE);
+            i=86;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='(')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTYELLOW); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKYELLOW); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Eb 6", CENTER_MODE);
+            i=87;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='O')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTYELLOW); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKYELLOW); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"E 6", CENTER_MODE);
+            i=88;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='I')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTYELLOW); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKYELLOW); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"F 6", CENTER_MODE);
+            i=89;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='*')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTYELLOW); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKYELLOW); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"F# 6", CENTER_MODE);
+            i=90;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='U')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTYELLOW); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKYELLOW); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"G 6", CENTER_MODE);
+            i=91;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='&')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTYELLOW); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKYELLOW); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"G# 6", CENTER_MODE);
+            i=92;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='J')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTYELLOW); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKYELLOW); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"A 6", CENTER_MODE);
+            i=93;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='M')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTYELLOW); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKYELLOW); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"Bb 6", CENTER_MODE);
+            i=94;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+        if(ch=='<')
+        {
+            lcd.SetFont(&Font16);       //set font size
+            lcd.SetBackColor(LCD_COLOR_LIGHTYELLOW); //Set bg color
+            lcd.SetTextColor(LCD_COLOR_DARKYELLOW); //Set char color
+            lcd.DisplayStringAt(0,LINE(6),(uint8_t *)"B 6", CENTER_MODE);
+            i=95;
+            midi.write(MIDIMessage::NoteOn(i));
+            wait(0.3);
+            midi.write(MIDIMessage::NoteOff(i));
+        }
+    }    
+}
+
+        
\ No newline at end of file