mirror of
https://github.com/Relintai/pandemonium_engine_docs.git
synced 2025-01-23 15:17:21 +01:00
196 lines
8.6 KiB
ReStructuredText
196 lines
8.6 KiB
ReStructuredText
:github_url: hide
|
|
|
|
.. DO NOT EDIT THIS FILE!!!
|
|
.. Generated automatically from Godot engine sources.
|
|
.. Generator: https://github.com/godotengine/godot/tree/3.5/doc/tools/make_rst.py.
|
|
.. XML source: https://github.com/godotengine/godot/tree/3.5/doc/classes/InputEventMIDI.xml.
|
|
|
|
.. _class_InputEventMIDI:
|
|
|
|
InputEventMIDI
|
|
==============
|
|
|
|
**Inherits:** :ref:`InputEvent<class_InputEvent>` **<** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
|
|
|
|
Input event for MIDI inputs.
|
|
|
|
Description
|
|
-----------
|
|
|
|
InputEventMIDI allows receiving input events from MIDI devices such as a piano. MIDI stands for Musical Instrument Digital Interface.
|
|
|
|
MIDI signals can be sent over a 5-pin MIDI connector or over USB, if your device supports both be sure to check the settings in the device to see which output it's using.
|
|
|
|
To receive input events from MIDI devices, you need to call :ref:`OS.open_midi_inputs<class_OS_method_open_midi_inputs>`. You can check which devices are detected using :ref:`OS.get_connected_midi_inputs<class_OS_method_get_connected_midi_inputs>`.
|
|
|
|
Note that Godot does not currently support MIDI output, so there is no way to emit MIDI signals from Godot. Only MIDI input works.
|
|
|
|
Tutorials
|
|
---------
|
|
|
|
- `MIDI Message Status Byte List <https://www.midi.org/specifications-old/item/table-2-expanded-messages-list-status-bytes>`__
|
|
|
|
- `Wikipedia General MIDI Instrument List <https://en.wikipedia.org/wiki/General_MIDI#Program_change_events>`__
|
|
|
|
- `Wikipedia Piano Key Frequencies List <https://en.wikipedia.org/wiki/Piano_key_frequencies#List>`__
|
|
|
|
Properties
|
|
----------
|
|
|
|
+-----------------------+---------------------------------------------------------------------------+-------+
|
|
| :ref:`int<class_int>` | :ref:`channel<class_InputEventMIDI_property_channel>` | ``0`` |
|
|
+-----------------------+---------------------------------------------------------------------------+-------+
|
|
| :ref:`int<class_int>` | :ref:`controller_number<class_InputEventMIDI_property_controller_number>` | ``0`` |
|
|
+-----------------------+---------------------------------------------------------------------------+-------+
|
|
| :ref:`int<class_int>` | :ref:`controller_value<class_InputEventMIDI_property_controller_value>` | ``0`` |
|
|
+-----------------------+---------------------------------------------------------------------------+-------+
|
|
| :ref:`int<class_int>` | :ref:`instrument<class_InputEventMIDI_property_instrument>` | ``0`` |
|
|
+-----------------------+---------------------------------------------------------------------------+-------+
|
|
| :ref:`int<class_int>` | :ref:`message<class_InputEventMIDI_property_message>` | ``0`` |
|
|
+-----------------------+---------------------------------------------------------------------------+-------+
|
|
| :ref:`int<class_int>` | :ref:`pitch<class_InputEventMIDI_property_pitch>` | ``0`` |
|
|
+-----------------------+---------------------------------------------------------------------------+-------+
|
|
| :ref:`int<class_int>` | :ref:`pressure<class_InputEventMIDI_property_pressure>` | ``0`` |
|
|
+-----------------------+---------------------------------------------------------------------------+-------+
|
|
| :ref:`int<class_int>` | :ref:`velocity<class_InputEventMIDI_property_velocity>` | ``0`` |
|
|
+-----------------------+---------------------------------------------------------------------------+-------+
|
|
|
|
Property Descriptions
|
|
---------------------
|
|
|
|
.. _class_InputEventMIDI_property_channel:
|
|
|
|
- :ref:`int<class_int>` **channel**
|
|
|
|
+-----------+--------------------+
|
|
| *Default* | ``0`` |
|
|
+-----------+--------------------+
|
|
| *Setter* | set_channel(value) |
|
|
+-----------+--------------------+
|
|
| *Getter* | get_channel() |
|
|
+-----------+--------------------+
|
|
|
|
The MIDI channel of this input event. There are 16 channels, so this value ranges from 0 to 15. MIDI channel 9 is reserved for the use with percussion instruments, the rest of the channels are for non-percussion instruments.
|
|
|
|
----
|
|
|
|
.. _class_InputEventMIDI_property_controller_number:
|
|
|
|
- :ref:`int<class_int>` **controller_number**
|
|
|
|
+-----------+------------------------------+
|
|
| *Default* | ``0`` |
|
|
+-----------+------------------------------+
|
|
| *Setter* | set_controller_number(value) |
|
|
+-----------+------------------------------+
|
|
| *Getter* | get_controller_number() |
|
|
+-----------+------------------------------+
|
|
|
|
If the message is ``MIDI_MESSAGE_CONTROL_CHANGE``, this indicates the controller number, otherwise this is zero. Controllers include devices such as pedals and levers.
|
|
|
|
----
|
|
|
|
.. _class_InputEventMIDI_property_controller_value:
|
|
|
|
- :ref:`int<class_int>` **controller_value**
|
|
|
|
+-----------+-----------------------------+
|
|
| *Default* | ``0`` |
|
|
+-----------+-----------------------------+
|
|
| *Setter* | set_controller_value(value) |
|
|
+-----------+-----------------------------+
|
|
| *Getter* | get_controller_value() |
|
|
+-----------+-----------------------------+
|
|
|
|
If the message is ``MIDI_MESSAGE_CONTROL_CHANGE``, this indicates the controller value, otherwise this is zero. Controllers include devices such as pedals and levers.
|
|
|
|
----
|
|
|
|
.. _class_InputEventMIDI_property_instrument:
|
|
|
|
- :ref:`int<class_int>` **instrument**
|
|
|
|
+-----------+-----------------------+
|
|
| *Default* | ``0`` |
|
|
+-----------+-----------------------+
|
|
| *Setter* | set_instrument(value) |
|
|
+-----------+-----------------------+
|
|
| *Getter* | get_instrument() |
|
|
+-----------+-----------------------+
|
|
|
|
The instrument of this input event. This value ranges from 0 to 127. Refer to the instrument list on the General MIDI wikipedia article to see a list of instruments, except that this value is 0-index, so subtract one from every number on that chart. A standard piano will have an instrument number of 0.
|
|
|
|
----
|
|
|
|
.. _class_InputEventMIDI_property_message:
|
|
|
|
- :ref:`int<class_int>` **message**
|
|
|
|
+-----------+--------------------+
|
|
| *Default* | ``0`` |
|
|
+-----------+--------------------+
|
|
| *Setter* | set_message(value) |
|
|
+-----------+--------------------+
|
|
| *Getter* | get_message() |
|
|
+-----------+--------------------+
|
|
|
|
Returns a value indicating the type of message for this MIDI signal. This is a member of the :ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` 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 ``MIDI_MESSAGE_NOTE_ON`` when activated, but they might not always return ``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.
|
|
|
|
----
|
|
|
|
.. _class_InputEventMIDI_property_pitch:
|
|
|
|
- :ref:`int<class_int>` **pitch**
|
|
|
|
+-----------+------------------+
|
|
| *Default* | ``0`` |
|
|
+-----------+------------------+
|
|
| *Setter* | set_pitch(value) |
|
|
+-----------+------------------+
|
|
| *Getter* | get_pitch() |
|
|
+-----------+------------------+
|
|
|
|
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.
|
|
|
|
----
|
|
|
|
.. _class_InputEventMIDI_property_pressure:
|
|
|
|
- :ref:`int<class_int>` **pressure**
|
|
|
|
+-----------+---------------------+
|
|
| *Default* | ``0`` |
|
|
+-----------+---------------------+
|
|
| *Setter* | set_pressure(value) |
|
|
+-----------+---------------------+
|
|
| *Getter* | get_pressure() |
|
|
+-----------+---------------------+
|
|
|
|
The pressure of the MIDI signal. This value ranges from 0 to 127. For many devices, this value is always zero.
|
|
|
|
----
|
|
|
|
.. _class_InputEventMIDI_property_velocity:
|
|
|
|
- :ref:`int<class_int>` **velocity**
|
|
|
|
+-----------+---------------------+
|
|
| *Default* | ``0`` |
|
|
+-----------+---------------------+
|
|
| *Setter* | set_velocity(value) |
|
|
+-----------+---------------------+
|
|
| *Getter* | get_velocity() |
|
|
+-----------+---------------------+
|
|
|
|
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.
|
|
|
|
.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
|
|
.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
|
|
.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
|