Update MIDI.hpp
- added if statement asking for "useRunningStatus", as it caused a bug with a certain midi device, causing the arduino to resolve the same midi data multiple times. I think it was forgotten here, as the comment also suggests that this section is only for "if enabled..."
This commit is contained in:
parent
2ffbdef8da
commit
de8e227af0
39
src/MIDI.hpp
39
src/MIDI.hpp
|
|
@ -911,24 +911,33 @@ bool MidiInterface<SerialPort, Settings>::parse()
|
||||||
mMessage.valid = true;
|
mMessage.valid = true;
|
||||||
|
|
||||||
// Activate running status (if enabled for the received type)
|
// Activate running status (if enabled for the received type)
|
||||||
switch (mMessage.type)
|
if (Settings::UseRunningStatus) {
|
||||||
{
|
|
||||||
case NoteOff:
|
|
||||||
case NoteOn:
|
|
||||||
case AfterTouchPoly:
|
|
||||||
case ControlChange:
|
|
||||||
case ProgramChange:
|
|
||||||
case AfterTouchChannel:
|
|
||||||
case PitchBend:
|
|
||||||
// Running status enabled: store it from received message
|
|
||||||
mRunningStatus_RX = mPendingMessage[0];
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
switch (mMessage.type)
|
||||||
|
{
|
||||||
|
case NoteOff:
|
||||||
|
case NoteOn:
|
||||||
|
case AfterTouchPoly:
|
||||||
|
case ControlChange:
|
||||||
|
case ProgramChange:
|
||||||
|
case AfterTouchChannel:
|
||||||
|
case PitchBend:
|
||||||
|
// Running status enabled: store it from received message
|
||||||
|
mRunningStatus_RX = mPendingMessage[0];
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
// No running status
|
// No running status
|
||||||
mRunningStatus_RX = InvalidType;
|
mRunningStatus_RX = InvalidType;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
|
||||||
|
mRunningStatus_RX = InvalidType;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue