После моей неудачной попытки запустить VST инструмента из Unity, мой новый подход заключается в отправке миди-сообщений из Unity на внешний хост.
Для этого я пытался следовать этому подходу:
- Установите loopMIDI (http://www.tobias-erichsen.de/software/loopmidi.html а>)
- Создайте виртуальный MIDI-порт в loopMIDI
- Загрузите набор инструментов Sanford C# MIDI Toolkit http://www.codeproject.com/Articles/6228/C-MIDI-Toolkit
- Добавьте ссылку на MIDI Toolkit в свой проект
Напишите код, например:
private OutputDevice outDevice = null; private void MIDITest() { int devices = OutputDevice.DeviceCount; if (devices == 0) { MessageBox.Show("No MIDI output devices available.", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (outDevice != null) { outDevice.Close(); } outDevice = new OutputDevice(0); // Change this for other MIDI devices outDevice.Error += inDevice_Error; outDevice.Reset(); // Send a Note On ChannelMessage cm = new ChannelMessage(ChannelCommand.NoteOn, 0, 60, 127); outDevice.Send(cm); }
Мне удалось выполнить все эти шаги, однако я до сих пор не могу обнаружить какие-либо миди-сообщения, исходящие от Unity. Я попытался установить Midi Ox для мониторинга миди-сигналов, но, похоже, мой виртуальный midi-порт, и похоже, что midi-активности нет, несмотря на то, что весь мой код Unity работает нормально. Игра Unity на самом деле воспроизводит загруженный мной миди-файл, поэтому я знаю, что мой код Unity работает правильно, но я просто не могу правильно настроить виртуальный миди-порт.
Кто-нибудь знает, что я могу делать неправильно? Спасибо!