创建一个虚拟 MIDI 端口 [关闭]

Posted

技术标签:

【中文标题】创建一个虚拟 MIDI 端口 [关闭]【英文标题】:Create a virtual MIDI port [closed] 【发布时间】:2011-06-29 14:50:39 【问题描述】:

我想创建一个虚拟 MIDI 环回电缆程序,该程序创建虚拟 MIDI 端口以互连 Windows 上想要打开硬件 MIDI 端口进行通信的应用程序。

对不起,如果我不清楚我的要求,这里有一个示例应用程序,可以满足我的要求。

http://www.tobias-erichsen.de/loopMIDI.html

我该怎么做?非常感谢任何提示或指示。

【问题讨论】:

您可以在“virtualMIDI”下链接的网站上阅读有关如何正确执行此操作的大量信息! 糟糕...不知何故,我从来没有注意到...感谢您指出这一点。 好的,所以 VirtualMIDI 源代码不可用。我给 Tobias erichsen 发了邮件,但没有收到任何回复。我将为此开始赏金,只是想看看我能不能到达某个地方。 @ashwnacharya:使用 IDA 查看执行它的驱动程序的代码以找出从哪里开始。 【参考方案1】:

经过许多晚上的搜索,我发现最好的方法是实际使用 Tobias Erichsen 的驱动程序。

他的驱动程序工作得很好,如果你给他发电子邮件,他会为你提供必要的 API。

【讨论】:

他的驱动程序非常适合这个问题。我只是想知道它是如何工作的,如果可能的话,使用 C# 自己编写代码以获得学习体验。 @ashwnacharya,当然,但您不能使用 PInvoke 创建驱动程序。 msdn.microsoft.com/en-us/windows/hardware/gg463268 @ashwnacharya:我必须支持布拉德。虽然问题不是真正的语言,而是生成的二进制文件的结构/内容及其依赖项。首先,驱动程序在 PE 标头中没有设置子系统。其次,它们不依赖于任何 Win32 二进制文件。由于 .NET 是基于 Win32 子系统的,所以此时它已经失败了。此外,驱动程序的开发需要大量的远见和洞察力。一个人不会在没有初步知识的情况下简单地进入内核模式。请不要冒犯,但你的 cmets 表明你缺乏这方面的知识。 在 Windows 7 x64 上,TE 驱动程序对我不起作用。也尝试在未签名的驱动程序上更改组策略,但 nop 不起作用。它错误。我怀疑司机签名问题是罪魁祸首。 作为这个问题的局外人:答案怎么可能是只有一个人知道答案?他是怎么知道的?【参考方案2】:

不是一个真正的答案,但这个链接有一些关于如何开始的合理建议。把这个留在这里,以防其他人也有兴趣。 http://www.osronline.com/article.cfm?article=20#Q25

【讨论】:

请注意,截至发表此评论时,该链接已锁定在论坛注册后面。

以上是关于创建一个虚拟 MIDI 端口 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Audiokit Midi 多个虚拟端口

使用 RtMIDI,MIDISendSysex 不向虚拟端口发送事件

Python:虚拟 MIDI 设备 [关闭]

通过虚拟输出使用 AKSequencer 发送 midi

从 PortMIDI 发送虚拟 MIDI 事件

Apache虚拟主机and虚拟端口