summaryrefslogtreecommitdiffstats
path: root/core/os/midi_driver.cpp
diff options
context:
space:
mode:
authorMarcelo Fernandez <marcelofg55@gmail.com>2019-03-18 15:53:35 -0300
committerMarcelo Fernandez <marcelofg55@gmail.com>2019-03-18 15:54:32 -0300
commitea0c398a196358a34e40dc7b93426913f11c160a (patch)
tree40023b05f1e65e05940d558e291cfd68b96a8ec6 /core/os/midi_driver.cpp
parentdf7d3708c5b535c3696943322a14ec19a175e30c (diff)
downloadredot-engine-ea0c398a196358a34e40dc7b93426913f11c160a.tar.gz
Fix MIDI Note Off missing on some devices
Diffstat (limited to 'core/os/midi_driver.cpp')
-rw-r--r--core/os/midi_driver.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/core/os/midi_driver.cpp b/core/os/midi_driver.cpp
index 0d7ad23d68..7cb7ae130f 100644
--- a/core/os/midi_driver.cpp
+++ b/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;