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.
Checking the stable version of the documentation...
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)
public override void _Ready()
{
OS.OpenMidiInputs();
GD.Print(OS.GetConnectedMidiInputs());
}
public override void _Input(InputEvent inputEvent)
{
if (inputEvent is InputEventMidi evenementMidi)
{
AfficherInfoMIDI(evenementMidi);
}
}
private void AfficherInfoMIDI(InputEventMidi evenementMidi)
{
GD.Print(midiEvent);
GD.Print($"Canal {evenementMidi.Channel}");
GD.Print($"Message {evenementMidi.Message}");
GD.Print($"Hauteur {evenementMidi.Pitch}");
GD.Print($"Vitesse {evenementMidi.Velocity}");
GD.Print($"Instrument {evenementMidi.Instrument}");
GD.Print($"Pression {evenementMidi.Pressure}");
GD.Print($"Numéro du contrôleur : {evenementMidi.ControllerNumber}");
GD.Print($"Valeur du contrôleur : {evenementMidi.ControllerValue}");
}
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
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Descriptions des propriétés
Le canal MIDI de ce message, allant de 0 à 15. Le canal MIDI 9 est réservé aux instruments à percussion.
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.
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.
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 🔗
void set_message(value: MIDIMessage)
MIDIMessage get_message()
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.
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.
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.
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 !")