diff --git a/src/MIDI.hpp b/src/MIDI.hpp index be7c28a..d93726c 100644 --- a/src/MIDI.hpp +++ b/src/MIDI.hpp @@ -892,6 +892,7 @@ bool MidiInterface::parse() mMessage.channel = 0; mMessage.data1 = 0; mMessage.data2 = 0; + mMessage.length = 1; mMessage.valid = true; // Do not reset all input attributes, Running Status must remain unchanged. @@ -907,6 +908,7 @@ bool MidiInterface::parse() case AfterTouchChannel: case TimeCodeQuarterFrame: case SongSelect: + mMessage.length = 2; mPendingMessageExpectedLength = 2; break; @@ -917,6 +919,7 @@ bool MidiInterface::parse() case PitchBend: case AfterTouchPoly: case SongPosition: + mMessage.length = 3; mPendingMessageExpectedLength = 3; break; @@ -948,7 +951,7 @@ bool MidiInterface::parse() mMessage.channel = getChannelFromStatusByte(mPendingMessage[0]); mMessage.data1 = mPendingMessage[1]; mMessage.data2 = 0; // Completed new message has 1 data byte - mMessage.length = 1; + mMessage.length = 2; mPendingMessageIndex = 0; mPendingMessageExpectedLength = 0;