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
Успадковує: InputEvent < Resource < RefCounted < Object
Представляє повідомлення MIDI з пристрою MIDI, такі як музична клавіатура.
Опис
InputEventMIDI зберігає інформацію про повідомлення з пристроїв MIDI (цифровий інтерфейс музичних інструментів). Це можуть бути музичні клавішні, синтезатори та драм-машини.
Повідомлення MIDI можна отримувати через 5-контактний роз’єм MIDI або через USB. Якщо ваш пристрій підтримує обидва, обов’язково перевірте налаштування пристрою, щоб дізнатися, який вихід він використовує.
За замовчуванням Godot не виявляє пристрої MIDI. Спочатку потрібно викликати OS.open_midi_inputs(). Ви можете перевірити, які пристрої виявлено за допомогою OS.get_connected_midi_inputs(), і закрити з’єднання за допомогою OS.close_midi_inputs().
func _ready():
OS.open_midi_inputs()
print(OS.get_connected_midi_inputs())
func _input(input_event):
якщо input_event є InputEventMIDI:
_print_midi_info(input_event)
func _print_midi_info(midi_event):
print(midi_event)
print("Канал ", midi_event.channel)
print("Повідомлення ", midi_event.message)
print("Pitch ", midi_event.pitch)
print("Швидкість ", midi_event.velocity)
print("Інструмент ", midi_event.instrument)
print("Тиск ", midi_event.pressure)
print("Номер контролера: ", midi_event.controller_number)
print("Значення контролера: ", midi_event.controller_value)
public override void _Ready()
{
OS.OpenMidiInputs();
GD.Print(OS.GetConnectedMidiInputs());
}
public override void _Input(InputEvent inputEvent)
{
if (inputEvent є InputEventMidi midiEvent)
{
PrintMIDIInfo(midiEvent);
}
}
private void PrintMIDIInfo(InputEventMidi midiEvent)
{
GD.Print(midiEvent);
GD.Print($"Канал {midiEvent.Channel}");
GD.Print($"Повідомлення {midiEvent.Message}");
GD.Print($"Pitch {midiEvent.Pitch}");
GD.Print($"Швидкість {midiEvent.Velocity}");
GD.Print($"Інструмент {midiEvent.Instrument}");
GD.Print($"Тиск {midiEvent.Pressure}");
GD.Print($"Номер контролера: {midiEvent.ControllerNumber}");
GD.Print($"Значення контролера: {midiEvent.ControllerValue}");
}
Примітка: Godot не підтримує вихід MIDI, тому немає способу видавати повідомлення MIDI від Godot. Підтримується лише вхід MIDI.
Примітка. На веб-платформі для використання MIDI-введення спочатку потрібно надати дозвіл браузера. Цей запит на дозвіл виконується під час виклику OS.open_midi_inputs(). Введення MIDI не працюватиме, доки користувач не прийме запит на дозвіл.
Посібники
Властивості
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Описи властивостей
Канал MIDI цього повідомлення, починаючи від 0 до 15. MDI канал 9 Зарезервований для інструментів перкусія.
Унікальна кількість контролера, якщо пам'ятне повідомлення @GlobalScope.MIDI_MESSAGE_CONTROL_CHANGE, інакше це 0. Ця вартість може бути використана для виявлення слайдерів для обсягу, балансу та панування, а також перемикачів та тумб на пристрої MIDI. Переглянути Загальна специфікація MIDI для невеликого списку.
Вартість наноситься на контролер. Якщо пам'ятне повідомлення @GlobalScope.MIDI_MESSAGE_CONTROL_CHANGE, це значення коливається від 0 до 127, інакше це 0. Дивись також пам'яний контролер_значення.
Інструмент (також називається program або preset) використовується на цьому MIDI повідомлення. 0 до 127.
Щоб побачити, що кожне значення означає, зверніться до Загальний Список інструментів MIDI. Враховуйте, що список від 1, тому що він не починає від 0. Вартість 0 відповідає акустичному грандіозному фортепіано.
MIDIMessage message = 0 🔗
void set_message(value: MIDIMessage)
MIDIMessage get_message()
Представляємо тип повідомлення MIDI (див. MIDIMessage enum).
Для отримання більш детальної інформації див. ` MIDI статус повідомлень за допомогою діаграми списку <https://www.midi.org/specations-old/item/table-2-expanded-messages-list-status-bytes>`__.
Індекс поля цього повідомлення MIDI. 0 до 127.
На фортепіано middle C 60, далі C-sharp (61), потім D (62 і так далі. Кожен октав розщеплюється в офсетах 12. Дивитися "MIDI номер замітки" стовпчик piano ключовий графік частоти повного списку.
Міцність ключа притискається. 0 до 127.
Примітка: Для багатьох пристроїв це значення завжди 0. Інші пристрої, такі як музичні клавіатури, можуть імітувати тиск, змінюючи velocity, замість цього.
Швидкість MIDI-повідомлення. Це значення коливається від 0 до 127. Для музичної клавіатури це відповідає швидкості натискання клавіші, і на практиці рідко перевищує 110.
Примітка: Деякі MIDI-пристрої можуть надсилати повідомлення @GlobalScope.MIDI_MESSAGE_NOTE_ON зі швидкістю 0 та очікувати, що його буде оброблено так само, як @GlobalScope.MIDI_MESSAGE_NOTE_OFF повідомлення. За потреби це можна вирішити кількома рядками коду:
func _input(event):
if event is InputEventMIDI:
if event.message == MIDI_MESSAGE_NOTE_ON and event.velocity > 0:
print("Note pressed!")