【问题标题】:API/Library for MIDI tune creation in C#?在 C# 中创建 MIDI 曲调的 API/库?
【发布时间】:2013-07-04 06:14:07
【问题描述】:

请不要说这是一个愚蠢的问题。 在参考谷歌上的几个链接后诚实地询问。


我需要一个在 C# 中生成 MIDI 音调/调音的 API。 目前我正在实现一个“基本的光学音乐识别和解释应用程序”,没有任何 OMR API(使用我自己的算法)。

到目前为止,识别部分是成功的。并留下口译部分。识别出的音符需要转换成 MIDI 曲调(文件)的地方。

到目前为止,我已经研究了 midi-dot-net:midi-dot-net

有人可以给我推荐一个用于 MIDI 创建的好的 API。(上述过程)

此外,C# 是否像 JAVA javax.sound.midi 那样有自己的用于 MIDI 生成的 API/库?

谢谢。

【问题讨论】:

    标签: c# midi audio-processing javax.sound.midi


    【解决方案1】:

    C# (.NET) 没有 MIDI API。 Windows 上唯一可用的 API 是旧的多媒体库 AFAIK。

    查看 MIDI.NET,它封装了此 Windows API 并使其可用于 .NET(C#、VB.NET 等)。

    它提供了一个工厂对象来创建(池化)音符消息,并包括读取和保存 MIDI 文件。

    如果您有任何问题,请将它们发布在 codeplex 项目网站的讨论列表中。

    希望对你有帮助, Marc(MIDI.NET 的作者)

    【讨论】:

    • obiwanjacobi:马克。首先谢谢你。到目前为止,我已经将值提取为 4C4 4D4 等,其中 is 表示 Duration、Note 和 Octave。这个 API 是否有能力将这个符号直接解释为一个曲调?广司
    • 不直接。 MIDI.NET 建立在 MIDI 协议之上。另请参阅:home.roadrunner.com/~jgglatt/tech/midispec.htm。 Midi 是一个定义事件的实时协议。 Note-On 和 Note-Off 就是这样的事件。因此,您必须跟踪时间并在正确的时间播放这些 Note-On/Off 事件。如需 Sequencer 支持,请查看 CodeProject.com 上的 C# MIDI 工具包。
    • 马克,首先非常感谢你。我成功地与您的 API 进行交互,并为 Windows 窗体应用程序完成了我的工作。作为一项改进,我决定使用 Windows 8 的 Metro UI 为 Windows 商店应用程序实现相同的功能。然后我遇到了将 CannedBytes dll (API) 文件导入 Windows 商店应用程序解决方案中的资源的问题。你有什么想法吗?是因为与 Windows 应用商店应用程序不兼容吗?
    • 据我所知,WinRT(Win-8 商店应用程序)不支持 Midi。
    • 谢谢,如果是这样,您对在 Windows RT 中生成钢琴曲调有什么建议吗? ps:我不是这个领域的极客。我还是本科生。因此,请不要认为没有研究,我试图从你那里得到答案。
    猜你喜欢
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    相关资源
    最近更新 更多