diff --git a/examples/USBH_MIDI/USB_MIDI_converter/USB_MIDI_converter.ino b/examples/USBH_MIDI/USB_MIDI_converter/USB_MIDI_converter.ino index acd5fe10..1f5d1561 100644 --- a/examples/USBH_MIDI/USB_MIDI_converter/USB_MIDI_converter.ino +++ b/examples/USBH_MIDI/USB_MIDI_converter/USB_MIDI_converter.ino @@ -1,7 +1,7 @@ /* ******************************************************************************* * USB-MIDI to Legacy Serial MIDI converter - * Copyright (C) 2012-2017 Yuuichi Akagawa + * Copyright (C) 2012-2020 Yuuichi Akagawa * * Idea from LPK25 USB-MIDI to Serial MIDI converter * by Collin Cunningham - makezine.com, narbotic.com @@ -24,6 +24,11 @@ #else #define _MIDI_SERIAL_PORT Serial #endif + +// Set to 1 if you want to wait for the Serial MIDI transmission to complete. +// For more information, see https://github.com/felis/USB_Host_Shield_2.0/issues/570 +#define ENABLE_MIDI_SERIAL_FLUSH 0 + ////////////////////////// // MIDI Pin assign // 2 : GND @@ -68,6 +73,9 @@ void MIDI_poll() if ( (size = Midi.RecvData(outBuf)) > 0 ) { //MIDI Output _MIDI_SERIAL_PORT.write(outBuf, size); +#if ENABLE_MIDI_SERIAL_FLUSH + _MIDI_SERIAL_PORT.flush(); +#endif } } while (size > 0); } diff --git a/examples/USBH_MIDI/USB_MIDI_converter_multi/USB_MIDI_converter_multi.ino b/examples/USBH_MIDI/USB_MIDI_converter_multi/USB_MIDI_converter_multi.ino index c6a72e23..5c841a0c 100644 --- a/examples/USBH_MIDI/USB_MIDI_converter_multi/USB_MIDI_converter_multi.ino +++ b/examples/USBH_MIDI/USB_MIDI_converter_multi/USB_MIDI_converter_multi.ino @@ -1,7 +1,7 @@ /* ******************************************************************************* * USB-MIDI to Legacy Serial MIDI converter - * Copyright (C) 2012-2017 Yuuichi Akagawa + * Copyright (C) 2012-2020 Yuuichi Akagawa * * Idea from LPK25 USB-MIDI to Serial MIDI converter * by Collin Cunningham - makezine.com, narbotic.com @@ -24,6 +24,11 @@ #else #define _MIDI_SERIAL_PORT Serial #endif + +// Set to 1 if you want to wait for the Serial MIDI transmission to complete. +// For more information, see https://github.com/felis/USB_Host_Shield_2.0/issues/570 +#define ENABLE_MIDI_SERIAL_FLUSH 0 + ////////////////////////// // MIDI Pin assign // 2 : GND @@ -73,6 +78,9 @@ void MIDI_poll(USBH_MIDI &Midi) if ( (size = Midi.RecvData(outBuf)) > 0 ) { //MIDI Output _MIDI_SERIAL_PORT.write(outBuf, size); +#if ENABLE_MIDI_SERIAL_FLUSH + _MIDI_SERIAL_PORT.flush(); +#endif } } while (size > 0); } diff --git a/examples/USBH_MIDI/bidirectional_converter/bidirectional_converter.ino b/examples/USBH_MIDI/bidirectional_converter/bidirectional_converter.ino index 552cadf6..b752a05f 100644 --- a/examples/USBH_MIDI/bidirectional_converter/bidirectional_converter.ino +++ b/examples/USBH_MIDI/bidirectional_converter/bidirectional_converter.ino @@ -1,7 +1,7 @@ /* ******************************************************************************* * Legacy Serial MIDI and USB Host bidirectional converter - * Copyright (C) 2013-2017 Yuuichi Akagawa + * Copyright (C) 2013-2020 Yuuichi Akagawa * * for use with Arduino MIDI library * https://github.com/FortySevenEffects/arduino_midi_library/ @@ -32,6 +32,10 @@ MIDI_CREATE_DEFAULT_INSTANCE(); #define _MIDI_SERIAL_PORT Serial #endif +// Set to 1 if you want to wait for the Serial MIDI transmission to complete. +// For more information, see https://github.com/felis/USB_Host_Shield_2.0/issues/570 +#define ENABLE_MIDI_SERIAL_FLUSH 0 + ////////////////////////// // MIDI Pin assign // 2 : GND @@ -125,6 +129,9 @@ void MIDI_poll() _MIDI_SERIAL_PORT.write(outbuf, rc); p += 4; } +#if ENABLE_MIDI_SERIAL_FLUSH + _MIDI_SERIAL_PORT.flush(); +#endif readPtr += 4; } #else @@ -133,6 +140,9 @@ void MIDI_poll() if ( (size = Midi.RecvData(outBuf)) > 0 ) { //MIDI Output _MIDI_SERIAL_PORT.write(outBuf, size); +#if ENABLE_MIDI_SERIAL_FLUSH + _MIDI_SERIAL_PORT.flush(); +#endif } } while (size > 0); #endif