From ecd2c2bf22ddfdd49818cff6ca9484c579d74abd Mon Sep 17 00:00:00 2001 From: lathoub Date: Tue, 3 Aug 2021 21:38:17 +0200 Subject: [PATCH] check for complete sysex --- src/BLEMIDI_Transport.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/BLEMIDI_Transport.h b/src/BLEMIDI_Transport.h index caa201d..df7c91f 100644 --- a/src/BLEMIDI_Transport.h +++ b/src/BLEMIDI_Transport.h @@ -312,6 +312,11 @@ public: } break; case MIDI_NAMESPACE::MidiType::SystemExclusive: + + // do we have a complete sysex? + if ((rPtr + 1 < length) && (buffer[rPtr + 1] == 0xF7)) + rPtr--; + mBleClass.add(buffer[lPtr]); for (byte i = lPtr; i < rPtr; i++) mBleClass.add(buffer[i + 1]); @@ -339,8 +344,7 @@ public: return; // end of packet timestampByte = buffer[rPtr++]; - signatureIs1 = CHECK_BIT(timestampByte, 7 - 1); - if (signatureIs1) + if (CHECK_BIT(timestampByte, 7 - 1)) { timestamp = setMidiTimestamp(headerByte, timestampByte); }