MIDI 文件的结构是啥?

Posted

技术标签:

【中文标题】MIDI 文件的结构是啥?【英文标题】:What is the structure of a MIDI file?MIDI 文件的结构是什么? 【发布时间】:2010-06-21 18:18:37 【问题描述】:

例如,我想手动拥有一个根据用户需求创建 MIDI 文件的功能。

用户以 120 速度、100 速度、钢琴 (01) 和 Patch 49 或其他任何方式编写 2 个 Patch,其中包含 8 个小节,每小节 4 个 A4(音乐会 A - 440hz)和 C4(每个作为一个单独的通道)。

根据上述情况,MIDI 文件应该是什么样子。 我的目标是学习如何创建一个生成 MIDI 数据的函数,然后将所有内容写入一个 MIDI 文件。

所以首先我必须了解如何创建此函数或了解“MIDI 文件语言”以便我可以编写它。

提前致谢。

【问题讨论】:

google.com/search?source=hp&q=midi+file+structure 请从这里开始。还有很多实现 midi 的库。 问题是我想创建自己的库,但我不理解 MIDI 文件脚本,相信我我试过你提供的链接。 其实,如果你有一个好的 MIDI 文件生成器 API,那就太好了。不是播放器,而是根据有组织的枚举/结构或其他 .NET 符号的命令生成器,用于补丁、音符和所有其他 MIDI 东西,所以我不必谈论二进制。 嘿,谷歌搜索。第一个结果:此页面。 那么好还是不好? :) 【参考方案1】:

关于 MIDI 文件格式的其他好的链接可以在这里找到:

(.mid) Standard MIDI File Format The MIDI Technical Fanatic's Brainwashing Center(非常好的资源) Essentials of the MIDI protocol

【讨论】:

@PatrickRoberts 谢谢,修复了指向镜像的链接(我维护)【参考方案2】:

从我最近阅读的所有 MIDI 信息来看,this 似乎是最全面的教程,另一方面,以下链接是入门的好地方:

MIDI structure at the official MIDI website

另外,NAudio 是一个 .NET 库,可以处理 Mark Heath 的 MIDI 文件。 我也发现这个链接非常有用,我想为什么不与人分享它here。

我认为这是处理 MIDI 文件的最佳 .NET API。

【讨论】:

您的第二个链接 (sonicspot.com/guide/midifiles.html) 已损坏。【参考方案3】:

只是想补充一点,Somascape 有一个非常全面且布局合理的 MIDI 文件结构和 MIDI 协议资源。 (查看他们网站上的下拉菜单以获取其他资源页面)。最近在为 Swift 编写 MIDI 框架时,它帮助了我很多。

【讨论】:

以上是关于MIDI 文件的结构是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Swift 创建 MIDI 文件? [关闭]

在 C 中生成 MIDI 文件

使用 C 解析 MIDI 文件 - (分配内存的可能问题)

MIDI是啥?

Ubuntu 的 MIDI 设备的名称是啥

CRX文件是啥