Porta seriale/midi

Salve a tutti. Sono alle prese con un progetto di un midi controller. Per farlo mi servo di una schedina ESP8266, molto pratica viste le ridotte dimensioni e la comodità di sfruttare la wifi direct generata per potermi interfacciare con una applicazione android per cambiare i settaggi dei controlli. Il progetto funziona molto bene ma purtroppo per poter sfruttare la comunicazione di cui bisogno devo avvalermi dei sofware loopMIDI che genera un'interfaccia midi virtuale all'interno del pc e di Hairless MIDI che non è altro che un ponte che connette la porta seriale di Arduino con la porta midi virtuale creata precedentemente. La mia domanda è la seguente; Esiste un modo per rendere questo controller midi artigianale "plug&play" ovvero senza la necessità di utilizzare i due software aggiuntivi? di creare una porta midi virtuale e di collegare la seriale a questa ? Non farlo non è possibile è ovvio ma magari poterlo fare da codice?
Informo inoltre che mi sto interfacciando al pc utilizzando la porta usb della schedina, per caso se io utilizzassi un connettore femmina usb tipo B (quella quadrata a 4 pin) sfruttando la rx della scheda potrei attraverso una libreria usb/midi fare a meno di hairless midi e rendere Arduino sufficiente per farsi vedere come una porta midi?

Sperodi essermi spiegato, nella speranza che qualcuno possa darmi una dritta o un consiglio vi posto il codice attuale.

Grazie.

//MIDICONTROL_V1.0
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <MIDI.h>
#include <midi_Defs.h>
#include <midi_Message.h>
#include <midi_Namespace.h>
#include <midi_RingBuffer.h>
#include <midi_Settings.h>
#include <midi_UsbDefs.h>
//#include <midi_UsbTransport.h>


const int buttonOne = 9; // assegna il pulsante al pin 
const int buttonTwo = 4; // assegna il pulsante al pin 
const int buttonThree = 0; // assegna il pulsante al pin 
const int buttonFour = 12; // assegna il pulsante al pin 



MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // pongo l'uscita come segnale MIDI

void setup() {
  
  pinMode(buttonOne,INPUT); // setto il pulsante come ingresso
  pinMode(buttonTwo,INPUT); // setto il pulsante come ingresso
  pinMode(buttonThree,INPUT); // setto il pulsante come ingresso
  pinMode(buttonFour,INPUT); // setto il pulsante come ingresso

  Serial.begin(115200); // seriale di comunicazione MIDI
}

void loop() {
 
  if(digitalRead(buttonOne) == HIGH) { // check button state
    delay(10); // software de-bounce
    if(digitalRead(buttonOne) == HIGH) { // check button state again
      midiOut.sendControlChange(21,127,8); // send a MIDI CC -- 21 = note, 127 = velocity, 8 = channel
      delay(250); 
    }
  }

  if(digitalRead(buttonTwo) == HIGH) { // check button state
    delay(10); // software de-bounce
    if(digitalRead(buttonTwo) == HIGH) { // check button state again
      midiOut.sendControlChange(22,127,8); // send a MIDI CC -- 22 = note, 127 = velocity, 8 = channel
      delay(250); 
    }
  }

  if(digitalRead(buttonThree) == HIGH) { // check button state
    delay(10); // software de-bounce
    if(digitalRead(buttonThree) == HIGH) { // check button state again
      midiOut.sendControlChange(23,127,8); // send a MIDI CC -- 23 = note, 127 = velocity, 8 = channel
      delay(250); 
    }
  }

  if(digitalRead(buttonFour) == HIGH) { // check button state
    delay(10); // software de-bounce
    if(digitalRead(buttonFour) == HIGH) { // check button state again
      midiOut.sendControlChange(24,127,8); // send a MIDI CC -- 24 = note, 127 = velocity, 8 = channel
      delay(250); 
    }
  }



    }

>almax85: ti rammento che, da regolamento, è permesso sollecitare risposte (fare "up") solo dopo almeno 48/72 ore dall'ultimo post. Grazie.

Guglielmo

Chiedo scusa.. ignoravo questo. Mancanza mia.. perdono! :-[