首页 > 解决方案 > 如何将 MIDI 从 Unity 发送到外部 VST

问题描述

我尝试从 Unity 内部运行 VST 仪器失败之后,我的新方法是将 midi 消息从 Unity 发送到外部主机。

为了实现这一点,我一直在尝试遵循这种方法

  1. 安装 loopMIDI ( http://www.tobias-erichsen.de/software/loopmidi.html )
  2. 在 loopMIDI 中创建一个虚拟 MIDI 端口
  3. 下载 Sanford C# MIDI 工具包http://www.codeproject.com/Articles/6228/C-MIDI-Toolkit
  4. 在项目中添加对 MIDI 工具包的引用
  5. 编写一些代码,即:

    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 消息。我尝试安装Midi Ox来监控 midi 信号,但它似乎没有显示我的虚拟 midi 端口,而且似乎没有 midi 活动,尽管我的所有 Unity 代码运行良好。Unity 游戏实际上是在播放我加载的 midi 文件,所以我知道我的 Unity 代码运行正常,但我似乎无法正确配置虚拟 midi 端口。

有谁知道我可能做错了什么?谢谢!

标签: c#unity3dmidivst

解决方案


推荐阅读