Go Down

Topic: Problema con Midi Library: non ricevo messaggi dal PC (Read 188 times) previous topic - next topic

Gabryx

Ciao a tutti, ho fatto 2 tentativi di diversa interfaccia utilizzando il classico 6N138, sia con 74ls14 oppure senza , tipo quello che metto in attachment, Arduino Uno con seriale modificata utilizzando Flip, provato sia con .Hex Hduino che con Hex generato con nome modificato e dual boot (con pin 4-6 in corto) ma non ricevo niente di ritorno dal Pc verso la mia vecchia tastiera, una Roland D10.
Per intenderci, funziona tutto in output, il pc riceve note, benissimo anche il Bender(mentre un'interfaccia cinese andava in tilt e sparava note a caso quando si utilizzava il bender), cambi programma ecc. , ma non restituisce niente delle note o cambi programma o sysex, per cui ad esempio con Midi Quest Pro che è un editor di timbri della tastiera e che manda sysex con request delle patch si impalla tutto perchè il mio synth non risponde alle richieste del programma.
Lo strano è che la spia RX lampeggia quando gli arrivano note dal PC, ma al synth non arriva niente, se invece carico uno sketch che invia ad esempio note da arduino a synt allora le note arrivano(oppure cambi di programma ecc.).
Per cui se fosse un problema di interfaccia/connessione non arriverebbero neanche le note da Arduino al synth.
Le note dal Pc arrivano sino ad arduino (e infatti lampeggia il led RX su arduino) ma da arduino non vengono inviate al synth.
Lo sketch è semplicissimo, del resto a me interessa solo interfacciare il synth con il Pc, per cui lo metto in Omni e Thru on:

#include <MIDI.h>
const byte *  MidiArray;
unsigned int lunghezza = 0;
struct MySettings : public midi::DefaultSettings {
static const unsigned SysExMaxSize = 1024; // Accept SysEx messages up to 1024 bytes long.
//static const bool UseRunningStatus = true; // My devices seem to be ok with it.
};
MIDI_CREATE_CUSTOM_INSTANCE(HardwareSerial, Serial, MIDI, MySettings);
/*struct CustomBaud : public midi::DefaultSettings{
 static const long BaudRate = 115200;
};
MIDI_CREATE_CUSTOM_INSTANCE(HardwareSerial, Serial, MIDI, CustomBaud);*/

//MIDI_CREATE_DEFAULT_INSTANCE();
void setup() {
//pinMode(LED_BUILTIN, OUTPUT);
//Serial.begin(115200);
//while (!Serial);
MIDI.begin(MIDI_CHANNEL_OMNI);
//Serial.begin(115200);
//MIDI.turnThruOff();
//MIDI.disconnectCallbackFromType(midi::SystemExclusive);
}

void loop() {
MIDI.read();
}

Se qualcuno ha avuto gli stessi problemi e ha una soluzione sarebbe gradita, forse settando i baud non di default del midi ma ad esempio a 57600 (e coi pin 4-6 in corto, per cui arduino Uno in modalità Usb) forse si riesce a vedere nel monitor ide di arduino cosa sta arrivando e trasformarli in comandi corrispondenti della midi library....forse...

Cmq grazie per le risposte

**********************

Non vedo risposte...nessuno ha avuto lo stesso problema?
O forse nessuno è interessato ai messaggi provenienti dal PC e vuol solo mandare note/messaggi ma non riceverne?
O forse la midi library non prevede questo?
https://www.youtube.com/watch?v=hDuxyhfchYg
https://www.youtube.com/watch?v=hyIqT0kAdVo&t=750s
https://www.youtube.com/watch?v=kw-r1wts60Y

gpb01

>Gabryx:   ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra). Grazie :)

Guglielmo
Search is Your friend ... or I am Your enemy !

Gabryx

Ok problema risolto, ho fatto un nuovo reply almeno chi è interessato lo vede meglio.
Per arduino UNO finalmente si può avere un'interfaccia midi funzionante e plug and play utilizzando questo bootloader:

https://github.com/TheKikGen/USBMidiKliK

Che ho caricato su Uno tramite il programma Flip 3.4.7
Lo sketch è semplicissimo:
Code: [Select]
/**********************************************************************************
 
  KIKGEN MIDI USB
  A MIDI USB RELIABLE INTERFACE
  USB-MIDI simple converter Sketch for Arduino
       USB                           ATMEGA8U2                    ATMEGA 328P
  --------------         ------------------------------         ---------------
  IN Endpoint  o<--------o USBOUT | usbMidiKliK |  RX o<--------o (TX) MIDI IN
  OUT Endpoint o-------->o USBIN  |  firmware   |  TX o-------->o (RX) MIDI OUT   
 
  The RX/TX on the Arduino must no be crossed, as the ATMEGA8U2 is directly connected
  to the RX and TX pins.  When PIN0 (RX) and PIN1 (TX) are configured as INPUT, we
  can talk directly with the ATMEGA8U2 managing the USB, making the Arduino transparent.
 
************************************************************************************/

void setup() {

  // Make Arduino transparent for serial communications from and to USB
  pinMode(0,INPUT); // Arduino RX - ATMEGA8U2 TX
  pinMode(1,INPUT); // Arduino TX - ATMEGA8U2 RX


}

void loop() {
 
}


A questo punto se uno vuole può aggiungergli i suoi potenziometri/tasti se ne ha bisogno ed espandere l'interfaccia midi di base, bisognerebbe testare se ci son problemi in coppia con la Midi_Controller library ad esempio.
A me attualmente non interessa, avevo bisogno di un'interfaccia midi plug and play funzionante in modo bidirezionale e con questo bootloader la cosa è risolta, del resto uso Cubase e vari VST per generare i suoni.
L'hardware dell'interfaccia è quello nel link che ho messo nel primo post.

Buon divertimento
https://www.youtube.com/watch?v=hDuxyhfchYg
https://www.youtube.com/watch?v=hyIqT0kAdVo&t=750s
https://www.youtube.com/watch?v=kw-r1wts60Y

gpb01

>Gabryx: ... ancora una vola ti prego di fare quanto richiesto nel mio precedente post #1 .. Grazie.

Guglielmo
Search is Your friend ... or I am Your enemy !

Go Up