Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

InputEventMIDI

Hérite de : InputEvent < Resource < RefCounted < Object

Représente un message MIDI d'un appareil MIDI, tel qu'un clavier de musique.

Description

InputEventMIDI stocke des informations sur des messages de périphériques MIDI (Musical Instrument Digital Interface, litt. "Interface pour instrument de musique numérique"). Il peut s'agir de claviers de musique, de synthétiseurs et de boîtes à rythmes.

Les messages MIDI peuvent être reçus sur un connecteur MIDI 5 broches ou par USB. Si votre appareil prend en charge les deux, assurez-vous de vérifier les paramètres de l'appareil pour voir quelle sortie il utilise.

Par défaut, Godot ne détecte pas les périphériques MIDI. Vous devez d'abord appeler OS.open_midi_inputs(). Vous pouvez vérifier quels périphériques sont détectés avec OS.get_connected_midi_inputs(), et fermer la connexion avec OS.close_midi_inputs().

func _ready():
    OS.open_midi_inputs()
    print(OS.get_connected_midi_inputs())

func _input(input_event):
    if input_event is InputEventMIDI:
        _afficher_info_midi(input_event)

func _afficher_info_midi(evenement_midi):
    print(midi_event)
    print("Canal ", evenement_midi.channel)
    print("Message ", evenement_midi.message)
    print("Hauteur ", evenement_midi.pitch)
    print("Vitesse ", evenement_midi.velocity)
    print("Instrument ", evenement_midi.instrument)
    print("Pression ", evenement_midi.pressure)
    print("Numéro du contrôleur : ", evenement_midi.controller_number)
    print("Valeur du contrôleur : ", evenement_midi.controller_value)

Note : Godot ne supporte pas la sortie MIDI, donc il n'y a aucun moyen d'émettre des messages MIDI depuis Godot. Seule l'entrée MIDI est supportée.

Note : Sur la plate-forme Web, l'utilisation de l'entrée MIDI nécessite une autorisation du navigateur accordée d'abord. Cette requête de permission est effectuée lors de l'appel à OS.open_midi_inputs(). L'entrée MIDI ne fonctionnera pas tant que l'utilisateur n'aura pas accepté la requête de permission.

Tutoriels

Propriétés

int

channel

0

int

controller_number

0

int

controller_value

0

int

instrument

0

MIDIMessage

message

0

int

pitch

0

int

pressure

0

int

velocity

0


Descriptions des propriétés

int channel = 0 🔗

  • void set_channel(value: int)

  • int get_channel()

Le canal MIDI de ce message, allant de 0 à 15. Le canal MIDI 9 est réservé aux instruments à percussion.


int controller_number = 0 🔗

  • void set_controller_number(value: int)

  • int get_controller_number()

The unique number of the controller, if message is @GlobalScope.MIDI_MESSAGE_CONTROL_CHANGE, otherwise this is 0. This value can be used to identify sliders for volume, balance, and panning, as well as switches and pedals on the MIDI device. See the General MIDI specification for a small list.


int controller_value = 0 🔗

  • void set_controller_value(value: int)

  • int get_controller_value()

La valeur appliquée au contrôleur. Si message vaut @GlobalScope.MIDI_MESSAGE_CONTROL_CHANGE, cette valeur varie de 0 à 127, sinon elle vaut 0. Voir aussi controller_value.


int instrument = 0 🔗

  • void set_instrument(value: int)

  • int get_instrument()

The instrument (also called program or preset) used on this MIDI message. This value ranges from 0 to 127.

To see what each value means, refer to the General MIDI's instrument list. Keep in mind that the list is off by 1 because it does not begin from 0. A value of 0 corresponds to the acoustic grand piano.


MIDIMessage message = 0 🔗

Représente le type de message MIDI (voir l’énumération MIDIMessage).

Pour plus d'informations, voir la spécification de la liste des octets de statut de message MIDI.


int pitch = 0 🔗

  • void set_pitch(value: int)

  • int get_pitch()

The pitch index number of this MIDI message. This value ranges from 0 to 127.

On a piano, the middle C is 60, followed by a C-sharp (61), then a D (62), and so on. Each octave is split in offsets of 12. See the "MIDI note number" column of the piano key frequency chart a full list.


int pressure = 0 🔗

  • void set_pressure(value: int)

  • int get_pressure()

La force de la touche appuyée. Cette valeur varie de 0 à 127.

Note : Pour de nombreux appareils, cette valeur vaut toujours 0. D'autres appareils tels que les claviers de musique peuvent simuler la pression en changeant velocity à la place.


int velocity = 0 🔗

  • void set_velocity(value: int)

  • int get_velocity()

La vitesse du message MIDI. Cette valeur varie de 0 à 127. Pour un clavier de musique, cela correspond à la rapidité avec laquelle la touche a été appuyée et est rarement supérieure à 110 en pratique.

Note : Certains périphériques MIDI peuvent envoyer un message @GlobalScope.MIDI_MESSAGE_NOTE_ON avec une vitesse de 0 et s'attendent à ce qu'il soit traité comme un message @GlobalScope.MIDI_MESSAGE_NOTE_OFF. Si nécessaire, cela peut être géré avec quelques lignes de code :

func _input(event):
    if event is InputEventMIDI:
        if event.message == MIDI_MESSAGE_NOTE_ON and event.velocity > 0:
            print("Touche appuyée !")