Browse Source

Merge pull request #27214 from marcelofg55/midi_note_off

Fix MIDI Note Off missing on some devices
Rémi Verschelde 6 years ago
parent
commit
76cbe7a9ae
1 changed files with 5 additions and 0 deletions
  1. 5 0
      core/os/midi_driver.cpp

+ 5 - 0
core/os/midi_driver.cpp

@@ -75,6 +75,11 @@ void MIDIDriver::receive_input_packet(uint64_t timestamp, uint8_t *data, uint32_
 			if (length >= 3) {
 				event->set_pitch(data[1]);
 				event->set_velocity(data[2]);
+
+				if (event->get_message() == MIDI_MESSAGE_NOTE_ON && event->get_velocity() == 0) {
+					// https://www.midi.org/forum/228-writing-midi-software-send-note-off,-or-zero-velocity-note-on
+					event->set_message(MIDI_MESSAGE_NOTE_OFF);
+				}
 			}
 			break;