MIDI_EventPacket_t ReceivedMIDIEvent;\r
if (MIDI_Device_ReceiveEventPacket(&Keyboard_MIDI_Interface, &ReceivedMIDIEvent))\r
{\r
- if (ReceivedMIDIEvent.Command == (MIDI_COMMAND_NOTE_ON >> 4))\r
+ if ((ReceivedMIDIEvent.Command == (MIDI_COMMAND_NOTE_ON >> 4)) && (ReceivedMIDIEvent.Data3 > 0))\r
LEDs_SetAllLEDs(ReceivedMIDIEvent.Data2 > 64 ? LEDS_LED1 : LEDS_LED2);\r
else\r
LEDs_SetAllLEDs(LEDS_NO_LEDS);\r
/* Read the MIDI event packet from the endpoint */\r
Endpoint_Read_Stream_LE(&MIDIEvent, sizeof(MIDIEvent));\r
\r
- if (MIDIEvent.Command == (MIDI_COMMAND_NOTE_ON >> 4))\r
+ /* Check to see if the sent command is a note on message with a non-zero velocity */\r
+ if ((MIDIEvent.Command == (MIDI_COMMAND_NOTE_ON >> 4)) && (MIDIEvent.Data3 > 0))\r
{\r
/* Change LEDs depending on the pitch of the sent note */\r
LEDs_SetAllLEDs(MIDIEvent.Data2 > 64 ? LEDS_LED1 : LEDS_LED2);\r
}\r
else\r
{\r
- /* Turn off all LEDs in response to non-Note On messages */\r
+ /* Turn off all LEDs in response to non Note On messages */\r
LEDs_SetAllLEDs(LEDS_NO_LEDS);\r
}\r
\r
* - All Class Drivers now return false or the "DeviceDisconnected" error code of their respective error enums when a function\r
* is called when no host/device is connected where possible\r
* - The HOST_SENDCONTROL_DeviceDisconnect enum value has been renamed to HOST_SENDCONTROL_DeviceDisconnected to be in line\r
- * with the rest of the library errorcodes.\r
+ * with the rest of the library errorcodes\r
+ * - Make MIDI device demos also turn off the on board LEDs if MIDI Note On messages are sent with a velocity of zero,\r
+ * which some devices use instead of Note Off messages (thanks to Robin Green)\r
*\r
* <b>Fixed:</b>\r
* - Added missing CDC_Host_CreateBlockingStream() function code to the CDC Host Class driver\r