Я работаю над небольшим программным обеспечением в Visual Studio (форма Windows. NET в C#). Я сделал просто пианино, которое меняет цвета клавиш при нажатии некоторых кнопок клавиатуры (QWERTY)
Теперь я хочу использовать мое MIDI-пианино вместо этого события. В моем собственном коде я использовал KeyDown (чтобы показать цветное изображение клавиши пианино поверх оригинала) и KeyUp (чтобы скрыть его), чтобы сделать это событие, и я знаю, что сделать это с пианино MIDI будет сложнее, чем this.
Я нашел DryWetMidi API (от Melanchall) здесь (и я скачал его с помощью NuGet и применил его в моем проекте), который может С помощью MIDI я делаю много огромных вещей, но я просто хочу сделать следующие простые вещи:
Распознавание устройств MIDI, которые windows распознают.
Позвольте пользователю выбрать свое MIDI-устройство в «форме настроек» (которая у меня уже есть в бланке)
Может играть на пианино MIDI, чтобы активировать «событие изменения цвета "
(не нужно распознавать скорость)
(не нужно воспроизводить MIDI-файлы)
(не нужно звучать, потому что я планирую использовать его одновременно с программным обеспечением виртуального инструмента)
DryWetM В документации idi сказано, что «настроить получение событий довольно просто», используя это:
using System;
using Melanchall.DryWetMidi.Devices;
using Melanchall.DryWetMidi.Core;
// ...
using (var inputDevice = InputDevice.GetByName("MIDI Device"))
{
inputDevice.EventReceived += OnEventReceived;
inputDevice.StartEventsListening();
}
// ...
private void OnEventReceived(object sender, MidiEventReceivedEventArgs e)
{
MidiDevice midiDevice = (MidiDevice)sender;
MidiEvent midiEvent = e.Event;
Console.WriteLine($"Event received from '{midiDevice.Name}' at {DateTime.Now}: {midiEvent}");
}
... но у меня это не работает (как вы можете видеть здесь ): (да, я уже написал эти 3 строки в начало моего Form1.cs):
using System;
using Melanchall.DryWetMidi.Devices;
using Melanchall.DryWetMidi.Core;
Эти ошибки (которые подчеркнуты красным) не позволяют мне продолжить кодирование моего проекта, чтобы достичь конечной цели выполнения события изменения цвета ключа.
Я принципиалист и просто пишу простые коды (как вы можете видеть), поэтому, вероятно, я не знаю, нужно ли мне помещать эти коды в новый документ класса или форму, чтобы вызывать их или другую вещь, которая может быть очевидным для вас.
Я хочу уточнить, что я уже прочитал всю документацию библиотеки, которая относится к подключению устройства, но я не смог найти решение там.
Клянусь вам, я буду очень признателен за любую помощь, которую вы можете мне оказать.