reckfellENGINE

InputEventMidi

Представляет MIDI-сообщение от MIDI-устройства, например музыкальной клавиатуры.

На этой странице
class InputEventMidiReckfellSharpНаследует InputEvent

Представляет MIDI-сообщение от MIDI-устройства, например музыкальной клавиатуры.

InputEventMIDI хранит информацию о сообщениях с MIDI(https://en.wikipedia.org/wiki/MIDI) (Цифровой интерфейс музыкального инструмента) устройств. К ним могут относиться музыкальные клавиатуры, синтезаторы и драм-машины. MIDI-сообщения могут быть получены через 5-контактный разъем MIDI или через USB. Если ваше устройство поддерживает оба варианта, обязательно проверьте настройки на устройстве, чтобы узнать, какой выход оно использует. По умолчанию Reckfell не обнаруживает устройства MIDI. Сначала вам нужно вызвать OS.OpenMidiInputs. Вы можете проверить, какие устройства обнаружены, с помощью OS.GetConnectedMidiInputs и закрыть соединение с помощью OS.CloseMidiInputs.

C#
public override void _Ready()
{
    OS.OpenMidiInputs();
    ReckfellApi.Print(OS.GetConnectedMidiInputs());
}

public override void _Input(InputEvent inputEvent)
{
    if (inputEvent is InputEventMidi midiEvent)
    {
        PrintMIDIInfo(midiEvent);
    }
}

private void PrintMIDIInfo(InputEventMidi midiEvent)
{
    ReckfellApi.Print(midiEvent);
    ReckfellApi.Print($"Channel {midiEvent.Channel}");
    ReckfellApi.Print($"Message {midiEvent.Message}");
    ReckfellApi.Print($"Pitch {midiEvent.Pitch}");
    ReckfellApi.Print($"Velocity {midiEvent.Velocity}");
    ReckfellApi.Print($"Instrument {midiEvent.Instrument}");
    ReckfellApi.Print($"Pressure {midiEvent.Pressure}");
    ReckfellApi.Print($"Controller number: {midiEvent.ControllerNumber}");
    ReckfellApi.Print($"Controller value: {midiEvent.ControllerValue}");
}

Примечание: Reckfell не поддерживает вывод MIDI, поэтому нет способа отправлять сообщения MIDI из Reckfell. Поддерживается только ввод MIDI. Примечание: На веб-платформе использование ввода MIDI требует предварительного предоставления разрешения браузеру. Этот запрос разрешения выполняется при вызове OS.OpenMidiInputs. Ввод MIDI не будет работать, пока пользователь не примет запрос разрешения.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

InputEventMidiКонструктор
# InputEventMidi
C#
public InputEventMidi();

Свойства8

ChannelСвойство
# Channel
C#
public int Channel { get; set; }

MIDI-канал этого сообщения, диапазон от 0 до 15. MIDI-канал 9 зарезервирован для ударных инструментов.

ControllerNumberСвойство
# ControllerNumber
C#
public int ControllerNumber { get; set; }

Уникальный номер контроллера, если InputEventMidi.Message — MIDI_MESSAGE_CONTROL_CHANGE, в противном случае это 0. Это значение можно использовать для идентификации ползунков громкости, баланса и панорамирования, а также переключателей и педалей на MIDI-устройстве. Небольшой список см. в Общая спецификация МИДИ.

ControllerValueСвойство
# ControllerValue
C#
public int ControllerValue { get; set; }

Значение, применяемое к контроллеру. Если InputEventMidi.Message — это MIDI_MESSAGE_CONTROL_CHANGE, это значение варьируется от 0 до 127, в противном случае это 0. См. также InputEventMidi.ControllerValue.

InstrumentСвойство
# Instrument
C#
public int Instrument { get; set; }

Инструмент (также называемый program или preset), используемый в этом MIDI-сообщении. Это значение варьируется от 0 до 127. Чтобы узнать, что означает каждое значение, обратитесь к списку инструментов Общий МИДИ. Имейте в виду, что список смещен на 1, поскольку он не начинается с 0. Значение 0 соответствует акустическому роялю (Большой фортепиано).

MessageСвойство
# Message
C#
public MidiMessage Message { get; set; }

Представляет тип сообщения MIDI (см. перечисление MIDIMessage). Для получения дополнительной информации см. таблицу байтов состояния сообщения MIDI.

PitchСвойство
# Pitch
C#
public int Pitch { get; set; }

Номер индекса высоты тона этого MIDI-сообщения. Это значение варьируется от 0 до 127. На фортепиано Средний C — это 60, за которым следует C-sharp (61), затем D (62) и т. д. Каждая октава разделена на смещения по 12. См. столбец «Номер примечания MIDI» в таблице частот клавиш фортепиано полный список.

PressureСвойство
# Pressure
C#
public int Pressure { get; set; }

Сила нажатия клавиши. Это значение варьируется от 0 до 127. Примечание: Для многих устройств это значение всегда равно 0. Другие устройства, такие как музыкальные клавиатуры, могут имитировать давление, изменяя InputEventMidi.Velocity вместо этого.

VelocityСвойство
# Velocity
C#
public int Velocity { get; set; }

Скорость сообщения MIDI. Это значение находится в диапазоне от 0 до 127. Для музыкальной клавиатуры это соответствует тому, как быстро была нажата клавиша, и на практике редко превышает 110. Примечание: Некоторые устройства MIDI могут отправлять сообщение MIDI_MESSAGE_NOTE_ON со скоростью 0 и ожидать, что оно будет обработано так же, как сообщение MIDI_MESSAGE_NOTE_OFF. При необходимости это можно обработать несколькими строками кода:

Методы16

GetChannelint
# GetChannel
C#
public int GetChannel();
Возвращает int
GetControllerNumberint
# GetControllerNumber
C#
public int GetControllerNumber();
Возвращает int
GetControllerValueint
# GetControllerValue
C#
public int GetControllerValue();
Возвращает int
GetInstrumentint
# GetInstrument
C#
public int GetInstrument();
Возвращает int
GetMessageMidiMessage
# GetMessage
C#
public MidiMessage GetMessage();
Возвращает MidiMessage
GetPitchint
# GetPitch
C#
public int GetPitch();
Возвращает int
GetPressureint
# GetPressure
C#
public int GetPressure();
Возвращает int
GetVelocityint
# GetVelocity
C#
public int GetVelocity();
Возвращает int
SetChannelvoid
# SetChannel
C#
public void SetChannel(int channel);
Параметры
ИмяТипПо умолчанию
channelint—
SetControllerNumbervoid
# SetControllerNumber
C#
public void SetControllerNumber(int controllerNumber);
Параметры
ИмяТипПо умолчанию
controllerNumberint—
SetControllerValuevoid
# SetControllerValue
C#
public void SetControllerValue(int controllerValue);
Параметры
ИмяТипПо умолчанию
controllerValueint—
SetInstrumentvoid
# SetInstrument
C#
public void SetInstrument(int instrument);
Параметры
ИмяТипПо умолчанию
instrumentint—
SetMessagevoid
# SetMessage
C#
public void SetMessage(MidiMessage message);
Параметры
ИмяТипПо умолчанию
messageMidiMessage—
SetPitchvoid
# SetPitch
C#
public void SetPitch(int pitch);
Параметры
ИмяТипПо умолчанию
pitchint—
SetPressurevoid
# SetPressure
C#
public void SetPressure(int pressure);
Параметры
ИмяТипПо умолчанию
pressureint—
SetVelocityvoid
# SetVelocity
C#
public void SetVelocity(int velocity);
Параметры
ИмяТипПо умолчанию
velocityint—
Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.