O exemplo T-Display-S3-Piano transforma a LilyGO T-Display-S3 em um visualizador de piano ao vivo com rolagem de 25 teclas, detecção de acordes e exibição de informações MIDI em tempo real.
#include<ESP32_Host_MIDI.h>#include"src/GingoAdapter.h" // Detecção de acordes#include"ST7789_Handler.h"#include"mapping.h"// Tools > USB Mode → "USB Host"ST7789_Handlerdisplay;voidsetup(){Serial.begin(115200);display.begin();display.clear();MIDIHandlerConfigcfg;cfg.maxEvents=20;cfg.chordTimeWindow=50;midiHandler.begin(cfg);}voidloop(){midiHandler.task();// Atualizar display quando notas mudaremboolactive[128]={false};midiHandler.fillActiveNotes(active);display.updatePianoRoll(active);// Mostrar nome do acordecharchord[16]="";if(midiHandler.getActiveNotesCount()>0){GingoAdapter::identifyLastChord(midiHandler,chord,sizeof(chord));}display.showChord(chord);// Log de eventosfor(constauto&ev:midiHandler.getQueue()){display.addEvent(ev.noteOctave.c_str(),ev.channel,ev.velocity);}display.render();}