From 9a88b47cb1a1f893d178a085eb67c9ca39d4f210 Mon Sep 17 00:00:00 2001 From: voidshine Date: Thu, 18 May 2023 19:22:23 +0200 Subject: Document MIDI zero velocity quirk (cherry picked from commit 06d02928b76c7af82f12de482a509bf82dcc2892) --- doc/classes/@GlobalScope.xml | 4 ++-- doc/classes/InputEventMIDI.xml | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'doc') diff --git a/doc/classes/@GlobalScope.xml b/doc/classes/@GlobalScope.xml index 8941951a31..e98419ff8f 100644 --- a/doc/classes/@GlobalScope.xml +++ b/doc/classes/@GlobalScope.xml @@ -2436,10 +2436,10 @@ Enum value which doesn't correspond to any MIDI message. This is used to initialize [enum MIDIMessage] properties with a generic state. - MIDI note OFF message. See the documentation of [InputEventMIDI] for information of how to use MIDI inputs. + MIDI note OFF message. Not all MIDI devices send this event; some send [constant MIDI_MESSAGE_NOTE_ON] with zero velocity instead. See the documentation of [InputEventMIDI] for information of how to use MIDI inputs. - MIDI note ON message. See the documentation of [InputEventMIDI] for information of how to use MIDI inputs. + MIDI note ON message. Some MIDI devices send this event with velocity zero instead of [constant MIDI_MESSAGE_NOTE_OFF], but implementations vary. See the documentation of [InputEventMIDI] for information of how to use MIDI inputs. MIDI aftertouch message. This message is most often sent by pressing down on the key after it "bottoms out". diff --git a/doc/classes/InputEventMIDI.xml b/doc/classes/InputEventMIDI.xml index e4ba380741..513e56dc09 100644 --- a/doc/classes/InputEventMIDI.xml +++ b/doc/classes/InputEventMIDI.xml @@ -81,7 +81,8 @@ Returns a value indicating the type of message for this MIDI signal. This is a member of the [enum MIDIMessage] enum. For MIDI messages between 0x80 and 0xEF, only the left half of the bits are returned as this value, as the other part is the channel (ex: 0x94 becomes 0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is. Notes will return [constant MIDI_MESSAGE_NOTE_ON] when activated, but they might not always return [constant MIDI_MESSAGE_NOTE_OFF] when deactivated, therefore your code should treat the input as stopped if some period of time has passed. - For more information, see the MIDI message status byte list chart linked above. + Some MIDI devices may send [constant MIDI_MESSAGE_NOTE_ON] with zero velocity instead of [constant MIDI_MESSAGE_NOTE_OFF]. + For more information, see the note in [member velocity] and the MIDI message status byte list chart linked above. The pitch index number of this MIDI signal. This value ranges from 0 to 127. On a piano, middle C is 60, and A440 is 69, see the "MIDI note" column of the piano key frequency chart on Wikipedia for more information. @@ -90,7 +91,8 @@ 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. 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. + 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. + [b]Note:[/b] 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. Depending on the hardware and the needs of the game/app, this MIDI quirk can be handled robustly with a couple lines of script (check for [constant MIDI_MESSAGE_NOTE_ON] with velocity zero). -- cgit v1.2.3