From 840c537d8951dc77593d3c397c206d6dc5f6cc5c Mon Sep 17 00:00:00 2001 From: voidshine Date: Sat, 17 Sep 2022 11:29:41 -0700 Subject: [PATCH] Fix MIDI note-on events being converted to note-off events Update documentation with note about MIDI velocity interpretation (cherry picked from commit f0f72b313236b3cd8793e6fe7487094d9a04694a) --- core/os/midi_driver.cpp | 5 ----- doc/classes/InputEventMIDI.xml | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/core/os/midi_driver.cpp b/core/os/midi_driver.cpp index 9c5115a96..2b8dbd7a6 100644 --- a/core/os/midi_driver.cpp +++ b/core/os/midi_driver.cpp @@ -87,11 +87,6 @@ void MIDIDriver::receive_input_packet(uint64_t timestamp, uint8_t *data, uint32_ if (length >= 2 + param_position) { event->set_pitch(data[param_position]); event->set_velocity(data[param_position + 1]); - - 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; diff --git a/doc/classes/InputEventMIDI.xml b/doc/classes/InputEventMIDI.xml index f4499bc17..1e85d28b2 100644 --- a/doc/classes/InputEventMIDI.xml +++ b/doc/classes/InputEventMIDI.xml @@ -42,7 +42,7 @@ The pressure of the MIDI signal. This value ranges from 0 to 127. For many devices, this value is always zero. - The velocity of the MIDI signal. This value ranges from 0 to 127. For a piano, this corresponds to how quickly the key was pressed, and is rarely above about 110 in practice. + The velocity of the MIDI signal. This value ranges from 0 to 127. For a piano, this corresponds to how quickly the key was pressed, and is rarely above about 110 in practice. Note that some MIDI devices may send a [constant MIDI_MESSAGE_NOTE_ON] message with zero velocity and expect this to be treated the same as a [constant MIDI_MESSAGE_NOTE_OFF] message, but device implementations vary so Godot reports event data exactly as received.