是否有适用于 Windows Vista/7/8 的新 Midi API?

Posted

技术标签:

【中文标题】是否有适用于 Windows Vista/7/8 的新 Midi API?【英文标题】:Is there a new Midi API for Windows Vista/7/8? 【发布时间】:2012-11-16 11:56:38 【问题描述】:

我知道 midiXxx API,但我看到它目前列在 msdn 的“旧版”下。 http://msdn.microsoft.com/en-us/library/windows/desktop/dd743619(v=vs.85).aspx

我应该使用其他一些 API 来针对较新的 Windows 版本吗?

旧 API 是否仍可在 Windows 7 和 8 上运行?

谢谢, 马克

【问题讨论】:

MIDI 很古老,已经 30 岁了。没有更改,因此无需更改 API。它在现代 Windows 版本上运行良好。 是的,旧 API 在 Windows 7 和 8 中仍然有效,但据我所知,由于整个 winmm 不可用,因此无法在 Windows 8 商店应用程序中使用 MIDI 设备。 请注意,对于 Win32 桌面应用程序,由于带有时间戳的 MIDI,Windows 7 x64 及更高版本支持“核心”DirectMusic API。 【参考方案1】:

上周五,Microsoft 发布了用于 MIDI 的预览版 Windows Runtime API。在此处查看 //build/ 会话: http://channel9.msdn.com/Events/Build/2014/3-548

MSDN:http://msdn.microsoft.com/en-us/library/windows/apps/dn643522.aspx

虽然是预览版,但应用可以上线并部署到 Windows 应用商店。请让我们知道您喜欢或不喜欢什么。祝您应用构建愉快!

【讨论】:

【参考方案2】:

对于桌面应用程序(非 Metro),您仍然可以安全地使用旧版 API。

遗憾的是,对于 WinRT/Metro,根本没有 midi 支持(请参阅 msdn 上的 discussion)。

希望他们会改变这一点。

【讨论】:

哇...这太疯狂了。我想我不会购买 Windows Metro 设备。 布拉德,看看我的新评论。有一些解决方法(我希望音乐家会使用)。 IIRC,ios 直到 v3 才支持 MIDI。【参考方案3】:

Catflier 是正确的,WinRT 中没有对 MIDI 的直接支持(在 API 级别)。但是,如果您想在您的应用程序中拥有类似 MIDI 的功能,则有一些变通方法。一个越来越流行的协议是network-based OSC (Open Sound Control).,因为它是基于网络的,你可以使用它。

例如,可以使用The Missing Link 之类的外部硬件,它将MIDI 转换为OSC。您将 MIDI 设备连接到 The Missing Link,然后将其转换为发送到计算机的 OSC 消息。然后,您的应用程序可以接收 OSC 消息并与 MIDI 设备对话。我没有任何代码可以在这里显示,但我已经看到了这个工作的演示。

您可以看到 OSC 在 iOS 上的使用以及流行的应用程序like TouchOSC。

【讨论】:

是的,你说有解决方法是正确的,但他们的问题是它们是......解决方法))。此外,像 Missing Link 这样的硬件确实可以将 osc 转换为 midi,通常您需要反过来(例如,只需将 USB midi 设备插入您的计算机)。尽管我很喜欢 OSC(也经常使用它),但 Midi 已经过验证且非常可靠(我可以使用 midi 控制器在夜间运行节目,因为我知道它不会让我失望,我几乎不能对无线说同样的话路由器)。所以仍然希望能在 Metro 中提供原生 MIDI 支持。 我们完全同意 :)。作为一名音乐家,我希望未来也能做到这一点。

以上是关于是否有适用于 Windows Vista/7/8 的新 Midi API?的主要内容,如果未能解决你的问题,请参考以下文章

将Windows系统设置NTP服务器-NetTime篇

是否有适用于 Windows 的免费堆损坏检测工具? [复制]

是否有任何适用于 Windows 的 unshar 实用程序?

是否有适用于 Windows 的 JSLint 的离线版本?

是否有适用于 Windows 的卸载程序批处理?

是否有适用于 Windows 10 的 SendKeys 类的替代方案